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

CLDR Ticket #10800(reviewfeedback data)

Opened 7 weeks ago

Last modified 7 days ago

Add RBNF rules for Luxembourgish

Reported by: sascha Owned by: grhoten
Component: rbnf Data Locale: lb
Phase: rc Review: sascha
Weeks: Data Xpath:
Xref:

Description

Number formatting rules for Luxembourgish: https://github.com/marytts/marytts/blob/master/marytts-languages/marytts-lang-lb/src/main/resources/marytts/language/lb/preprocess/formatRules.txt

The MaryTTS project would like to contribute more data to Unicode and plans to sign the Unicode Contributor License Agreement. Please don’t integrate this data yet; I’ll note on this ticket once they’ve actually signed the CLA. Still filing this CLDR ticket early, so it won’t get forgotten.

Attachments

Change History

comment:1 Changed 7 weeks ago by sascha

DFKI GmbH just sent me a signed copy of the CLA, which I forwarded to member-services; OK to proceed with this ticket.

comment:2 Changed 7 weeks ago by emmons

  • Owner changed from anybody to grhoten
  • Phase changed from dsub to rc
  • Priority changed from assess to medium
  • Status changed from new to accepted
  • Milestone changed from UNSCH to 33

comment:3 Changed 7 weeks ago by grhoten

The fractions are missing, and it's a reduced number range compared to other languages. There seems to be only one gender provided. Either the gender should be removed from the name, or the other genders should be provided. I suspect the other gendered cardinals are missing. This contribution seems incomplete.

comment:4 Changed 6 weeks ago by sascha

  • Cc steiner@… added

Ingmar Steiner (cc’ed on this ticket) is looking into improving the rules; stay tuned.

comment:5 Changed 6 weeks ago by sascha

  • Cc peter.gilles@… added

Hi George,

here’s updated rules from Peter Gilles from the Institute for the Luxembourgish Language and Literature (cc’ed). They still have a few problems, but Peter wasn’t sure how to fix them. Specifically, the following should be corrected:

  • 0.2 should be spelled out as “null Komma zwee” instead of “null Komma zwou”;
  • when 1 is the remainder part of a larger number, the ‘t’ should be omitted. For example, 21 should be “eenanzwanzeg” instead of “eentanzwanzeg”; 31 should be “eenandrësseg” instead of “eentandrësseg”; etc.
  • when numbering years, 2000 should be “zweedausend” [two thousand] instead of “zwanzeghonnert” [twenty hundred]; likewise for all subsequent years.
%spellout-numbering:
-x: minus >>;
x.x: << Komma >>;
0: null;
1: eent;
2: zwee;
3: dräi;
4: véier;
5: fënnef;
6: sechs;
7: siwen;
8: aacht;
9: néng;
10: zéng;
11: eelef;
12: zwielef;
13: dräizéng;
14: véierzéng;
15: fofzéng;
16: siechzéng;
17: siwwenzéng;
18: uechtzéng;
19: nonzéng;
20: [>>an]zwanzeg;
30: [>>an]drësseg;
40: [>>a]véierzeg;
50: [>>a]fofzeg;
60: [>>a]siechzeg;
70: [>>a]siwwenzeg;
80: [>>an]achtzeg;
90: [>>an]nonzeg;
100: honnert[>>];
200: <<honnert[>>];
1000: dausend[>>];
2000: <<dausend[>>];
1000000: eng Millioun[ >>];
2000000: <%spellout-cardinal-feminine< Milliounen[ >>];
1000000000: eng Milliard[ >>];
2000000000: <%spellout-cardinal-feminine< Milliarden[ >>];
1000000000000: eng Billioun[ >>];
2000000000000: <%spellout-cardinal-feminine< Billiounen[ >>];

%spellout-cardinal-masculine:
-x: minus >>;
x.x: << Komma >>;
0: null;
1: een;
2: zwee;
3: =%spellout-numbering=;

%spellout-cardinal-neuter:
-x: minus >>;
x.x: << Komma >>;
0: null;
1: een;
2: zwee;
3: =%spellout-numbering=;


%spellout-cardinal-feminine:
-x: minus >>;
x.x: << Komma >>;
0: null;
1: eng;
2: zwou;
3: =%spellout-numbering=;

%spellout-ordinal-n:
0: nullten;
1: éischten;
2: zweeten;
3: drëtten;
4: véierten;
5: fënneften;
6: sechsten;
7: siwenten;
8: aachten;
9: =%spellout-numbering=ten;
20: =%spellout-numbering=sten;

%spellout-ordinal-r:
0: nullter;
1: éischter;
2: zweeter;
3: drëtter;
4: véierter;
5: fënnefter;
6: sechster;
7: siwenter;
8: aachter;
9: =%spellout-numbering=ter;
20: =%spellout-numbering=ster;

%spellout-ordinal:
0: nullt;
1: éischt;
2: zweet;
3: drëtt;
4: véiert;
5: fënneft;
6: sechst;
7: siwent;
8: aacht;
9: =%spellout-numbering=t;
20: =%spellout-numbering=st;

%spellout-numbering-year:
-x: minus >>;
x.x: =0.0=;
0: null;
1: een;
2: zwee;
3: =%spellout-numbering=;
1100/100: <%spellout-numbering<honnert[>>];
10000: =%spellout-numbering=;

comment:6 Changed 6 weeks ago by grhoten

As a reminder, you can test your changes with the Number Format Tester. I used English as a basis for the numbering-year variant fix.

I didn't change the feminine fractional because it's unclear if the whole number part retains the feminine gender or the entire number is considered one gender. So I don't know what 1.1, 1.2, 2.1, 2.2 and 1.121212 are suppose to be in the 3 gendered cardinal variants. The type of rules vary widely depending on the answer.

The cardinal rule names are incongruous with the ordinal rule names. Is grammatical case involved with Luxembourgish in addition to gender? If there is case, you should probably not be looking at German. Russian and Finnish are probably better models for rule names.

Here are some updated rules with what you probably wanted. The rules should probably add soft hyphens for the larger numbers to improve line wrapping. Those soft hyphens are used in German, Dutch and a few other languages.

%%2d-year:
0: honnert[=%spellout-cardinal-masculine=];
%spellout-numbering-year:
-x: minus >>;
x.x: =0.0=;
0: =%spellout-numbering=;
1010/100: <<>%%2d-year>;
1100/100: <<>%%2d-year>;
2000: =%spellout-numbering=;
2010/100: <<>%%2d-year>;
2100/100: <<>%%2d-year>;
3000: =%spellout-numbering=;
3010/100: <<>%%2d-year>;
3100/100: <<>%%2d-year>;
4000: =%spellout-numbering=;
4010/100: <<>%%2d-year>;
4100/100: <<>%%2d-year>;
5000: =%spellout-numbering=;
5010/100: <<>%%2d-year>;
5100/100: <<>%%2d-year>;
6000: =%spellout-numbering=;
6010/100: <<>%%2d-year>;
6100/100: <<>%%2d-year>;
7000: =%spellout-numbering=;
7010/100: <<>%%2d-year>;
7100/100: <<>%%2d-year>;
8000: =%spellout-numbering=;
8010/100: <<>%%2d-year>;
8100/100: <<>%%2d-year>;
9000: =%spellout-numbering=;
9010/100: <<>%%2d-year>;
9100/100: <<>%%2d-year>;
10000: =%spellout-numbering=;
%spellout-numbering:
-x: minus >>;
x.x: << Komma >>;
0: null;
1: eent;
2: zwee;
3: dräi;
4: véier;
5: fënnef;
6: sechs;
7: siwen;
8: aacht;
9: néng;
10: zéng;
11: eelef;
12: zwielef;
13: dräizéng;
14: véierzéng;
15: fofzéng;
16: siechzéng;
17: siwwenzéng;
18: uechtzéng;
19: nonzéng;
20: [>>an]zwanzeg;
30: [>>an]drësseg;
40: [>>a]véierzeg;
50: [>>a]fofzeg;
60: [>>a]siechzeg;
70: [>>a]siwwenzeg;
80: [>>an]achtzeg;
90: [>>an]nonzeg;
100: honnert[>>];
200: <<honnert[>>];
1000: dausend[>>];
2000: <<dausend[>>];
1000000: <%spellout-cardinal-feminine< $(cardinal,one{Millioun}other{Milliounen})$[ >>];
1000000000: <%spellout-cardinal-feminine< $(cardinal,one{Milliard}other{Milliarden})$[ >>];
1000000000000: <%spellout-cardinal-feminine< $(cardinal,one{Billiounen}other{Billiounen})$[ >>];
%spellout-cardinal-masculine:
-x: minus >>;
x.x: << Komma >>;
0: null;
1: een;
2: zwee;
3: =%spellout-numbering=;
%spellout-cardinal-neuter:
-x: minus >>;
x.x: << Komma >>;
0: null;
1: een;
2: zwee;
3: =%spellout-numbering=;
%spellout-cardinal-feminine:
-x: minus >>;
x.x: << Komma >>;
0: null;
1: eng;
2: zwou;
3: =%spellout-numbering=;
%spellout-ordinal-n:
0: nullten;
1: éischten;
2: zweeten;
3: drëtten;
4: véierten;
5: fënneften;
6: sechsten;
7: siwenten;
8: aachten;
9: =%spellout-numbering=ten;
20: =%spellout-numbering=sten;
%spellout-ordinal-r:
0: nullter;
1: éischter;
2: zweeter;
3: drëtter;
4: véierter;
5: fënnefter;
6: sechster;
7: siwenter;
8: aachter;
9: =%spellout-numbering=ter;
20: =%spellout-numbering=ster;
%spellout-ordinal:
0: nullt;
1: éischt;
2: zweet;
3: drëtt;
4: véiert;
5: fënneft;
6: sechst;
7: siwent;
8: aacht;
9: =%spellout-numbering=t;
20: =%spellout-numbering=st;

comment:7 Changed 6 weeks ago by peter.gilles@…

As for the fractions and the negative numbers: There is no gender distinction (or case marking). The masculine forms are used for all three genders:

0.1 null Komma eent
0.2 null Komma zwee
0.3 null Komma dräi
1.2 eent Komma zwee
1.3 eent Komma dräi
1.21 eent Komma zwee eent
2.21 zwee Komma zwee eent
-1.22 minus eent Komma zwee

The only case where gender comes into play is cardinal '1' and '2':

feminine  masculine/neuter
1 eng     1 eent
2 zwou    2 zwee

As for the incongruous naming of ordinal rule names: Contrary to the ordinals, there is no case marking for the cardinals. I've inserted the columns nevertheless by copying the rule for cardinal-masculine/cardinal-neuter.

Some soft hyphens have been added.

The most necessary change concerns the replacement of 'eent' ('1') by 'een' ('2') when situated inside a number. I don't know how to formulate the rule.

21 eentanzwanzeg > eenanzwanzeg
121 eenhonnerteentanzwanzeg > eenhonnerteenanzwanzeg

But:

101 honnerteent
2001 zweedausendeent

The updated rules look like this:

%%2d-year:
0: honnert[=%spellout-cardinal-masculine=];
%spellout-numbering-year:
-x: minus >>;
x.x: =0.0=;
0: =%spellout-numbering=;
1010/100: <<>%%2d-year>;
1100/100: <<>%%2d-year>;
2000: =%spellout-numbering=;
2010/100: <<>%%2d-year>;
2100/100: <<>%%2d-year>;
3000: =%spellout-numbering=;
3010/100: <<>%%2d-year>;
3100/100: <<>%%2d-year>;
4000: =%spellout-numbering=;
4010/100: <<>%%2d-year>;
4100/100: <<>%%2d-year>;
5000: =%spellout-numbering=;
5010/100: <<>%%2d-year>;
5100/100: <<>%%2d-year>;
6000: =%spellout-numbering=;
6010/100: <<>%%2d-year>;
6100/100: <<>%%2d-year>;
7000: =%spellout-numbering=;
7010/100: <<>%%2d-year>;
7100/100: <<>%%2d-year>;
8000: =%spellout-numbering=;
8010/100: <<>%%2d-year>;
8100/100: <<>%%2d-year>;
9000: =%spellout-numbering=;
9010/100: <<>%%2d-year>;
9100/100: <<>%%2d-year>;
10000: =%spellout-numbering=;
%spellout-numbering:
-x: minus >>;
x.x: << Komma >>;
0: null;
1: eent;
2: zwee;
3: dräi;
4: véier;
5: fënnef;
6: sechs;
7: siwen;
8: aacht;
9: néng;
10: zéng;
11: eelef;
12: zwielef;
13: dräizéng;
14: véierzéng;
15: fofzéng;
16: siechzéng;
17: siwwenzéng;
18: uechtzéng;
19: nonzéng;
20: [>>­an­]zwanzeg;
30: [>>­an­]drësseg;
40: [>>a­]véierzeg;
50: [>>a­]fofzeg;
60: [>>a­]siechzeg;
70: [>>a­]siwwenzeg;
80: [>>­an­]achtzeg;
90: [>>­an­]nonzeg;
100: ­honnert­[>>];
200: <<­honnert­[>>];
1000: ­dausend­[>>];
2000: <<­dausend­[>>];
1000000: <%spellout-cardinal-feminine<
$(cardinal,one{Millioun}other{Milliounen})$[ >>];
1000000000: <%spellout-cardinal-feminine<
$(cardinal,one{Milliard}other{Milliarden})$[ >>];
1000000000000: <%spellout-cardinal-feminine<
$(cardinal,one{Billiounen}other{Billiounen})$[ >>];
%spellout-cardinal-masculine:
-x: minus >>;
x.x: << Komma >>;
0: null;
1: een;
2: zwee;
3: =%spellout-numbering=;
%spellout-cardinal-neuter:
-x: minus >>;
x.x: << Komma >>;
0: null;
1: een;
2: zwee;
3: =%spellout-numbering=;
%spellout-cardinal-feminine:
-x: minus >>;
x.x: << Komma >>;
0: null;
1: eng;
2: zwou;
3: =%spellout-numbering=;

%spellout-cardinal-en:
-x: minus >>;
x.x: << Komma >>;
0: null;
1: een;
2: zwee;
3: =%spellout-numbering=;

%spellout-cardinal-er:
-x: minus >>;
x.x: << Komma >>;
0: null;
1: een;
2: zwee;
3: =%spellout-numbering=;

%spellout-ordinal-en:
0: nullten;
1: éischten;
2: zweeten;
3: drëtten;
4: véierten;
5: fënneften;
6: sechsten;
7: siwenten;
8: aachten;
9: =%spellout-numbering=ten;
20: =%spellout-numbering=sten;
%spellout-ordinal-er:
0: nullter;
1: éischter;
2: zweeter;
3: drëtter;
4: véierter;
5: fënnefter;
6: sechster;
7: siwenter;
8: aachter;
9: =%spellout-numbering=ter;
20: =%spellout-numbering=ster;
%spellout-ordinal:
0: nullt;
1: éischt;
2: zweet;
3: drëtt;
4: véiert;
5: fënneft;
6: sechst;
7: siwent;
8: aacht;
9: =%spellout-numbering=t;
20: =%spellout-numbering=st;

comment:8 Changed 5 weeks ago by kent.karlsson14@…

The most necessary change concerns the replacement of 'eent' ('1') by 'een' ('2') when situated inside a number. I don't know how to formulate the rule.

I think this should be sufficient (for masculine), note: snippet:

%%spellout-cardinal-masculine:
0: null;
1: een;
2: =%spellout-cardinal-masculine=;

%spellout-cardinal-masculine:
-x: menus >>;
x.x: << Komma >>;
0: null;
1: eent;
2: zwee;
3: dräi;
4: véier;
5: fënnef;
6: sechs;
7: siwen;
8: aacht;
9: néng;
10: zéng;
11: eelef;
12: zwielef;
13: dräizéng;
14: véierzéng;
15: fofzéng;
16: siechzéng;
17: siwwenzéng;
18: uechtzéng;
19: nonzéng;
20: [>%%spellout-cardinal-masculine>an]zwanzeg;
30: [>%%spellout-cardinal-masculine>an]drësseg;
40: [>%%spellout-cardinal-masculine>a]véierzeg;
50: [>%%spellout-cardinal-masculine>a]fofzeg;
60: [>%%spellout-cardinal-masculine>a]siechzeg;
70: [>%%spellout-cardinal-masculine>a]siwwenzeg;
80: [>%%spellout-cardinal-masculine>an]achtzeg;
90: [>%%spellout-cardinal-masculine>an]nonzeg;
....

Note that %%spellout-cardinal-masculine and %spellout-cardinal-masculine are two different names.

comment:9 Changed 5 weeks ago by kent.karlsson14@…

You also need to cover "infinity" and "not a number".

comment:10 Changed 5 weeks ago by peter.gilles@…

Thank you, Kent, for updating. I've modified the whole rule section accordingly.

One issue remains: In fractions the '1' after the comma/point has also follow the 'masculine system':

1.1 eent Komma eent NOT: eent Komma een OR eent Komma eng

I am not sure about the necessary naming conventions. 'numbering', 'cardinal-masculine', 'cardinal-neuter', 'cardinal-en', 'cardinal-er' are identical and I've kept 'cardinal-er' and 'cardinal-en' only for symmetry with the ordinal system. They are not really necessary in my view.

%%2d-year:
0: honnert[=%spellout-cardinal-masculine=];
%spellout-numbering-year:
-x: minus >>;
x.x: =0.0=;
0: =%spellout-cardinal-neuter=;
1010/100: <<>%%2d-year>;
1100/100: <<>%%2d-year>;
2000: =%spellout-cardinal-neuter=;
2010/100: <<>%%2d-year>;
2100/100: <<>%%2d-year>;
3000: =%spellout-cardinal-neuter=;
3010/100: <<>%%2d-year>;
3100/100: <<>%%2d-year>;
4000: =%spellout-cardinal-neuter=;
4010/100: <<>%%2d-year>;
4100/100: <<>%%2d-year>;
5000: =%spellout-cardinal-neuter=;
5010/100: <<>%%2d-year>;
5100/100: <<>%%2d-year>;
6000: =%spellout-cardinal-neuter=;
6010/100: <<>%%2d-year>;
6100/100: <<>%%2d-year>;
7000: =%spellout-cardinal-neuter=;
7010/100: <<>%%2d-year>;
7100/100: <<>%%2d-year>;
8000: =%spellout-cardinal-neuter=;
8010/100: <<>%%2d-year>;
8100/100: <<>%%2d-year>;
9000: =%spellout-cardinal-neuter=;
9010/100: <<>%%2d-year>;
9100/100: <<>%%2d-year>;
10000: =%spellout-cardinal-neuter=;

%spellout-numbering:
-x: minus >%%spellout-cardinal-neuter>;
x.x: <%%spellout-cardinal-neuter< Komma >>;
0: null;
1: eent;
2: zwee;
3: =%spellout-cardinal-neuter=;

%%spellout-cardinal-masculine:
0: null;
1: een;
2: =%spellout-cardinal-masculine=;

%spellout-cardinal-masculine:
-x: minus >%%spellout-cardinal-neuter>;
x.x: << Komma >>;
0: null;
1: eent;
2: zwee;
3: dräi;
4: véier;
5: fënnef;
6: sechs;
7: siwen;
8: aacht;
9: néng;
10: zéng;
11: eelef;
12: zwielef;
13: dräizéng;
14: véierzéng;
15: fofzéng;
16: siechzéng;
17: siwwenzéng;
18: uechtzéng;
19: nonzéng;
20: [>%%spellout-cardinal-masculine>an]zwanzeg;
30: [>%%spellout-cardinal-masculine>an]drësseg;
40: [>%%spellout-cardinal-masculine>a]véierzeg;
50: [>%%spellout-cardinal-masculine>a]fofzeg;
60: [>%%spellout-cardinal-masculine>a]siechzeg;
70: [>%%spellout-cardinal-masculine>a]siwwenzeg;
80: [>%%spellout-cardinal-masculine>an]achtzeg;
90: [>%%spellout-cardinal-masculine>an]nonzeg;
100: ­honnert­[>>];
200: <%%spellout-cardinal-masculine<­honnert­[>>];
1000: ­dausend­[>>];
2000: <%%spellout-cardinal-masculine<­dausend­[>>];
1000000: <%spellout-cardinal-feminine<
$(cardinal,one{Millioun}other{Milliounen})$[ >%%spellout-cardinal-masculine>];
1000000000: <%spellout-cardinal-feminine<
$(cardinal,one{Milliard}other{Milliarden})$[ >%%spellout-cardinal-masculine>];
1000000000000: <%spellout-cardinal-feminine<
$(cardinal,one{Billiounen}other{Billiounen})$[ >%%spellout-cardinal-masculine>];

%%spellout-cardinal-neuter:
0: null;
1: eent;
2: zwee;
3: =%spellout-cardinal-masculine=;

%spellout-cardinal-neuter:
-x: minus >%%spellout-cardinal-neuter>;
x.x: <%%spellout-cardinal-neuter< Komma >>;
0: null;
1: een;
2: zwee;
3: =%spellout-cardinal-masculine=;

%spellout-cardinal-feminine:
-x: minus >%%spellout-cardinal-neuter>;
x.x: <%%spellout-cardinal-neuter< Komma >>;
0: null;
1: eng;
2: zwou;
3: =%spellout-cardinal-masculine=;

%spellout-cardinal-en:
-x: minus >%%spellout-cardinal-neuter>;
x.x: <%%spellout-cardinal-neuter< Komma >>;
0: null;
1: een;
2: zwee;
3: =%spellout-cardinal-masculine=;

%spellout-cardinal-er:
-x: minus >%%spellout-cardinal-neuter>;
x.x: <%%spellout-cardinal-neuter< Komma >>;
0: null;
1: een;
2: zwee;
3: =%spellout-cardinal-masculine=;

%spellout-ordinal-en:
0: nullten;
1: éischten;
2: zweeten;
3: drëtten;
4: véierten;
5: fënneften;
6: sechsten;
7: siwenten;
8: aachten;
9: =%spellout-cardinal-neuter=ten;
20: =%spellout-cardinal-neuter=sten;
%spellout-ordinal-er:
0: nullter;
1: éischter;
2: zweeter;
3: drëtter;
4: véierter;
5: fënnefter;
6: sechster;
7: siwenter;
8: aachter;
9: =%spellout-cardinal-neuter=ter;
20: =%spellout-cardinal-neuter=ster;
%spellout-ordinal:
0: nullt;
1: éischt;
2: zweet;
3: drëtt;
4: véiert;
5: fënneft;
6: sechst;
7: siwent;
8: aacht;
9: =%spellout-cardinal-neuter=t;
20: =%spellout-cardinal-neuter=st;

comment:11 Changed 5 weeks ago by kent.karlsson14@…

I made another pass over the rules, and here is what I arrived at. Some things are still unclear, esp. inflections.
Please review via running the rules in http://st.unicode.org/cldr-apps/numbers.jsp.

Fractions aren't prefect for any language, and most special handling of fractions has been omitted for other languages.
So I haven't done any special handling of fractions here either.


%spellout-numbering-year:
Inf: Éiwegkeet;
NaN: net eng Nummer;
-x: minus >>;
x.x: =#,###0.##=;
0: =%spellout-cardinal-neuter=;
1010/100: <%spellout-cardinal-masculine<honnert[>%spellout-cardinal-neuter>];
2000: =%spellout-cardinal-neuter=;
2010/100: <%spellout-cardinal-masculine<honnert>[>%spellout-cardinal-neuter>];
3000: =%spellout-cardinal-neuter=;
3010/100: <%spellout-cardinal-masculine<honnert[>%spellout-cardinal-neuter>];
4000: =%spellout-cardinal-neuter=;
4010/100: <%spellout-cardinal-masculine<honnert[>%spellout-cardinal-neuter>];
5000: =%spellout-cardinal-neuter=;
5010/100: <%spellout-cardinal-masculine<honnert>[>%spellout-cardinal-neuter>];
6000: =%spellout-cardinal-neuter=;
6010/100: <%spellout-cardinal-masculine<honnert>[>%spellout-cardinal-neuter>];
7000: =%spellout-cardinal-neuter=;
7010/100: <%spellout-cardinal-masculine<honnert>[>%spellout-cardinal-neuter>];
8000: =%spellout-cardinal-neuter=;
8010/100: <%spellout-cardinal-masculine<honnert>[>%spellout-cardinal-neuter>];
9000: =%spellout-cardinal-neuter=;
9010/100: <%spellout-cardinal-masculine<honnert>[>%spellout-cardinal-neuter>];
10000: =%spellout-cardinal-neuter=;

%spellout-numbering:
0: =%spellout-cardinal-masculine=;


%spellout-cardinal-masculine:
Inf: Onendlechkeet;
NaN: net eng Nummer;
-x: minus >>;
x.x: << Komma >>;
0: null;
1: eent;
2: zwee;
3: dräi;
4: véier;
5: fënnef;
6: sechs;
7: siwen;
8: aacht;
9: néng;
10: zéng;
11: eelef;
12: zwielef;
13: dräizéng;
14: véierzéng;
15: fofzéng;
16: siechzéng;
17: siwwenzéng;
18: uechtzéng;
19: nonzéng;
20: [>%spellout-cardinal-neuter>an]zwanzeg;
30: [>%spellout-cardinal-neuter>an]drësseg;
40: [>%spellout-cardinal-neuter>an]véierzeg;
50: [>%spellout-cardinal-neuter>an]fofzeg;
60: [>%spellout-cardinal-neuter>an]siechzeg;
70: [>%spellout-cardinal-neuter>an]siwwenzeg;
80: [>%spellout-cardinal-neuter>an]achtzeg;
90: [>%spellout-cardinal-neuter>an]nonzeg;
100: ­honnert­[>>];
200: <%spellout-cardinal-masculine<­honnert­[>>];
1000: ­dausend­[>>];
2000: <%spellout-cardinal-masculine<­dausend­[>>];
1000000: <%spellout-cardinal-feminine< Millioun[ >>];
2000000: <%spellout-cardinal-feminine< Milliounen[ >>];
1000000000: <%spellout-cardinal-feminine< Milliard[ >>];
2000000000: <%spellout-cardinal-feminine< Milliarden[ >>];
1000000000000: <%spellout-cardinal-feminine< Billioun[ >>];
2000000000000: <%spellout-cardinal-feminine< Billiounen[ >>];
1000000000000000: <%spellout-cardinal-feminine< Billiard[ >>];
2000000000000000: <%spellout-cardinal-feminine< Billiarden[ >>];
1000000000000000000: =#,##0=;

%spellout-cardinal-feminine:
Inf: Onendlechkeet;
NaN: net eng Nummer;
-x: minus >>;
x.x: << Komma >>;
0: null;
1: eng;
2: zwou;
3: =%spellout-cardinal-masculine=;
100: ­honnert­[>>];
200: <%spellout-cardinal-masculine<­honnert­[>>];
1000: ­dausend­[>>];
2000: <%spellout-cardinal-masculine<­dausend­[>>];
1000000: <%spellout-cardinal-feminine< Millioun[ >>];
2000000: <%spellout-cardinal-feminine< Milliounen[ >>];
1000000000: <%spellout-cardinal-feminine< Milliard[ >>];
2000000000: <%spellout-cardinal-feminine< Milliarden[ >>];
1000000000000: <%spellout-cardinal-feminine< Billioun[ >>];
2000000000000: <%spellout-cardinal-feminine< Billiounen[ >>];
1000000000000000: <%spellout-cardinal-feminine< Billiard[ >>];
2000000000000000: <%spellout-cardinal-feminine< Billiarden[ >>];
1000000000000000000: =#,##0=;

%spellout-cardinal-neuter:
Inf: Onendlechkeet;
NaN: net eng Nummer;
-x: minus >>;
x.x: << Komma >>;
0: null;
1: een;
2: =%spellout-cardinal-masculine=;
100: ­honnert­[>>];
200: <%spellout-cardinal-masculine<­honnert­[>>];
1000: ­dausend­[>>];
2000: <%spellout-cardinal-masculine<­dausend­[>>];
1000000: <%spellout-cardinal-feminine< Millioun[ >>];
2000000: <%spellout-cardinal-feminine< Milliounen[ >>];
1000000000: <%spellout-cardinal-feminine< Milliard[ >>];
2000000000: <%spellout-cardinal-feminine< Milliarden[ >>];
1000000000000: <%spellout-cardinal-feminine< Billioun[ >>];
2000000000000: <%spellout-cardinal-feminine< Billiounen[ >>];
1000000000000000: <%spellout-cardinal-feminine< Billiard[ >>];
2000000000000000: <%spellout-cardinal-feminine< Billiarden[ >>];
1000000000000000000: =#,##0=;




%spellout-ordinal-masculine:
Inf: onendlechten;
NaN: net eng Nummer;
-x: minus >>;
x.x: =#,##0.##=.;
0: nullten;
1: éischten;
2: zweeten;
3: drëtten;
4: véierten;
5: fënneften;
6: sechsten;
7: siwenten;
8: aachten;
9: =%spellout-cardinal-neuter=ten;
20: =%spellout-cardinal-neuter=sten;
100: ­honnert­>%%ord-t-masc>;
200: <%spellout-cardinal-masculine<­honnert­>%%ord-t-masc>;
1000: ­dausend­>%%ord-t-masc>;
2000: <%spellout-cardinal-masculine<­dausend­>%%ord-t-masc>;
1000000: <%spellout-cardinal-feminine< Millioun>%%ord-M-masc>;
2000000: <%spellout-cardinal-feminine< Milliounen>%%ord-M-masc>;
1000000000: <%spellout-cardinal-feminine< Milliard>%%ord-M-masc>;
2000000000: <%spellout-cardinal-feminine< Milliarden>%%ord-M-masc>;
1000000000000: <%spellout-cardinal-feminine< Billioun>%%ord-M-masc>;
2000000000000: <%spellout-cardinal-feminine< Billiounen>%%ord-M-masc>;
1000000000000000: <%spellout-cardinal-feminine< Billiard>%%ord-M-masc>;
2000000000000000: <%spellout-cardinal-feminine< Billiarden>%%ord-M-masc>;
1000000000000000000: =#,##0=.;

%%ord-t-masc:
0: en;
1: =%spellout-ordinal-masculine=;
%%ord-M-masc:
0: ten;
1: ' =%spellout-ordinal-masculine=;

%spellout-ordinal-feminine:
Inf: onendlechter;
NaN: net eng Nummer;
-x: minus >>;
x.x: =#,##0.##=.;
0: nullter;
1: éischter;
2: zweeter;
3: drëtter;
4: véierter;
5: fënnefter;
6: sechster;
7: siwenter;
8: aachter;
9: =%spellout-cardinal-neuter=ter;
20: =%spellout-cardinal-neuter=ster;
100: ­honnert­>%%ord-t-fem>;
200: <%spellout-cardinal-masculine<­honnert­>%%ord-t-fem>;
1000: ­dausend­>%%ord-t-fem>;
2000: <%spellout-cardinal-masculine<­dausend­>%%ord-t-fem>;
1000000: <%spellout-cardinal-feminine< Millioun>%%ord-M-fem>;
2000000: <%spellout-cardinal-feminine< Milliounen>%%ord-M-fem>;
1000000000: <%spellout-cardinal-feminine< Milliard>%%ord-M-fem>;
2000000000: <%spellout-cardinal-feminine< Milliarden>%%ord-M-fem>;
1000000000000: <%spellout-cardinal-feminine< Billioun>%%ord-M-fem>;
2000000000000: <%spellout-cardinal-feminine< Billiounen>%%ord-M-fem>;
1000000000000000: <%spellout-cardinal-feminine< Billiard>%%ord-M-fem>;
2000000000000000: <%spellout-cardinal-feminine< Billiarden>%%ord-M-fem>;
1000000000000000000: =#,##0=.;

%%ord-t-fem:
0: er;
1: =%spellout-ordinal-feminine=;
%%ord-M-fem:
0: ter;
1: ' =%spellout-ordinal-feminine=;


%spellout-ordinal-neuter:
Inf: onendlecht;
NaN: net eng Nummer;
-x: minus >>;
x.x: =#,##0.##=.;
0: nullt;
1: éischt;
2: zweet;
3: drëtt;
4: véiert;
5: fënneft;
6: sechst;
7: siwent;
8: aacht;
9: =%spellout-cardinal-neuter=t;
20: =%spellout-cardinal-neuter=st;
100: ­honnert­>%%ord-t-neut>;
200: <%spellout-cardinal-masculine<­honnert­>%%ord-t-neut>;
1000: ­dausend­>%%ord-t-neut>;
2000: <%spellout-cardinal-masculine<­dausend­>%%ord-t-neut>;
1000000: <%spellout-cardinal-feminine< Millioun>%%ord-M-neut>;
2000000: <%spellout-cardinal-feminine< Milliounen>%%ord-M-neut>;
1000000000: <%spellout-cardinal-feminine< Milliard>%%ord-M-neut>;
2000000000: <%spellout-cardinal-feminine< Milliarden>%%ord-M-neut>;
1000000000000: <%spellout-cardinal-feminine< Billioun>%%ord-M-neut>;
2000000000000: <%spellout-cardinal-feminine< Billiounen>%%ord-M-neut>;
1000000000000000: <%spellout-cardinal-feminine< Billiard>%%ord-M-neut>;
2000000000000000: <%spellout-cardinal-feminine< Billiarden>%%ord-M-neut>;
1000000000000000000: =#,##0=.;

%%ord-t-neut:
0: et;
1: =%spellout-ordinal-neuter=;
%%ord-M-neut:
0: t;
1: ' =%spellout-ordinal-neuter=;

comment:12 Changed 8 days ago by grhoten

  • Status changed from accepted to reviewing
  • Review set to sascha

I took Kent's last rules and made a few changes. I fixed the > typos in the numbering year rules. The fractions are all masculine according to the previous request. I used the plural format for the large numbers..

comment:13 Changed 8 days ago by peter.gilles@…

Sorry for answering so late. But some changes to the above code are necessary (basically changing some things to the previous version).

The inflected forms for the ordinals cannot easily attributed to the genders feminine, masculine or neuter. Rather, it is reasonable to name them after their ending only, i.e. 'ordinal-er', 'ordinal-en' and a base form 'ordinal' (similar to German).
Some changes were made to numbering-year and to the 'minus' numbers.

So, please consider the following version:

%%2d-year:
0: honnert[=%spellout-cardinal-masculine=];

%spellout-numbering-year:
-x: minus >>;
x.x: =0.0=;
0: =%spellout-cardinal-neuter=;
1100/100: <<>%%2d-year>;
2000: =%spellout-cardinal-neuter=;

%spellout-numbering:
Inf: onendlech;
NaN: keng Zuel;
-x: minus >%%spellout-cardinal-eent>;
x.x: <%%spellout-cardinal-eent< Komma >>;
0: null;
1: eent;
2: zwee;
3: =%spellout-cardinal-neuter=;

%%spellout-cardinal-eent:
0: null;
1: eent;
2: =%spellout-cardinal-masculine=;

%spellout-cardinal-masculine:
Inf: onendlech;
NaN: keng Zuel;
-x: minus >%%spellout-cardinal-eent>;
x.x: << Komma >>;
0: null;
1: een;
2: zwee;
3: dräi;
4: véier;
5: fënnef;
6: sechs;
7: siwen;
8: aacht;
9: néng;
10: zéng;
11: eelef;
12: zwielef;
13: dräizéng;
14: véierzéng;
15: fofzéng;
16: siechzéng;
17: siwwenzéng;
18: uechtzéng;
19: nonzéng;
20: [>>an]zwanzeg;
30: [>>an]drësseg;
40: [>>a]véierzeg;
50: [>>a]fofzeg;
60: [>>a]siechzeg;
70: [>>a]siwwenzeg;
80: [>>an]achtzeg;
90: [>>an]nonzeg;
100: ­honnert­[>%%spellout-cardinal-eent>];
200: <<­honnert­[>%%spellout-cardinal-eent>];
1000: ­dausend­[>%%spellout-cardinal-eent>];
2000: <<­dausend­[>%%spellout-cardinal-eent>];
1000000: <%spellout-cardinal-feminine<
$(cardinal,one{Millioun}other{Milliounen})$[ >%%spellout-cardinal-eent>];
1000000000: <%spellout-cardinal-feminine<
$(cardinal,one{Milliard}other{Milliarden})$[ >%%spellout-cardinal-eent>];
1000000000000: <%spellout-cardinal-feminine<
$(cardinal,one{Billiounen}other{Billiounen})$[ >%%spellout-cardinal-eent>];

%spellout-cardinal-neuter:
Inf: onendlech;
NaN: keng Zuel;
-x: minus >%%spellout-cardinal-eent>;
x.x: <%%spellout-cardinal-eent< Komma >>;
0: null;
1: een;
2: zwee;
3: =%spellout-cardinal-masculine=;

%spellout-cardinal-feminine:
Inf: onendlech;
NaN: keng Zuel;
-x: minus >%%spellout-cardinal-eent>;
x.x: <%%spellout-cardinal-eent< Komma >>;
0: null;
1: eng;
2: zwou;
3: =%spellout-cardinal-masculine=;

%spellout-ordinal-en:
0: nullten;
1: éischten;
2: zweeten;
3: drëtten;
4: véierten;
5: fënneften;
6: sechsten;
7: siwenten;
8: aachten;
9: =%spellout-cardinal-neuter=ten;
20: =%spellout-cardinal-neuter=sten;
%spellout-ordinal-er:
0: nullter;
1: éischter;
2: zweeter;
3: drëtter;
4: véierter;
5: fënnefter;
6: sechster;
7: siwenter;
8: aachter;
9: =%spellout-cardinal-neuter=ter;
20: =%spellout-cardinal-neuter=ster;
%spellout-ordinal:
0: nullt;
1: éischt;
2: zweet;
3: drëtt;
4: véiert;
5: fënneft;
6: sechst;
7: siwent;
8: aacht;
9: =%spellout-cardinal-neuter=t;
20: =%spellout-cardinal-neuter=st;

Kind regards,
peter

comment:14 Changed 7 days ago by grhoten

  • Status changed from reviewing to reviewfeedback

After a previous CLDR meeting, we're discouraging what was done in German in the future. These looks like grammatical cases. According to https://en.wikipedia.org/wiki/Luxembourgish, it has 3 cases, unlike German's 4 cases. Please provide the genders and cases used for each of those ordinals. Also based on the ordinal layout, it seems like the cardinals are incomplete. It's unusual to have the cardinals and ordinals split up like that in other languages. What is the gender and case combinations used for these ordinal and cardinal rules?

comment:15 Changed 7 days ago by kent.karlsson14@…

(Sorry for the typo...)

Re:

%spellout-numbering-year:
-x: minus >>;
x.x: =0.0=;
0: =%spellout-cardinal-neuter=;
1100/100: <<>%%2d-year>;
2000: =%spellout-cardinal-neuter=;

You should cover NaN and Inf. But more importantly, you cannot stop the pattern at 2000... You should cover with the same pattern up to year 10000 (ok, maybe overoptimistic in a sense, but no reason not to). And omitting "hundred" here is unusual (among languages).

View

Add a comment

Modify Ticket

Action
as reviewfeedback
Author


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

 
Note: See TracTickets for help on using tickets.