twitter_cldr 3.0.0.beta1 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +16 -2
- data/History.txt +9 -1
- data/README.md +297 -113
- data/Rakefile +97 -17
- data/lib/twitter_cldr/collation/collator.rb +12 -3
- data/lib/twitter_cldr/collation/trie_builder.rb +1 -1
- data/lib/twitter_cldr/{tokenizers/calendars → data_readers}/additional_date_format_selector.rb +6 -4
- data/lib/twitter_cldr/data_readers/calendar_data_reader.rb +91 -0
- data/lib/twitter_cldr/data_readers/data_reader.rb +32 -0
- data/lib/twitter_cldr/data_readers/date_data_reader.rb +26 -0
- data/lib/twitter_cldr/data_readers/date_time_data_reader.rb +41 -0
- data/lib/twitter_cldr/data_readers/number_data_reader.rb +142 -0
- data/lib/twitter_cldr/data_readers/time_data_reader.rb +26 -0
- data/lib/twitter_cldr/data_readers/timespan_data_reader.rb +122 -0
- data/lib/twitter_cldr/data_readers.rb +17 -0
- data/lib/twitter_cldr/formatters/calendars/{datetime_formatter.rb → date_time_formatter.rb} +27 -42
- data/lib/twitter_cldr/formatters/calendars/timespan_formatter.rb +3 -64
- data/lib/twitter_cldr/formatters/formatter.rb +39 -0
- data/lib/twitter_cldr/formatters/list_formatter.rb +22 -12
- data/lib/twitter_cldr/formatters/numbers/abbreviated/abbreviated_number_formatter.rb +5 -26
- data/lib/twitter_cldr/formatters/numbers/currency_formatter.rb +2 -11
- data/lib/twitter_cldr/formatters/numbers/decimal_formatter.rb +4 -2
- data/lib/twitter_cldr/formatters/numbers/number_formatter.rb +45 -27
- data/lib/twitter_cldr/formatters/numbers/percent_formatter.rb +3 -13
- data/lib/twitter_cldr/formatters/numbers/rbnf/formatters.rb +224 -0
- data/lib/twitter_cldr/formatters/numbers/rbnf/post_processors/chinese.rb +122 -0
- data/lib/twitter_cldr/formatters/numbers/rbnf/rule.rb +93 -0
- data/lib/twitter_cldr/formatters/numbers/rbnf/rule_group.rb +20 -0
- data/lib/twitter_cldr/formatters/numbers/rbnf/rule_parser.rb +86 -0
- data/lib/twitter_cldr/formatters/numbers/rbnf/rule_set.rb +259 -0
- data/lib/twitter_cldr/formatters/numbers/rbnf/substitution.rb +30 -0
- data/lib/twitter_cldr/formatters/numbers/rbnf.rb +127 -0
- data/lib/twitter_cldr/formatters/plurals/plural_formatter.rb +18 -6
- data/lib/twitter_cldr/formatters.rb +4 -5
- data/lib/twitter_cldr/localized/localized_array.rb +1 -1
- data/lib/twitter_cldr/localized/localized_date.rb +6 -3
- data/lib/twitter_cldr/localized/localized_datetime.rb +38 -15
- data/lib/twitter_cldr/localized/localized_number.rb +40 -24
- data/lib/twitter_cldr/localized/localized_object.rb +4 -4
- data/lib/twitter_cldr/localized/localized_string.rb +40 -7
- data/lib/twitter_cldr/localized/localized_time.rb +9 -2
- data/lib/twitter_cldr/localized/localized_timespan.rb +50 -5
- data/lib/twitter_cldr/normalization.rb +8 -19
- data/lib/twitter_cldr/parsers/parser.rb +50 -0
- data/lib/twitter_cldr/parsers/segmentation_parser.rb +137 -0
- data/lib/twitter_cldr/parsers/symbol_table.rb +30 -0
- data/lib/twitter_cldr/parsers/unicode_regex/character_class.rb +91 -0
- data/lib/twitter_cldr/parsers/unicode_regex/character_range.rb +39 -0
- data/lib/twitter_cldr/parsers/unicode_regex/character_set.rb +65 -0
- data/lib/twitter_cldr/parsers/unicode_regex/component.rb +50 -0
- data/lib/twitter_cldr/parsers/unicode_regex/literal.rb +83 -0
- data/lib/twitter_cldr/parsers/unicode_regex/unicode_string.rb +41 -0
- data/lib/twitter_cldr/parsers/unicode_regex_parser.rb +262 -0
- data/lib/twitter_cldr/parsers.rb +5 -1
- data/lib/twitter_cldr/resources/casefolder.rb.erb +64 -0
- data/lib/twitter_cldr/resources/casefolder_class_generator.rb +75 -0
- data/lib/twitter_cldr/resources/download.rb +10 -4
- data/lib/twitter_cldr/resources/icu_based_importer.rb +18 -0
- data/lib/twitter_cldr/resources/locales_resources_importer.rb +24 -13
- data/lib/twitter_cldr/resources/normalization_quick_check_importer.rb +1 -14
- data/lib/twitter_cldr/resources/rbnf_test_importer.rb +107 -0
- data/lib/twitter_cldr/resources/readme_renderer.rb +115 -0
- data/lib/twitter_cldr/resources/tailoring_importer.rb +2 -8
- data/lib/twitter_cldr/resources/uli/segment_exceptions_importer.rb +62 -0
- data/lib/twitter_cldr/resources/uli.rb +12 -0
- data/lib/twitter_cldr/resources/unicode_data_importer.rb +84 -14
- data/lib/twitter_cldr/resources/unicode_importer.rb +37 -0
- data/lib/twitter_cldr/resources/unicode_properties_importer.rb +79 -0
- data/lib/twitter_cldr/resources.rb +8 -1
- data/lib/twitter_cldr/shared/break_iterator.rb +213 -0
- data/lib/twitter_cldr/shared/calendar.rb +38 -14
- data/lib/twitter_cldr/shared/casefolder.rb +210 -0
- data/lib/twitter_cldr/shared/code_point.rb +103 -16
- data/lib/twitter_cldr/shared/numbering_system.rb +58 -0
- data/lib/twitter_cldr/shared/territories.rb +43 -1
- data/lib/twitter_cldr/shared/unicode_regex.rb +81 -0
- data/lib/twitter_cldr/shared.rb +13 -9
- data/lib/twitter_cldr/tokenizers/calendars/date_time_tokenizer.rb +77 -0
- data/lib/twitter_cldr/tokenizers/calendars/date_tokenizer.rb +14 -29
- data/lib/twitter_cldr/tokenizers/calendars/time_tokenizer.rb +13 -28
- data/lib/twitter_cldr/tokenizers/calendars/timespan_tokenizer.rb +11 -87
- data/lib/twitter_cldr/tokenizers/numbers/number_tokenizer.rb +16 -71
- data/lib/twitter_cldr/tokenizers/numbers/rbnf_tokenizer.rb +53 -0
- data/lib/twitter_cldr/tokenizers/pattern_tokenizer.rb +42 -0
- data/lib/twitter_cldr/tokenizers/segmentation/segmentation_tokenizer.rb +39 -0
- data/lib/twitter_cldr/tokenizers/tokenizer.rb +116 -0
- data/lib/twitter_cldr/tokenizers/unicode_regex/unicode_regex_tokenizer.rb +52 -0
- data/lib/twitter_cldr/tokenizers.rb +8 -4
- data/lib/twitter_cldr/utils/code_points.rb +1 -1
- data/lib/twitter_cldr/utils/range_set.rb +242 -0
- data/lib/twitter_cldr/utils/yaml.rb +17 -12
- data/lib/twitter_cldr/utils.rb +1 -1
- data/lib/twitter_cldr/version.rb +1 -1
- data/lib/twitter_cldr.rb +2 -1
- data/resources/custom/locales/sv/units.yml +8 -0
- data/resources/locales/af/calendars.yml +278 -224
- data/resources/locales/af/currencies.yml +954 -916
- data/resources/locales/af/languages.yml +583 -580
- data/resources/locales/af/layout.yml +5 -5
- data/resources/locales/af/lists.yml +23 -7
- data/resources/locales/af/numbers.yml +59 -54
- data/resources/locales/af/plurals.yml +2 -2
- data/resources/locales/af/rbnf.yml +261 -0
- data/resources/locales/af/territories.yml +264 -263
- data/resources/locales/ar/calendars.yml +287 -259
- data/resources/locales/ar/currencies.yml +1730 -1692
- data/resources/locales/ar/languages.yml +583 -580
- data/resources/locales/ar/layout.yml +5 -5
- data/resources/locales/ar/lists.yml +23 -7
- data/resources/locales/ar/numbers.yml +66 -61
- data/resources/locales/ar/plurals.yml +5 -8
- data/resources/locales/ar/rbnf.yml +519 -0
- data/resources/locales/ar/territories.yml +264 -263
- data/resources/locales/be/calendars.yml +238 -237
- data/resources/locales/be/currencies.yml +954 -917
- data/resources/locales/be/languages.yml +583 -580
- data/resources/locales/be/layout.yml +5 -5
- data/resources/locales/be/lists.yml +23 -7
- data/resources/locales/be/numbers.yml +62 -57
- data/resources/locales/be/plurals.yml +7 -4
- data/resources/locales/be/rbnf.yml +1288 -0
- data/resources/locales/be/territories.yml +264 -263
- data/resources/locales/bg/calendars.yml +278 -218
- data/resources/locales/bg/currencies.yml +955 -917
- data/resources/locales/bg/languages.yml +583 -580
- data/resources/locales/bg/layout.yml +5 -5
- data/resources/locales/bg/lists.yml +23 -7
- data/resources/locales/bg/numbers.yml +62 -57
- data/resources/locales/bg/plurals.yml +2 -2
- data/resources/locales/bg/rbnf.yml +280 -0
- data/resources/locales/bg/territories.yml +264 -263
- data/resources/locales/bn/calendars.yml +287 -225
- data/resources/locales/bn/currencies.yml +953 -916
- data/resources/locales/bn/languages.yml +583 -580
- data/resources/locales/bn/layout.yml +5 -5
- data/resources/locales/bn/lists.yml +23 -7
- data/resources/locales/bn/numbers.yml +62 -57
- data/resources/locales/bn/plurals.yml +2 -2
- data/resources/locales/bn/rbnf.yml +4 -0
- data/resources/locales/bn/territories.yml +264 -263
- data/resources/locales/ca/calendars.yml +278 -278
- data/resources/locales/ca/currencies.yml +953 -916
- data/resources/locales/ca/languages.yml +583 -580
- data/resources/locales/ca/layout.yml +5 -5
- data/resources/locales/ca/lists.yml +23 -7
- data/resources/locales/ca/numbers.yml +62 -57
- data/resources/locales/ca/plurals.yml +3 -2
- data/resources/locales/ca/rbnf.yml +756 -0
- data/resources/locales/ca/territories.yml +264 -263
- data/resources/locales/cs/calendars.yml +269 -262
- data/resources/locales/cs/currencies.yml +1483 -1172
- data/resources/locales/cs/languages.yml +583 -580
- data/resources/locales/cs/layout.yml +5 -5
- data/resources/locales/cs/lists.yml +23 -7
- data/resources/locales/cs/numbers.yml +64 -58
- data/resources/locales/cs/plurals.yml +6 -2
- data/resources/locales/cs/rbnf.yml +367 -0
- data/resources/locales/cs/territories.yml +264 -263
- data/resources/locales/cy/calendars.yml +275 -274
- data/resources/locales/cy/currencies.yml +1585 -1548
- data/resources/locales/cy/languages.yml +583 -580
- data/resources/locales/cy/layout.yml +5 -5
- data/resources/locales/cy/lists.yml +23 -7
- data/resources/locales/cy/numbers.yml +66 -61
- data/resources/locales/cy/plurals.yml +4 -3
- data/resources/locales/cy/rbnf.yml +298 -0
- data/resources/locales/cy/territories.yml +264 -263
- data/resources/locales/da/calendars.yml +281 -280
- data/resources/locales/da/currencies.yml +954 -916
- data/resources/locales/da/languages.yml +583 -580
- data/resources/locales/da/layout.yml +5 -5
- data/resources/locales/da/lists.yml +23 -7
- data/resources/locales/da/numbers.yml +62 -57
- data/resources/locales/da/plurals.yml +3 -2
- data/resources/locales/da/rbnf.yml +194 -0
- data/resources/locales/da/territories.yml +264 -263
- data/resources/locales/de/calendars.yml +294 -293
- data/resources/locales/de/currencies.yml +954 -916
- data/resources/locales/de/languages.yml +583 -580
- data/resources/locales/de/layout.yml +5 -5
- data/resources/locales/de/lists.yml +23 -7
- data/resources/locales/de/numbers.yml +62 -57
- data/resources/locales/de/plurals.yml +3 -2
- data/resources/locales/de/rbnf.yml +346 -0
- data/resources/locales/de/territories.yml +264 -263
- data/resources/locales/el/calendars.yml +279 -282
- data/resources/locales/el/currencies.yml +954 -916
- data/resources/locales/el/languages.yml +583 -580
- data/resources/locales/el/layout.yml +5 -5
- data/resources/locales/el/lists.yml +23 -7
- data/resources/locales/el/numbers.yml +62 -57
- data/resources/locales/el/plurals.yml +2 -2
- data/resources/locales/el/rbnf.yml +880 -0
- data/resources/locales/el/territories.yml +264 -263
- data/resources/locales/en/calendars.yml +192 -191
- data/resources/locales/en/currencies.yml +953 -915
- data/resources/locales/en/languages.yml +583 -580
- data/resources/locales/en/layout.yml +5 -5
- data/resources/locales/en/lists.yml +23 -7
- data/resources/locales/en/numbers.yml +62 -57
- data/resources/locales/en/plurals.yml +3 -2
- data/resources/locales/en/rbnf.yml +542 -0
- data/resources/locales/en/territories.yml +264 -263
- data/resources/locales/en-GB/calendars.yml +195 -194
- data/resources/locales/en-GB/currencies.yml +953 -915
- data/resources/locales/en-GB/languages.yml +583 -580
- data/resources/locales/en-GB/layout.yml +5 -5
- data/resources/locales/en-GB/lists.yml +23 -7
- data/resources/locales/en-GB/numbers.yml +62 -57
- data/resources/locales/en-GB/plurals.yml +2 -1
- data/resources/locales/en-GB/rbnf.yml +4 -0
- data/resources/locales/en-GB/territories.yml +264 -263
- data/resources/locales/es/calendars.yml +288 -238
- data/resources/locales/es/currencies.yml +953 -922
- data/resources/locales/es/languages.yml +583 -580
- data/resources/locales/es/layout.yml +5 -5
- data/resources/locales/es/lists.yml +23 -7
- data/resources/locales/es/numbers.yml +62 -57
- data/resources/locales/es/plurals.yml +2 -2
- data/resources/locales/es/rbnf.yml +913 -0
- data/resources/locales/es/territories.yml +264 -263
- data/resources/locales/eu/calendars.yml +277 -218
- data/resources/locales/eu/currencies.yml +953 -916
- data/resources/locales/eu/languages.yml +583 -580
- data/resources/locales/eu/layout.yml +5 -5
- data/resources/locales/eu/lists.yml +23 -7
- data/resources/locales/eu/numbers.yml +56 -51
- data/resources/locales/eu/plurals.yml +2 -2
- data/resources/locales/eu/rbnf.yml +4 -0
- data/resources/locales/eu/territories.yml +264 -263
- data/resources/locales/fa/calendars.yml +294 -293
- data/resources/locales/fa/currencies.yml +955 -916
- data/resources/locales/fa/languages.yml +583 -580
- data/resources/locales/fa/layout.yml +5 -5
- data/resources/locales/fa/lists.yml +23 -7
- data/resources/locales/fa/numbers.yml +62 -57
- data/resources/locales/fa/plurals.yml +2 -2
- data/resources/locales/fa/rbnf.yml +157 -0
- data/resources/locales/fa/territories.yml +264 -263
- data/resources/locales/fi/calendars.yml +284 -283
- data/resources/locales/fi/currencies.yml +953 -915
- data/resources/locales/fi/languages.yml +583 -580
- data/resources/locales/fi/layout.yml +5 -5
- data/resources/locales/fi/lists.yml +23 -7
- data/resources/locales/fi/numbers.yml +62 -57
- data/resources/locales/fi/plurals.yml +3 -2
- data/resources/locales/fi/rbnf.yml +206 -0
- data/resources/locales/fi/territories.yml +264 -263
- data/resources/locales/fil/calendars.yml +281 -230
- data/resources/locales/fil/currencies.yml +953 -916
- data/resources/locales/fil/languages.yml +583 -580
- data/resources/locales/fil/layout.yml +5 -5
- data/resources/locales/fil/lists.yml +23 -7
- data/resources/locales/fil/numbers.yml +62 -57
- data/resources/locales/fil/plurals.yml +3 -2
- data/resources/locales/fil/rbnf.yml +158 -0
- data/resources/locales/fil/territories.yml +264 -263
- data/resources/locales/fr/calendars.yml +297 -296
- data/resources/locales/fr/currencies.yml +968 -949
- data/resources/locales/fr/languages.yml +583 -580
- data/resources/locales/fr/layout.yml +5 -5
- data/resources/locales/fr/lists.yml +23 -7
- data/resources/locales/fr/numbers.yml +62 -57
- data/resources/locales/fr/plurals.yml +2 -2
- data/resources/locales/fr/rbnf.yml +621 -0
- data/resources/locales/fr/territories.yml +264 -263
- data/resources/locales/ga/calendars.yml +192 -191
- data/resources/locales/ga/currencies.yml +954 -916
- data/resources/locales/ga/languages.yml +583 -580
- data/resources/locales/ga/layout.yml +5 -5
- data/resources/locales/ga/lists.yml +23 -7
- data/resources/locales/ga/numbers.yml +62 -57
- data/resources/locales/ga/plurals.yml +4 -3
- data/resources/locales/ga/rbnf.yml +615 -0
- data/resources/locales/ga/territories.yml +264 -263
- data/resources/locales/gl/calendars.yml +283 -217
- data/resources/locales/gl/currencies.yml +953 -916
- data/resources/locales/gl/languages.yml +583 -580
- data/resources/locales/gl/layout.yml +5 -5
- data/resources/locales/gl/lists.yml +23 -7
- data/resources/locales/gl/numbers.yml +62 -57
- data/resources/locales/gl/plurals.yml +3 -2
- data/resources/locales/gl/rbnf.yml +4 -0
- data/resources/locales/gl/territories.yml +264 -263
- data/resources/locales/he/calendars.yml +248 -220
- data/resources/locales/he/currencies.yml +992 -932
- data/resources/locales/he/languages.yml +583 -580
- data/resources/locales/he/layout.yml +5 -5
- data/resources/locales/he/lists.yml +23 -7
- data/resources/locales/he/numbers.yml +64 -59
- data/resources/locales/he/plurals.yml +6 -3
- data/resources/locales/he/rbnf.yml +1029 -0
- data/resources/locales/he/territories.yml +264 -263
- data/resources/locales/hi/calendars.yml +284 -216
- data/resources/locales/hi/currencies.yml +953 -915
- data/resources/locales/hi/languages.yml +583 -580
- data/resources/locales/hi/layout.yml +5 -5
- data/resources/locales/hi/lists.yml +23 -7
- data/resources/locales/hi/numbers.yml +60 -55
- data/resources/locales/hi/plurals.yml +2 -2
- data/resources/locales/hi/rbnf.yml +430 -0
- data/resources/locales/hi/territories.yml +264 -263
- data/resources/locales/hr/calendars.yml +308 -307
- data/resources/locales/hr/currencies.yml +1248 -1504
- data/resources/locales/hr/languages.yml +583 -580
- data/resources/locales/hr/layout.yml +5 -5
- data/resources/locales/hr/lists.yml +23 -7
- data/resources/locales/hr/numbers.yml +63 -59
- data/resources/locales/hr/plurals.yml +12 -4
- data/resources/locales/hr/rbnf.yml +599 -0
- data/resources/locales/hr/territories.yml +264 -263
- data/resources/locales/hu/calendars.yml +285 -284
- data/resources/locales/hu/currencies.yml +954 -916
- data/resources/locales/hu/languages.yml +583 -580
- data/resources/locales/hu/layout.yml +5 -5
- data/resources/locales/hu/lists.yml +23 -7
- data/resources/locales/hu/numbers.yml +62 -57
- data/resources/locales/hu/plurals.yml +2 -2
- data/resources/locales/hu/rbnf.yml +363 -0
- data/resources/locales/hu/territories.yml +264 -263
- data/resources/locales/id/calendars.yml +276 -275
- data/resources/locales/id/currencies.yml +954 -916
- data/resources/locales/id/languages.yml +583 -580
- data/resources/locales/id/layout.yml +5 -5
- data/resources/locales/id/lists.yml +23 -7
- data/resources/locales/id/numbers.yml +61 -56
- data/resources/locales/id/plurals.yml +2 -2
- data/resources/locales/id/rbnf.yml +121 -0
- data/resources/locales/id/territories.yml +264 -263
- data/resources/locales/is/calendars.yml +281 -242
- data/resources/locales/is/currencies.yml +954 -916
- data/resources/locales/is/languages.yml +583 -580
- data/resources/locales/is/layout.yml +5 -5
- data/resources/locales/is/lists.yml +23 -7
- data/resources/locales/is/numbers.yml +62 -57
- data/resources/locales/is/plurals.yml +5 -2
- data/resources/locales/is/rbnf.yml +326 -0
- data/resources/locales/is/territories.yml +264 -263
- data/resources/locales/it/calendars.yml +275 -260
- data/resources/locales/it/currencies.yml +953 -920
- data/resources/locales/it/languages.yml +583 -580
- data/resources/locales/it/layout.yml +5 -5
- data/resources/locales/it/lists.yml +23 -7
- data/resources/locales/it/numbers.yml +59 -54
- data/resources/locales/it/plurals.yml +3 -2
- data/resources/locales/it/rbnf.yml +1189 -0
- data/resources/locales/it/territories.yml +264 -263
- data/resources/locales/ja/calendars.yml +269 -207
- data/resources/locales/ja/currencies.yml +953 -915
- data/resources/locales/ja/languages.yml +583 -580
- data/resources/locales/ja/layout.yml +5 -5
- data/resources/locales/ja/lists.yml +23 -7
- data/resources/locales/ja/numbers.yml +62 -57
- data/resources/locales/ja/plurals.yml +2 -2
- data/resources/locales/ja/rbnf.yml +209 -0
- data/resources/locales/ja/territories.yml +264 -263
- data/resources/locales/ko/calendars.yml +246 -213
- data/resources/locales/ko/currencies.yml +953 -915
- data/resources/locales/ko/languages.yml +583 -580
- data/resources/locales/ko/layout.yml +5 -5
- data/resources/locales/ko/lists.yml +23 -7
- data/resources/locales/ko/numbers.yml +60 -55
- data/resources/locales/ko/plurals.yml +2 -2
- data/resources/locales/ko/rbnf.yml +722 -0
- data/resources/locales/ko/territories.yml +264 -263
- data/resources/locales/lv/calendars.yml +286 -285
- data/resources/locales/lv/currencies.yml +1122 -1084
- data/resources/locales/lv/languages.yml +583 -580
- data/resources/locales/lv/layout.yml +5 -5
- data/resources/locales/lv/lists.yml +23 -7
- data/resources/locales/lv/numbers.yml +63 -58
- data/resources/locales/lv/plurals.yml +11 -3
- data/resources/locales/lv/rbnf.yml +238 -0
- data/resources/locales/lv/territories.yml +264 -263
- data/resources/locales/ms/calendars.yml +280 -279
- data/resources/locales/ms/currencies.yml +954 -916
- data/resources/locales/ms/languages.yml +583 -580
- data/resources/locales/ms/layout.yml +5 -5
- data/resources/locales/ms/lists.yml +23 -7
- data/resources/locales/ms/numbers.yml +62 -57
- data/resources/locales/ms/plurals.yml +2 -2
- data/resources/locales/ms/rbnf.yml +130 -0
- data/resources/locales/ms/territories.yml +264 -263
- data/resources/locales/nb/calendars.yml +284 -283
- data/resources/locales/nb/currencies.yml +958 -916
- data/resources/locales/nb/languages.yml +583 -580
- data/resources/locales/nb/layout.yml +5 -5
- data/resources/locales/nb/lists.yml +23 -7
- data/resources/locales/nb/numbers.yml +62 -57
- data/resources/locales/nb/plurals.yml +2 -2
- data/resources/locales/nb/rbnf.yml +191 -0
- data/resources/locales/nb/territories.yml +264 -263
- data/resources/locales/nl/calendars.yml +285 -284
- data/resources/locales/nl/currencies.yml +953 -917
- data/resources/locales/nl/languages.yml +583 -580
- data/resources/locales/nl/layout.yml +5 -5
- data/resources/locales/nl/lists.yml +23 -7
- data/resources/locales/nl/numbers.yml +62 -57
- data/resources/locales/nl/plurals.yml +3 -2
- data/resources/locales/nl/rbnf.yml +320 -0
- data/resources/locales/nl/territories.yml +264 -263
- data/resources/locales/pl/calendars.yml +288 -287
- data/resources/locales/pl/currencies.yml +1326 -1284
- data/resources/locales/pl/languages.yml +583 -580
- data/resources/locales/pl/layout.yml +5 -5
- data/resources/locales/pl/lists.yml +23 -7
- data/resources/locales/pl/numbers.yml +64 -59
- data/resources/locales/pl/plurals.yml +11 -4
- data/resources/locales/pl/rbnf.yml +410 -0
- data/resources/locales/pl/territories.yml +264 -263
- data/resources/locales/pt/calendars.yml +290 -289
- data/resources/locales/pt/currencies.yml +954 -916
- data/resources/locales/pt/languages.yml +583 -580
- data/resources/locales/pt/layout.yml +5 -5
- data/resources/locales/pt/lists.yml +23 -7
- data/resources/locales/pt/numbers.yml +62 -57
- data/resources/locales/pt/plurals.yml +4 -2
- data/resources/locales/pt/rbnf.yml +586 -0
- data/resources/locales/pt/territories.yml +264 -263
- data/resources/locales/ro/calendars.yml +284 -283
- data/resources/locales/ro/currencies.yml +1170 -1132
- data/resources/locales/ro/languages.yml +583 -580
- data/resources/locales/ro/layout.yml +5 -5
- data/resources/locales/ro/lists.yml +23 -7
- data/resources/locales/ro/numbers.yml +63 -58
- data/resources/locales/ro/plurals.yml +5 -2
- data/resources/locales/ro/rbnf.yml +250 -0
- data/resources/locales/ro/territories.yml +264 -263
- data/resources/locales/ru/calendars.yml +282 -281
- data/resources/locales/ru/currencies.yml +1118 -1247
- data/resources/locales/ru/languages.yml +583 -580
- data/resources/locales/ru/layout.yml +5 -5
- data/resources/locales/ru/lists.yml +23 -7
- data/resources/locales/ru/numbers.yml +63 -59
- data/resources/locales/ru/plurals.yml +8 -4
- data/resources/locales/ru/rbnf.yml +385 -0
- data/resources/locales/ru/territories.yml +264 -263
- data/resources/locales/sk/calendars.yml +254 -251
- data/resources/locales/sk/currencies.yml +1174 -1008
- data/resources/locales/sk/languages.yml +583 -580
- data/resources/locales/sk/layout.yml +5 -5
- data/resources/locales/sk/lists.yml +23 -7
- data/resources/locales/sk/numbers.yml +64 -58
- data/resources/locales/sk/plurals.yml +6 -2
- data/resources/locales/sk/rbnf.yml +304 -0
- data/resources/locales/sk/territories.yml +264 -263
- data/resources/locales/sq/calendars.yml +283 -206
- data/resources/locales/sq/currencies.yml +954 -916
- data/resources/locales/sq/languages.yml +583 -580
- data/resources/locales/sq/layout.yml +5 -5
- data/resources/locales/sq/lists.yml +23 -7
- data/resources/locales/sq/numbers.yml +62 -57
- data/resources/locales/sq/plurals.yml +2 -2
- data/resources/locales/sq/rbnf.yml +181 -0
- data/resources/locales/sq/territories.yml +264 -263
- data/resources/locales/sr/calendars.yml +290 -289
- data/resources/locales/sr/currencies.yml +1251 -1508
- data/resources/locales/sr/languages.yml +583 -580
- data/resources/locales/sr/layout.yml +5 -5
- data/resources/locales/sr/lists.yml +23 -7
- data/resources/locales/sr/numbers.yml +62 -58
- data/resources/locales/sr/plurals.yml +12 -4
- data/resources/locales/sr/rbnf.yml +429 -0
- data/resources/locales/sr/territories.yml +264 -263
- data/resources/locales/sv/calendars.yml +290 -289
- data/resources/locales/sv/currencies.yml +960 -930
- data/resources/locales/sv/languages.yml +583 -580
- data/resources/locales/sv/layout.yml +5 -5
- data/resources/locales/sv/lists.yml +23 -7
- data/resources/locales/sv/numbers.yml +63 -58
- data/resources/locales/sv/plurals.yml +3 -2
- data/resources/locales/sv/rbnf.yml +692 -0
- data/resources/locales/sv/territories.yml +264 -263
- data/resources/locales/ta/calendars.yml +281 -266
- data/resources/locales/ta/currencies.yml +953 -915
- data/resources/locales/ta/languages.yml +583 -580
- data/resources/locales/ta/layout.yml +5 -5
- data/resources/locales/ta/lists.yml +23 -7
- data/resources/locales/ta/numbers.yml +62 -57
- data/resources/locales/ta/plurals.yml +2 -2
- data/resources/locales/ta/rbnf.yml +241 -0
- data/resources/locales/ta/territories.yml +264 -263
- data/resources/locales/th/calendars.yml +278 -289
- data/resources/locales/th/currencies.yml +953 -915
- data/resources/locales/th/languages.yml +583 -580
- data/resources/locales/th/layout.yml +5 -5
- data/resources/locales/th/lists.yml +23 -7
- data/resources/locales/th/numbers.yml +62 -57
- data/resources/locales/th/plurals.yml +2 -2
- data/resources/locales/th/rbnf.yml +119 -0
- data/resources/locales/th/territories.yml +264 -263
- data/resources/locales/tr/calendars.yml +287 -286
- data/resources/locales/tr/currencies.yml +953 -916
- data/resources/locales/tr/languages.yml +583 -580
- data/resources/locales/tr/layout.yml +5 -5
- data/resources/locales/tr/lists.yml +23 -7
- data/resources/locales/tr/numbers.yml +61 -56
- data/resources/locales/tr/plurals.yml +2 -2
- data/resources/locales/tr/rbnf.yml +277 -0
- data/resources/locales/tr/territories.yml +264 -263
- data/resources/locales/uk/calendars.yml +286 -252
- data/resources/locales/uk/currencies.yml +1311 -1070
- data/resources/locales/uk/languages.yml +583 -580
- data/resources/locales/uk/layout.yml +5 -5
- data/resources/locales/uk/lists.yml +23 -7
- data/resources/locales/uk/numbers.yml +64 -59
- data/resources/locales/uk/plurals.yml +10 -4
- data/resources/locales/uk/rbnf.yml +430 -0
- data/resources/locales/uk/territories.yml +264 -263
- data/resources/locales/ur/calendars.yml +267 -228
- data/resources/locales/ur/currencies.yml +954 -916
- data/resources/locales/ur/languages.yml +583 -580
- data/resources/locales/ur/layout.yml +5 -5
- data/resources/locales/ur/lists.yml +23 -7
- data/resources/locales/ur/numbers.yml +62 -57
- data/resources/locales/ur/plurals.yml +3 -2
- data/resources/locales/ur/rbnf.yml +4 -0
- data/resources/locales/ur/territories.yml +264 -263
- data/resources/locales/vi/calendars.yml +256 -236
- data/resources/locales/vi/currencies.yml +953 -915
- data/resources/locales/vi/languages.yml +583 -580
- data/resources/locales/vi/layout.yml +5 -5
- data/resources/locales/vi/lists.yml +23 -7
- data/resources/locales/vi/numbers.yml +62 -57
- data/resources/locales/vi/plurals.yml +2 -2
- data/resources/locales/vi/rbnf.yml +164 -0
- data/resources/locales/vi/territories.yml +264 -263
- data/resources/locales/zh/calendars.yml +266 -265
- data/resources/locales/zh/currencies.yml +953 -915
- data/resources/locales/zh/languages.yml +583 -580
- data/resources/locales/zh/layout.yml +5 -5
- data/resources/locales/zh/lists.yml +23 -7
- data/resources/locales/zh/numbers.yml +62 -57
- data/resources/locales/zh/plurals.yml +2 -2
- data/resources/locales/zh/rbnf.yml +689 -0
- data/resources/locales/zh/territories.yml +264 -263
- data/resources/locales/zh-Hant/calendars.yml +266 -265
- data/resources/locales/zh-Hant/currencies.yml +955 -915
- data/resources/locales/zh-Hant/languages.yml +583 -580
- data/resources/locales/zh-Hant/layout.yml +5 -5
- data/resources/locales/zh-Hant/lists.yml +23 -7
- data/resources/locales/zh-Hant/numbers.yml +62 -57
- data/resources/locales/zh-Hant/plurals.yml +2 -2
- data/resources/locales/zh-Hant/rbnf.yml +647 -0
- data/resources/locales/zh-Hant/territories.yml +264 -263
- data/resources/shared/currency_digits_and_rounding.yml +67 -64
- data/resources/shared/numbering_systems.yml +176 -0
- data/resources/shared/rbnf_root.yml +1573 -0
- data/resources/shared/segments/segments_root.yml +728 -0
- data/resources/shared/segments/tailorings/en.yml +8 -0
- data/resources/uli/segments/de.yml +128 -0
- data/resources/uli/segments/en.yml +154 -0
- data/resources/uli/segments/es.yml +112 -0
- data/resources/uli/segments/fr.yml +47 -0
- data/resources/uli/segments/it.yml +37 -0
- data/resources/uli/segments/pt.yml +173 -0
- data/resources/uli/segments/ru.yml +10 -0
- data/resources/unicode_data/casefolding.yml +4765 -0
- data/resources/unicode_data/indices/bidi_class.yml +4572 -0
- data/resources/unicode_data/indices/bidi_mirrored.yml +3087 -0
- data/resources/unicode_data/indices/category.yml +10918 -0
- data/resources/unicode_data/indices/keys.yml +101 -0
- data/resources/unicode_data/properties/line_break.yml +9269 -0
- data/resources/unicode_data/properties/sentence_break.yml +8067 -0
- data/resources/unicode_data/properties/word_break.yml +3001 -0
- data/spec/collation/collation_spec.rb +2 -1
- data/spec/collation/collator_spec.rb +4 -3
- data/spec/collation/tailoring_spec.rb +2 -2
- data/spec/collation/tailoring_tests/he.txt +5 -2
- data/spec/{tokenizers/calendars → data_readers}/additional_date_format_selector_spec.rb +13 -13
- data/spec/data_readers/date_time_data_reader_spec.rb +26 -0
- data/spec/data_readers/number_data_reader_spec.rb +18 -0
- data/spec/data_readers/timespan_data_reader.rb +22 -0
- data/spec/formatters/calendars/datetime_formatter_spec.rb +18 -22
- data/spec/formatters/list_formatter_spec.rb +16 -87
- data/spec/formatters/numbers/abbreviated/abbreviated_number_formatter_spec.rb +15 -59
- data/spec/formatters/numbers/abbreviated/long_decimal_formatter_spec.rb +32 -17
- data/spec/formatters/numbers/abbreviated/short_decimal_formatter_spec.rb +33 -17
- data/spec/formatters/numbers/currency_formatter_spec.rb +18 -13
- data/spec/formatters/numbers/decimal_formatter_spec.rb +16 -18
- data/spec/formatters/numbers/number_formatter_spec.rb +40 -31
- data/spec/formatters/numbers/percent_formatter_spec.rb +14 -6
- data/spec/formatters/numbers/rbnf/allowed_failures.yml +74 -0
- data/spec/formatters/numbers/rbnf/locales/af/rbnf_test.yml +706 -0
- data/spec/formatters/numbers/rbnf/locales/ar/rbnf_test.yml +706 -0
- data/spec/formatters/numbers/rbnf/locales/be/rbnf_test.yml +1174 -0
- data/spec/formatters/numbers/rbnf/locales/bg/rbnf_test.yml +706 -0
- data/spec/formatters/numbers/rbnf/locales/bn/rbnf_test.yml +1291 -0
- data/spec/formatters/numbers/rbnf/locales/ca/rbnf_test.yml +1174 -0
- data/spec/formatters/numbers/rbnf/locales/cs/rbnf_test.yml +823 -0
- data/spec/formatters/numbers/rbnf/locales/cy/rbnf_test.yml +940 -0
- data/spec/formatters/numbers/rbnf/locales/da/rbnf_test.yml +940 -0
- data/spec/formatters/numbers/rbnf/locales/de/rbnf_test.yml +940 -0
- data/spec/formatters/numbers/rbnf/locales/el/rbnf_test.yml +1174 -0
- data/spec/formatters/numbers/rbnf/locales/en/rbnf_test.yml +1291 -0
- data/spec/formatters/numbers/rbnf/locales/en-GB/rbnf_test.yml +1291 -0
- data/spec/formatters/numbers/rbnf/locales/es/rbnf_test.yml +1642 -0
- data/spec/formatters/numbers/rbnf/locales/eu/rbnf_test.yml +1291 -0
- data/spec/formatters/numbers/rbnf/locales/fa/rbnf_test.yml +589 -0
- data/spec/formatters/numbers/rbnf/locales/fi/rbnf_test.yml +706 -0
- data/spec/formatters/numbers/rbnf/locales/fil/rbnf_test.yml +706 -0
- data/spec/formatters/numbers/rbnf/locales/fr/rbnf_test.yml +1408 -0
- data/spec/formatters/numbers/rbnf/locales/ga/rbnf_test.yml +940 -0
- data/spec/formatters/numbers/rbnf/locales/gl/rbnf_test.yml +1291 -0
- data/spec/formatters/numbers/rbnf/locales/he/rbnf_test.yml +1057 -0
- data/spec/formatters/numbers/rbnf/locales/hi/rbnf_test.yml +823 -0
- data/spec/formatters/numbers/rbnf/locales/hr/rbnf_test.yml +1174 -0
- data/spec/formatters/numbers/rbnf/locales/hu/rbnf_test.yml +940 -0
- data/spec/formatters/numbers/rbnf/locales/id/rbnf_test.yml +706 -0
- data/spec/formatters/numbers/rbnf/locales/is/rbnf_test.yml +823 -0
- data/spec/formatters/numbers/rbnf/locales/it/rbnf_test.yml +1174 -0
- data/spec/formatters/numbers/rbnf/locales/ja/rbnf_test.yml +823 -0
- data/spec/formatters/numbers/rbnf/locales/ko/rbnf_test.yml +1408 -0
- data/spec/formatters/numbers/rbnf/locales/lv/rbnf_test.yml +706 -0
- data/spec/formatters/numbers/rbnf/locales/ms/rbnf_test.yml +706 -0
- data/spec/formatters/numbers/rbnf/locales/nb/rbnf_test.yml +940 -0
- data/spec/formatters/numbers/rbnf/locales/nl/rbnf_test.yml +706 -0
- data/spec/formatters/numbers/rbnf/locales/pl/rbnf_test.yml +823 -0
- data/spec/formatters/numbers/rbnf/locales/pt/rbnf_test.yml +1174 -0
- data/spec/formatters/numbers/rbnf/locales/ro/rbnf_test.yml +823 -0
- data/spec/formatters/numbers/rbnf/locales/ru/rbnf_test.yml +823 -0
- data/spec/formatters/numbers/rbnf/locales/sk/rbnf_test.yml +823 -0
- data/spec/formatters/numbers/rbnf/locales/sq/rbnf_test.yml +706 -0
- data/spec/formatters/numbers/rbnf/locales/sr/rbnf_test.yml +940 -0
- data/spec/formatters/numbers/rbnf/locales/sv/rbnf_test.yml +1876 -0
- data/spec/formatters/numbers/rbnf/locales/ta/rbnf_test.yml +706 -0
- data/spec/formatters/numbers/rbnf/locales/th/rbnf_test.yml +706 -0
- data/spec/formatters/numbers/rbnf/locales/tr/rbnf_test.yml +706 -0
- data/spec/formatters/numbers/rbnf/locales/uk/rbnf_test.yml +823 -0
- data/spec/formatters/numbers/rbnf/locales/ur/rbnf_test.yml +1291 -0
- data/spec/formatters/numbers/rbnf/locales/vi/rbnf_test.yml +706 -0
- data/spec/formatters/numbers/rbnf/locales/zh/rbnf_test.yml +940 -0
- data/spec/formatters/numbers/rbnf/locales/zh-Hant/rbnf_test.yml +940 -0
- data/spec/formatters/numbers/rbnf/rbnf_spec.rb +98 -0
- data/spec/formatters/plurals/plural_formatter_spec.rb +4 -4
- data/spec/formatters/plurals/rules_spec.rb +5 -5
- data/spec/localized/localized_date_spec.rb +1 -1
- data/spec/localized/localized_datetime_spec.rb +8 -13
- data/spec/localized/localized_number_spec.rb +17 -32
- data/spec/localized/localized_object_spec.rb +0 -5
- data/spec/localized/localized_string_spec.rb +40 -2
- data/spec/localized/localized_time_spec.rb +3 -6
- data/spec/localized/localized_timespan_spec.rb +144 -0
- data/spec/normalization_spec.rb +12 -12
- data/spec/parsers/number_parser_spec.rb +5 -5
- data/spec/parsers/parser_spec.rb +60 -0
- data/spec/parsers/segmentation_parser_spec.rb +96 -0
- data/spec/parsers/symbol_table_spec.rb +32 -0
- data/spec/parsers/unicode_regex/character_class_spec.rb +117 -0
- data/spec/parsers/unicode_regex/character_range_spec.rb +21 -0
- data/spec/parsers/unicode_regex/character_set_spec.rb +36 -0
- data/spec/parsers/unicode_regex/literal_spec.rb +34 -0
- data/spec/parsers/unicode_regex/unicode_string_spec.rb +22 -0
- data/spec/parsers/unicode_regex_parser_spec.rb +86 -0
- data/spec/readme_spec.rb +8 -269
- data/spec/shared/break_iterator_spec.rb +72 -0
- data/spec/shared/calendar_spec.rb +5 -4
- data/spec/shared/casefolder_spec.rb +30 -0
- data/spec/shared/casefolding.txt +251 -0
- data/spec/shared/casefolding_expected.txt +251 -0
- data/spec/shared/code_point_spec.rb +44 -14
- data/spec/shared/numbering_system_spec.rb +41 -0
- data/spec/shared/territories_spec.rb +14 -6
- data/spec/shared/unicode_regex_spec.rb +203 -0
- data/spec/spec_helper.rb +17 -0
- data/spec/tokenizers/calendars/date_tokenizer_spec.rb +26 -30
- data/spec/tokenizers/calendars/datetime_tokenizer_spec.rb +11 -90
- data/spec/tokenizers/calendars/time_tokenizer_spec.rb +5 -5
- data/spec/tokenizers/calendars/timespan_tokenizer_spec.rb +17 -7
- data/spec/tokenizers/numbers/number_tokenizer_spec.rb +28 -27
- data/spec/tokenizers/segmentation/segmentation_tokenizer_spec.rb +40 -0
- data/spec/tokenizers/unicode_regex/unicode_regex_tokenizer_spec.rb +190 -0
- data/spec/utils/range_set_spec.rb +171 -0
- data/spec/utils/yaml/yaml_spec.rb +62 -51
- data/twitter_cldr.gemspec +1 -1
- metadata +199 -30
- data/lib/twitter_cldr/formatters/base.rb +0 -47
- data/lib/twitter_cldr/formatters/calendars/date_formatter.rb +0 -19
- data/lib/twitter_cldr/formatters/calendars/time_formatter.rb +0 -19
- data/lib/twitter_cldr/normalization/base.rb +0 -37
- data/lib/twitter_cldr/normalization/hangul.rb +0 -79
- data/lib/twitter_cldr/normalization/nfc.rb +0 -24
- data/lib/twitter_cldr/normalization/nfd.rb +0 -26
- data/lib/twitter_cldr/normalization/nfkc.rb +0 -114
- data/lib/twitter_cldr/normalization/nfkd.rb +0 -120
- data/lib/twitter_cldr/normalization/quick_check.rb +0 -41
- data/lib/twitter_cldr/tokenizers/base.rb +0 -169
- data/lib/twitter_cldr/tokenizers/calendars/datetime_tokenizer.rb +0 -131
- data/lib/twitter_cldr/utils/territories.rb +0 -56
- data/spec/formatters/base_spec.rb +0 -18
- data/spec/formatters/calendars/timespan_formatter_spec.rb +0 -112
- data/spec/normalization/NormalizationTestShort.txt +0 -602
- data/spec/normalization/base_spec.rb +0 -16
- data/spec/normalization/hangul_spec.rb +0 -42
- data/spec/normalization/normalization_spec.rb +0 -113
- data/spec/tokenizers/base_spec.rb +0 -259
- data/spec/utils/territories_spec.rb +0 -16
data/spec/readme_spec.rb
CHANGED
@@ -5,276 +5,15 @@
|
|
5
5
|
|
6
6
|
require 'spec_helper'
|
7
7
|
|
8
|
-
def spaces(str)
|
9
|
-
str.gsub("\xC2\xA0", " ")
|
10
|
-
end
|
11
|
-
|
12
8
|
describe "README" do
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
TwitterCldr.supported_locale?(:xx).should be_false
|
22
|
-
end
|
23
|
-
|
24
|
-
it "verifies number formatting" do
|
25
|
-
nbsp = "\xC2\xA0"
|
26
|
-
1337.localize(:es).to_s.should == "1.337"
|
27
|
-
spaces(1337.localize(:es).to_currency.to_s).should == "1.337,00 $"
|
28
|
-
spaces(1337.localize(:es).to_currency.to_s(:currency => "EUR").to_s).should == "1.337,00 €"
|
29
|
-
1337.localize(:es).to_percent.to_s.should == "1.337%"
|
30
|
-
1337.localize(:es).to_percent.to_s(:precision => 2).should == "1.337,00%"
|
31
|
-
1337.localize(:es).to_decimal.to_s(:precision => 3).should == "1.337,000"
|
32
|
-
|
33
|
-
num = TwitterCldr::Localized::LocalizedNumber.new(1337, :es)
|
34
|
-
spaces(num.to_currency.to_s).should == "1.337,00 $"
|
35
|
-
end
|
36
|
-
|
37
|
-
it "verifies extra currency data" do
|
38
|
-
currency_codes = TwitterCldr::Shared::Currencies.currency_codes
|
39
|
-
currency_codes.should be_a(Array)
|
40
|
-
currency_codes.should include("LTL")
|
41
|
-
currency_codes.should include("PHP")
|
42
|
-
TwitterCldr::Shared::Currencies.for_code("CAD").should == {
|
43
|
-
:currency => :CAD,
|
44
|
-
:cldr_symbol => "CA$",
|
45
|
-
:symbol => "$",
|
46
|
-
:name => "Canadian dollar",
|
47
|
-
:code_points => [36]
|
48
|
-
}
|
49
|
-
end
|
50
|
-
|
51
|
-
it "verifies short and long decimals" do
|
52
|
-
2337.localize.to_short_decimal.to_s.should == "2K"
|
53
|
-
1337123.localize.to_short_decimal.to_s.should == "1M"
|
54
|
-
|
55
|
-
2337.localize.to_long_decimal.to_s.should == "2 thousand"
|
56
|
-
1337123.localize.to_long_decimal.to_s.should == "1 million"
|
57
|
-
end
|
58
|
-
|
59
|
-
it "verifies dates" do
|
60
|
-
date_time = DateTime.new(2011, 12, 12, 21, 44, 57, 0.0)
|
61
|
-
time = Time.at(date_time.localize.to_time.base_obj.utc)
|
62
|
-
|
63
|
-
date_time.localize(:es).to_full_s.should == "lunes, 12 de diciembre de 2011 21:44:57 UTC +00:00"
|
64
|
-
date_time.localize(:es).to_long_s.should == "12 de diciembre de 2011 21:44:57 UTC"
|
65
|
-
date_time.localize(:es).to_medium_s.should == "12/12/2011 21:44:57"
|
66
|
-
date_time.localize(:es).to_short_s.should == "12/12/11 21:44"
|
67
|
-
|
68
|
-
date_time.localize(:es).to_date.to_full_s.should == "lunes, 12 de diciembre de 2011"
|
69
|
-
date_time.localize(:es).to_date.to_long_s.should == "12 de diciembre de 2011"
|
70
|
-
date_time.localize(:es).to_date.to_medium_s.should == "12/12/2011"
|
71
|
-
date_time.localize(:es).to_date.to_short_s.should == "12/12/11"
|
72
|
-
|
73
|
-
time.localize(:es).to_full_s.should match(/21:44:57 UTC [-+]\d{2}:\d{2}/)
|
74
|
-
time.localize(:es).to_long_s.should == "21:44:57 UTC"
|
75
|
-
time.localize(:es).to_medium_s.should == "21:44:57"
|
76
|
-
time.localize(:es).to_short_s.should == "21:44"
|
77
|
-
|
78
|
-
dt = TwitterCldr::Localized::LocalizedDateTime.new(date_time, :es)
|
79
|
-
dt.to_short_s.should == "12/12/11 21:44"
|
80
|
-
end
|
81
|
-
|
82
|
-
it "verifies additional date formats" do
|
83
|
-
date_time = DateTime.new(2011, 12, 12, 21, 44, 57, 0.0)
|
84
|
-
TwitterCldr::Formatters::DateTimeFormatter.additional_formats_for(:ja).should be_a(Array)
|
85
|
-
date_time.localize(:ja).to_s.should == "2011/12/12 21:44:57"
|
86
|
-
date_time.localize(:ja).to_s(:format => "EEEEd").should == "12日月曜日"
|
87
|
-
end
|
88
|
-
|
89
|
-
it "verifies relative time spans" do
|
90
|
-
(DateTime.now - 1).localize.ago.to_s.should match_normalized("1 day ago")
|
91
|
-
(DateTime.now - 0.5).localize.ago.to_s.should match_normalized("12 hours ago") # (i.e. half a day)
|
92
|
-
|
93
|
-
(DateTime.now + 1).localize.until.to_s.should match_normalized("In 1 day")
|
94
|
-
(DateTime.now + 0.5).localize.until.to_s.should match_normalized("In 12 hours")
|
95
|
-
|
96
|
-
(DateTime.now - 1).localize(:de).ago.to_s.should match_normalized("Vor 1 Tag")
|
97
|
-
(DateTime.now + 1).localize(:de).until.to_s.should match_normalized("In 1 Tag")
|
98
|
-
|
99
|
-
(DateTime.now - 1).localize(:de).ago.to_s(:unit => :hour).should match_normalized("Vor 24 Stunden")
|
100
|
-
(DateTime.now + 1).localize(:de).until.to_s(:unit => :hour).should match_normalized("In 24 Stunden")
|
101
|
-
|
102
|
-
# 86400 = 1 day in seconds, 259200 = 3 days in seconds
|
103
|
-
(Time.now + 86400).localize(:de).ago(:base_time => (Time.now + 259200)).to_s(:unit => :hour).should match_normalized("Vor 48 Stunden")
|
104
|
-
|
105
|
-
ts = TwitterCldr::Localized::LocalizedTimespan.new(86400, :locale => :de)
|
106
|
-
ts.to_s.should match_normalized("In 1 Tag")
|
107
|
-
ts.to_s(:unit => :hour).should match_normalized("In 24 Stunden")
|
108
|
-
|
109
|
-
ts = TwitterCldr::Localized::LocalizedTimespan.new(-86400, :locale => :de)
|
110
|
-
ts.to_s.should match_normalized("Vor 1 Tag")
|
111
|
-
ts.to_s(:unit => :hour).should match_normalized("Vor 24 Stunden")
|
112
|
-
end
|
113
|
-
|
114
|
-
it "verifies approximate timespans" do
|
115
|
-
TwitterCldr::Localized::LocalizedTimespan.new(44).to_s(:approximate => true).should == "In 44 seconds"
|
116
|
-
TwitterCldr::Localized::LocalizedTimespan.new(45).to_s(:approximate => true).should == "In 1 minute"
|
117
|
-
TwitterCldr::Localized::LocalizedTimespan.new(52).to_s(:approximate => true).should == "In 1 minute"
|
118
|
-
end
|
119
|
-
|
120
|
-
it "verifies plural rules" do
|
121
|
-
1.localize(:ru).plural_rule.should == :one
|
122
|
-
2.localize(:ru).plural_rule.should == :few
|
123
|
-
5.localize(:ru).plural_rule.should == :many
|
124
|
-
|
125
|
-
TwitterCldr::Formatters::Plurals::Rules.all.should == [:one, :other]
|
126
|
-
TwitterCldr::Formatters::Plurals::Rules.all_for(:es).should == [:one, :other]
|
127
|
-
TwitterCldr::Formatters::Plurals::Rules.all_for(:ru).should == [:one, :few, :many, :other]
|
128
|
-
|
129
|
-
# get the rule for a number in a specific locale
|
130
|
-
TwitterCldr::Formatters::Plurals::Rules.rule_for(1, :ru).should == :one
|
131
|
-
TwitterCldr::Formatters::Plurals::Rules.rule_for(2, :ru).should == :few
|
132
|
-
end
|
133
|
-
|
134
|
-
describe "plural interpolation" do
|
135
|
-
it "verifies first technique" do
|
136
|
-
replacements = { :horse_count => 3,
|
137
|
-
:horses => { :one => "is 1 horse",
|
138
|
-
:other => "are %{horse_count} horses" } }
|
139
|
-
|
140
|
-
("there %{horse_count:horses} in the barn".localize % replacements).should == "there are 3 horses in the barn"
|
141
|
-
end
|
142
|
-
|
143
|
-
it "verifies second technique" do
|
144
|
-
str = 'there %<{ "horse_count": { "one": "is one horse", "other": "are %{horse_count} horses" } }> in the barn'
|
145
|
-
(str.localize % { :horse_count => 3 }).should == "there are 3 horses in the barn"
|
146
|
-
end
|
147
|
-
|
148
|
-
it "verifies regular Ruby interpolation works" do
|
149
|
-
("five euros plus %.3f in tax" % (13.25 * 0.087)).should == "five euros plus 1.153 in tax"
|
150
|
-
|
151
|
-
if RUBY_VERSION >= '1.9.0'
|
152
|
-
("there are %{count} horses in the barn" % { :count => "5" }).should == "there are 5 horses in the barn"
|
153
|
-
end
|
9
|
+
renderer = TwitterCldr::Resources::ReadmeRenderer.new(
|
10
|
+
File.read(File.join(File.dirname(__FILE__), "../README.md.erb"))
|
11
|
+
)
|
12
|
+
|
13
|
+
renderer.render
|
14
|
+
renderer.assertion_failures.each do |failure|
|
15
|
+
it "encountered assertion failure on line #{failure.line_number}" do
|
16
|
+
raise failure.message
|
154
17
|
end
|
155
|
-
|
156
|
-
it "verifies named interpolation parameters" do
|
157
|
-
#"five euros plus %<percent>.3f in %{noun}".localize % { :percent => 13.25 * 0.087, :noun => "tax" }.should == "five euros plus 1.15 in tax"
|
158
|
-
end
|
159
|
-
end
|
160
|
-
|
161
|
-
it "verifies language code conversion" do
|
162
|
-
TwitterCldr::Shared::LanguageCodes.convert(:es, :from => :bcp_47, :to => :iso_639_2).should == :spa
|
163
|
-
|
164
|
-
expected = [:bcp_47, :iso_639_1, :iso_639_2, :iso_639_3]
|
165
|
-
actual = TwitterCldr::Shared::LanguageCodes.standards_for(:es, :bcp_47)
|
166
|
-
expected.size.should == actual.size
|
167
|
-
actual.each { |standard| expected.should include(standard) }
|
168
|
-
|
169
|
-
expected = [:bcp_47, :iso_639_1, :iso_639_2, :iso_639_3]
|
170
|
-
actual = TwitterCldr::Shared::LanguageCodes.standards_for_language(:Spanish)
|
171
|
-
expected.size.should == actual.size
|
172
|
-
actual.each { |standard| expected.should include(standard) }
|
173
|
-
|
174
|
-
TwitterCldr::Shared::LanguageCodes.languages.should include(:Spanish)
|
175
|
-
|
176
|
-
TwitterCldr::Shared::LanguageCodes.valid_standard?(:iso_639_1).should be_true
|
177
|
-
TwitterCldr::Shared::LanguageCodes.valid_standard?(:blarg).should be_false
|
178
|
-
|
179
|
-
TwitterCldr::Shared::LanguageCodes.valid_code?(:es, :bcp_47).should be_true
|
180
|
-
TwitterCldr::Shared::LanguageCodes.valid_code?(:es, :iso_639_2).should be_false
|
181
|
-
|
182
|
-
TwitterCldr::Shared::LanguageCodes.from_language(:Spanish, :iso_639_2).should == :spa
|
183
|
-
|
184
|
-
TwitterCldr::Shared::LanguageCodes.to_language(:spa, :iso_639_2).should == "Spanish"
|
185
|
-
end
|
186
|
-
|
187
|
-
it "verifies postal code validations" do
|
188
|
-
TwitterCldr::Shared::PostalCodes.valid?(:us, "94103").should be_true
|
189
|
-
TwitterCldr::Shared::PostalCodes.valid?(:us, "9410").should be_false
|
190
|
-
TwitterCldr::Shared::PostalCodes.valid?(:gb, "BS98 1TL").should be_true
|
191
|
-
TwitterCldr::Shared::PostalCodes.valid?(:se, "280 12").should be_true
|
192
|
-
TwitterCldr::Shared::PostalCodes.valid?(:ca, "V3H 1Z7").should be_true
|
193
|
-
|
194
|
-
TwitterCldr::Shared::PostalCodes.territories.should include(:gb)
|
195
|
-
|
196
|
-
TwitterCldr::Shared::PostalCodes.regex_for_territory(:us).should == /\d{5}([ \-]\d{4})?/
|
197
|
-
end
|
198
|
-
|
199
|
-
it "verifies phone codes" do
|
200
|
-
TwitterCldr::Shared::PhoneCodes.code_for_territory(:us).should == "1"
|
201
|
-
TwitterCldr::Shared::PhoneCodes.code_for_territory(:pe).should == "51"
|
202
|
-
TwitterCldr::Shared::PhoneCodes.code_for_territory(:eg).should == "20"
|
203
|
-
TwitterCldr::Shared::PhoneCodes.code_for_territory(:dk).should == "45"
|
204
|
-
TwitterCldr::Shared::PhoneCodes.territories.should include(:pe)
|
205
|
-
end
|
206
|
-
|
207
|
-
it "verifies world languages" do
|
208
|
-
:es.localize(:es).as_language_code.should == "español"
|
209
|
-
:ru.localize(:es).as_language_code.should == "ruso"
|
210
|
-
ls = TwitterCldr::Localized::LocalizedSymbol.new(:ru, :es)
|
211
|
-
ls.as_language_code.should == "ruso"
|
212
|
-
end
|
213
|
-
|
214
|
-
it "verifies language data" do
|
215
|
-
# get all languages for the default locale
|
216
|
-
all = TwitterCldr::Shared::Languages.all
|
217
|
-
all.should include(:"zh-Hant")
|
218
|
-
all[:'zh-Hant'].should == "Traditional Chinese"
|
219
|
-
all.should include(:vi)
|
220
|
-
all[:vi].should == "Vietnamese"
|
221
|
-
|
222
|
-
# get all languages for a specific locale
|
223
|
-
all_es = TwitterCldr::Shared::Languages.all_for(:es)
|
224
|
-
all_es.should include(:"zh-Hant")
|
225
|
-
all_es[:'zh-Hant'].should == "chino tradicional"
|
226
|
-
all_es.should include(:vi)
|
227
|
-
all_es[:vi].should == "vietnamita"
|
228
|
-
|
229
|
-
# get a language by its code for the default locale
|
230
|
-
TwitterCldr::Shared::Languages.from_code(:'zh-Hant').should == "Traditional Chinese"
|
231
|
-
|
232
|
-
# get a language from its code for a specific locale
|
233
|
-
TwitterCldr::Shared::Languages.from_code_for_locale(:'zh-Hant', :es).should == "chino tradicional"
|
234
|
-
|
235
|
-
# translate a language from one locale to another
|
236
|
-
TwitterCldr::Shared::Languages.translate_language("chino tradicional", :es, :en).should == "Traditional Chinese"
|
237
|
-
TwitterCldr::Shared::Languages.translate_language("Traditional Chinese", :en, :es).should == "chino tradicional"
|
238
|
-
end
|
239
|
-
|
240
|
-
it "verifies code point conversions" do
|
241
|
-
code_point = TwitterCldr::Shared::CodePoint.find(0x1F3E9)
|
242
|
-
code_point.name.should == "LOVE HOTEL"
|
243
|
-
code_point.bidi_mirrored.should == "N"
|
244
|
-
code_point.category.should == "So"
|
245
|
-
code_point.combining_class.should == "0"
|
246
|
-
|
247
|
-
# Convert characters to code points:
|
248
|
-
TwitterCldr::Utils::CodePoints.from_string("¿").should == [0x0BF]
|
249
|
-
|
250
|
-
# Convert code points to characters:
|
251
|
-
TwitterCldr::Utils::CodePoints.to_string([0xBF]).should == "¿"
|
252
|
-
end
|
253
|
-
|
254
|
-
it "verifies normalization" do
|
255
|
-
TwitterCldr::Normalization::NFD.normalize('français').should == TwitterCldr::Utils::CodePoints.to_string([0x66, 0x72, 0x61, 0x6E, 0x63, 0x327, 0x61, 0x69, 0x73])
|
256
|
-
TwitterCldr::Utils::CodePoints.from_string('español').should == [0x65, 0x73, 0x70, 0x61, 0xF1, 0x6F, 0x6C]
|
257
|
-
TwitterCldr::Utils::CodePoints.from_string(TwitterCldr::Normalization::NFD.normalize('español')).should == [0x65, 0x73, 0x70, 0x61, 0x6E, 0x303, 0x6F, 0x6C]
|
258
|
-
|
259
|
-
"español".localize.code_points.should == [101, 115, 112, 97, 241, 111, 108]
|
260
|
-
"español".localize.normalize.code_points.should == [101, 115, 112, 97, 110, 771, 111, 108]
|
261
|
-
"español".localize.normalize(:using => :NFKD).code_points.should == [101, 115, 112, 97, 110, 771, 111, 108]
|
262
|
-
end
|
263
|
-
|
264
|
-
it "verifies Twitter-specific locale conversion" do
|
265
|
-
TwitterCldr.convert_locale(:'zh-cn').should == :zh
|
266
|
-
TwitterCldr.convert_locale(:zh).should == :zh
|
267
|
-
TwitterCldr.convert_locale(:'zh-tw').should == :'zh-Hant'
|
268
|
-
TwitterCldr.convert_locale(:'zh-Hant').should == :'zh-Hant'
|
269
|
-
|
270
|
-
TwitterCldr.convert_locale(:msa).should == :ms
|
271
|
-
TwitterCldr.convert_locale(:ms).should == :ms
|
272
|
-
end
|
273
|
-
|
274
|
-
it "verifies locale defaults" do
|
275
|
-
TwitterCldr.locale.should == :en
|
276
|
-
TwitterCldr.locale = nil
|
277
|
-
FastGettext.locale = "ru"
|
278
|
-
TwitterCldr.locale.should == :ru
|
279
18
|
end
|
280
19
|
end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
# Copyright 2012 Twitter, Inc
|
4
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
5
|
+
|
6
|
+
require 'spec_helper'
|
7
|
+
|
8
|
+
include TwitterCldr::Shared
|
9
|
+
|
10
|
+
describe BreakIterator do
|
11
|
+
describe "#each_sentence" do
|
12
|
+
let(:iterator) { BreakIterator.new(:en, :use_uli_exceptions => true) }
|
13
|
+
|
14
|
+
it "should return an enumerator if called without a block" do
|
15
|
+
iterator.each_sentence("foo bar").should be_a(Enumerator)
|
16
|
+
end
|
17
|
+
|
18
|
+
it "splits a simple string into sentences" do
|
19
|
+
str = "The. Quick. Brown. Fox."
|
20
|
+
iterator.each_sentence(str).to_a.should == [
|
21
|
+
"The.", " Quick.", " Brown.", " Fox."
|
22
|
+
]
|
23
|
+
end
|
24
|
+
|
25
|
+
it "does not split on commas, for example" do
|
26
|
+
str = "The. Quick, brown. Fox."
|
27
|
+
iterator.each_sentence(str).to_a.should == [
|
28
|
+
"The.", " Quick, brown.", " Fox."
|
29
|
+
]
|
30
|
+
end
|
31
|
+
|
32
|
+
it "does not split periods in the midst of other letters, eg. in a URL" do
|
33
|
+
str = "Visit us. Go to http://translate.twitter.com."
|
34
|
+
iterator.each_sentence(str).to_a.should == [
|
35
|
+
"Visit us.",
|
36
|
+
" Go to http://translate.twitter.com."
|
37
|
+
]
|
38
|
+
end
|
39
|
+
|
40
|
+
it "splits on sentences that end with other kinds of punctuation" do
|
41
|
+
str = "Help us translate! Speak another language? You really, really rock."
|
42
|
+
iterator.each_sentence(str).to_a.should == [
|
43
|
+
"Help us translate!",
|
44
|
+
" Speak another language?",
|
45
|
+
" You really, really rock."
|
46
|
+
]
|
47
|
+
end
|
48
|
+
|
49
|
+
context "with ULI exceptions" do
|
50
|
+
it "does not split on certain abbreviations like Mr. and Mrs." do
|
51
|
+
str = "I really like Mrs. Patterson. She's nice."
|
52
|
+
iterator.each_sentence(str).to_a.should == [
|
53
|
+
"I really like Mrs. Patterson.",
|
54
|
+
" She's nice."
|
55
|
+
]
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
context "without ULI exceptions" do
|
60
|
+
let(:iterator) { BreakIterator.new(:en, :use_uli_exceptions => false) }
|
61
|
+
|
62
|
+
it "splits on certain abbreviations like Mr. and Mrs. (use ULI rules to avoid this behavior)" do
|
63
|
+
str = "I really like Mrs. Patterson. She's nice."
|
64
|
+
iterator.each_sentence(str).to_a.should == [
|
65
|
+
"I really like Mrs.",
|
66
|
+
" Patterson.",
|
67
|
+
" She's nice."
|
68
|
+
]
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
@@ -14,6 +14,7 @@ describe Calendar do
|
|
14
14
|
before(:each) do
|
15
15
|
# clear cache for each test
|
16
16
|
Calendar.send(:class_variable_set, :@@calendar_cache, {})
|
17
|
+
Calendar.send(:class_variable_set, :@@field_cache, {})
|
17
18
|
end
|
18
19
|
|
19
20
|
describe '#initialize' do
|
@@ -189,15 +190,15 @@ describe Calendar do
|
|
189
190
|
describe '#eras' do
|
190
191
|
it 'returns default eras' do
|
191
192
|
calendar.eras.should == {
|
192
|
-
0 => "
|
193
|
-
1 => "
|
193
|
+
0 => "vor der gewöhnlichen Zeitrechnung",
|
194
|
+
1 => "der gewöhnlichen Zeitrechnung"
|
194
195
|
}
|
195
196
|
end
|
196
197
|
|
197
198
|
it 'returns eras with other name forms' do
|
198
199
|
calendar.eras(:abbr).should == {
|
199
|
-
0 => "v.
|
200
|
-
1 => "
|
200
|
+
0 => "v. u. Z.",
|
201
|
+
1 => "u. Z."
|
201
202
|
}
|
202
203
|
end
|
203
204
|
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
# Copyright 2012 Twitter, Inc
|
4
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
5
|
+
|
6
|
+
require 'spec_helper'
|
7
|
+
|
8
|
+
include TwitterCldr::Shared
|
9
|
+
|
10
|
+
describe Casefolder do
|
11
|
+
describe "#casefold" do
|
12
|
+
it "should casefold a few canonical examples" do
|
13
|
+
Casefolder.casefold("Weißrussland").should == "weissrussland"
|
14
|
+
Casefolder.casefold("Hello, World").should == "hello, world"
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should correctly casefold the Turkic i character" do
|
18
|
+
Casefolder.casefold("Istanbul", true).should == "ıstanbul"
|
19
|
+
Casefolder.casefold("İstanbul", true).should == "istanbul"
|
20
|
+
end
|
21
|
+
|
22
|
+
# the files used in this test come from the unicode_utils gem
|
23
|
+
it "should casefold a large block of text and exactly match the expected text" do
|
24
|
+
base_path = File.dirname(__FILE__)
|
25
|
+
text = File.read(File.join(base_path, "casefolding.txt"))
|
26
|
+
expected = File.read(File.join(base_path, "casefolding_expected.txt"))
|
27
|
+
Casefolder.casefold(text).should == expected
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,251 @@
|
|
1
|
+
Dreiländereck
|
2
|
+
aus Wikipedia, der freien Enzyklopädie
|
3
|
+
Wechseln zu: Navigation, Suche
|
4
|
+
Dreiländereck D/F/CH am Rheinhafen von Basel
|
5
|
+
Vaalserberg: Dreiländereck (D/NL/B)
|
6
|
+
Sevening: Europadenkmal (D/B/L)
|
7
|
+
Denkmal für das „Schengener Abkommen“ in Schengen, Luxemburg (D/L/F)
|
8
|
+
Zittau: Dreiländereck (D/CZ/PL)
|
9
|
+
Treriksröset: Dreiländereck FIN/N/S
|
10
|
+
Berg Ofen: Grenzstein Dreiländereck I/SLO/A
|
11
|
+
Monte Roraima: Dreiländereck Brasilien, Guyana, Venezuela
|
12
|
+
Markstein auf der argentinischen Seite des Dreiländerecks RA/BR/PY
|
13
|
+
|
14
|
+
Ein Dreiländereck – auch Länderdreieck genannt – ist der geografische Punkt, wo drei gleichrangige Grenzen und auch drei gleich geartete Territorien (Länder, Staaten, Bundesländer) aufeinander treffen. Bekannt werden solche Dreiländerecke meist, wenn sie schon längere Zeit bestehen oder aber, wenn drei Kulturen aufeinander treffen.
|
15
|
+
|
16
|
+
Meist ist diese Stelle durch die jeweiligen Staatsflaggen oder Monumente markiert.
|
17
|
+
|
18
|
+
Von den zurzeit 195 Staaten auf der Erde haben 134 einen solchen Grenzpunkt. Insgesamt existieren 157 Dreiländerecke auf der Erde. Die Häufigkeit des Vorkommens von Dreiländerecken ist abhängig von der Anzahl der Nachbarn, aber auch von der Anzahl der Seegrenzen. So haben Inselnationen wie Japan keines, wie auch Staaten wie Portugal oder Dänemark, die nur ein Nachbarland haben bzw. vollständig von einem Staat umgeben sind (wie z. B. San Marino). Auch sind zwei Nachbarländer kein hinreichendes Kriterium, wie es z. B. bzgl. der USA in Nordamerika ist. Auch die Fläche eines Staats hat nur bedingt mit der Anzahl an Dreiländerecken zu tun: Der Staat mit den meisten ist China mit 15, während Russland, der flächenmäßig größte Staat der Welt, nur acht hat.
|
19
|
+
|
20
|
+
Österreich hat an seinen Grenzen neun Dreiländerecke (und ist damit der Staat mit den meisten Dreiländerecken innerhalb Europas), Deutschland sieben, die Schweiz sechs und Liechtenstein weist zwei Dreiländerecke auf.
|
21
|
+
Inhaltsverzeichnis
|
22
|
+
[Verbergen]
|
23
|
+
|
24
|
+
* 1 Dreiländerecke weltweit
|
25
|
+
o 1.1 Europa
|
26
|
+
o 1.2 Mittel- und Südamerika
|
27
|
+
o 1.3 Nordamerika
|
28
|
+
o 1.4 Afrika
|
29
|
+
o 1.5 Asien
|
30
|
+
* 2 Ehemalige Dreiländerecke
|
31
|
+
o 2.1 Europa
|
32
|
+
* 3 Siehe auch
|
33
|
+
* 4 Weblinks
|
34
|
+
|
35
|
+
Dreiländerecke weltweit [Bearbeiten]
|
36
|
+
|
37
|
+
Alphabetische Liste von allen 46 internationalen Dreiländerecken in Europa:
|
38
|
+
|
39
|
+
Europa [Bearbeiten]
|
40
|
+
|
41
|
+
* Albanien – Griechenland – Mazedonien, am Prespa-See
|
42
|
+
* Albanien – Mazedonien – Kosovo, südlich von Prizren in Kosovo
|
43
|
+
* Albanien – Montenegro – Kosovo, nördlich von Bajram Curri in Albanien
|
44
|
+
* Andorra – Frankreich – Spanien (Osteck), in den Pyrenäen
|
45
|
+
* Andorra – Frankreich – Spanien (Westeck), in den Pyrenäen
|
46
|
+
* Belgien – Deutschland – Luxemburg, am Europadenkmal an der Our bei Sevenig
|
47
|
+
* Belgien – Deutschland – Niederlande, auf dem Vaalserberg westlich von Aachen (war zeitweilig auch wegen Neutral-Moresnet ein Vierländereck)
|
48
|
+
* Belgien – Frankreich – Luxemburg, bei Longwy, Pétange, Aubange
|
49
|
+
* Bosnien-Herzegowina – Kroatien – Montenegro, nordöstlich von Gruda in Kroatien
|
50
|
+
* Bosnien-Herzegowina – Kroatien – Serbien, westlich von Omjelovo in Bosnien-Herzegowina
|
51
|
+
* Bosnien-Herzegowina – Montenegro – Serbien, westlich von Priboj in Serbien
|
52
|
+
* Bulgarien – Griechenland – Mazedonien, westlich von Petritsch in Bulgarien
|
53
|
+
* Bulgarien – Griechenland – Türkei, bei der griechischen Gemeinde Trigono, westlich des türkischen Edirne
|
54
|
+
* Bulgarien – Mazedonien – Serbien, westlich von Kjustendil in Bulgarien
|
55
|
+
* Bulgarien – Rumänien – Serbien, östlich von Negotin in Serbien
|
56
|
+
* Deutschland – Frankreich – Luxemburg, bei Perl, Apach, Schengen in der Mosel
|
57
|
+
* Deutschland – Frankreich – Schweiz, bei Basel, Hüningen und Weil am Rhein im Rhein
|
58
|
+
* Deutschland – Polen – Tschechien, südöstlich von Zittau
|
59
|
+
* Deutschland – Schweiz – Österreich, im Bodensee
|
60
|
+
* Deutschland – Tschechien – Österreich, am Plöckenstein (1320 m), Böhmerwald
|
61
|
+
* Estland – Lettland – Russland, westlich von Stuborova in Lettland
|
62
|
+
* Finnland – Norwegen – Russland, nordöstlich von Ivalo in Finnland
|
63
|
+
* Finnland – Norwegen – Schweden, schwedisch Treriksröset, norwegisch Treriksrøysa, finnisch Kolmen valtakunnan rajapyykki, westlich von Kilpisjärvi in Finnland
|
64
|
+
* Frankreich – Italien – Schweiz, auf der Bergspitze des Mont Dolent (3820 m) nahe dem Mont Blanc
|
65
|
+
* Italien – Schweiz – Österreich, nähe Reschenpass an der „Dreiländerecke“ (2.179 m)
|
66
|
+
* Italien – Slowenien – Österreich, bei Arnoldstein auf dem Gipfel des Ofen (slow. Peč) alias Dreiländereck
|
67
|
+
* Kroatien – Serbien – Ungarn, nordöstlich von Gruda in Kroatien
|
68
|
+
* Kroatien – Slowenien – Ungarn, südöstlich von Letenye in Ungarn
|
69
|
+
* Lettland – Litauen – Weißrussland, nordöstlich von Visaginas in Litauen
|
70
|
+
* Lettland – Russland – Weißrussland, südöstlich von Suskova in Lettland
|
71
|
+
* Liechtenstein – Schweiz – Österreich (Nordeck), im Rhein bei Sennwald
|
72
|
+
* Liechtenstein – Schweiz – Österreich (Südeck), im Rätikon am Naafkopf (2571 m)
|
73
|
+
* Litauen – Polen – Russland (Kaliningrad), westlich von Wizajny in Polen
|
74
|
+
* Litauen – Polen – Weißrussland, westlich von Druskininkai in Litauen
|
75
|
+
* Moldawien – Rumänien – Ukraine (Nordeck), nordöstlich von Dărăbani in Rumänien
|
76
|
+
* Moldawien – Rumänien – Ukraine (Südeck), östlich von Galaţi in Rumänien
|
77
|
+
* Polen – Slowakei – Tschechien, bei Hrčava in Tschechien und Jaworzynka in Polen
|
78
|
+
* Polen – Slowakei – Ukraine, nordöstlich von Nova Sedlica in Slowakei
|
79
|
+
* Polen – Ukraine – Weißrussland, südöstlich von Wlodawa in Polen
|
80
|
+
* Rumänien – Serbien – Ungarn, südlich von Kübekhaza in Ungarn
|
81
|
+
* Rumänien – Ukraine – Ungarn, nordöstlich von Bercu in Rumänien
|
82
|
+
* Russland – Ukraine – Weißrussland, südöstlich von Homel in Weißrussland
|
83
|
+
* Slowakei – Ukraine – Ungarn, bei Zahony in Ungarn
|
84
|
+
* Slowakei – Ungarn – Österreich, bei Deutsch Jahrndorf in Österreich, Rajka in Ungarn
|
85
|
+
* Slowakei – Tschechien – Österreich, bei Hohenau an der March in Österreich
|
86
|
+
* Slowenien – Österreich – Ungarn, östlich von Tauka in Österreich
|
87
|
+
|
88
|
+
Die nachfolgende Auflistung zeigt eine kleine Auswahl existierender Dreiländerecke in anderen Kontinenten:
|
89
|
+
|
90
|
+
Mittel- und Südamerika [Bearbeiten]
|
91
|
+
|
92
|
+
In Mittelamerika existieren zwei Dreiländerecke und in Südamerika 13:
|
93
|
+
|
94
|
+
* Argentinien – Bolivien – Chile
|
95
|
+
* Argentinien – Bolivien – Paraguay
|
96
|
+
* Argentinien – Brasilien – Paraguay: Hito Tres Fronteras, bekannt durch die Iguaçu-Wasserfälle
|
97
|
+
* Argentinien – Brasilien – Uruguay
|
98
|
+
* Mittelamerika: Belize – Guatemala – Mexiko
|
99
|
+
* Bolivien – Brasilien – Paraguay
|
100
|
+
* Bolivien – Brasilien – Peru
|
101
|
+
* Bolivien – Chile – Peru
|
102
|
+
* Brasilien – Kolumbien – Peru: Tres Fronteras, im Amazonas-Regenwald mit einer Dreistadt Tabatinga, Leticia, Santa Rosa mit mehr als 100.000 Einwohnern
|
103
|
+
* Brasilien – Kolumbien – Venezuela
|
104
|
+
* Brasilien – Französisch-Guayana – Surinam
|
105
|
+
* Brasilien – Guyana – Surinam
|
106
|
+
* Brasilien – Guyana – Venezuela: Auf dem Berg Monte Roraima
|
107
|
+
* Kolumbien – Ecuador – Peru
|
108
|
+
* Mittelamerika: Guatemala – Honduras – El Salvador
|
109
|
+
|
110
|
+
Nordamerika [Bearbeiten]
|
111
|
+
|
112
|
+
Da mit Kanada und den Vereinigten Staaten nur zwei Staaten in Nordamerika neben einigen französischen Inseln an der kanadischen Ostküste existieren, kann es dort keine Dreiländerecke geben.
|
113
|
+
|
114
|
+
Die Bundesstaaten der Vereinigten Staaten bilden 38 Tri-State Areas (Dreistaatengebiete).
|
115
|
+
|
116
|
+
Afrika [Bearbeiten]
|
117
|
+
|
118
|
+
In Afrika existieren 55 Dreiländerecke:
|
119
|
+
|
120
|
+
* Südafrika – Botswana – Namibia
|
121
|
+
* Südafrika – Botswana – Simbabwe
|
122
|
+
* Südafrika – Mosambik – Simbabwe (siehe Crook’s Corner)
|
123
|
+
* Südafrika – Mosambik – Swasiland (Nord)
|
124
|
+
* Südafrika – Mosambik – Swasiland (Süd)
|
125
|
+
* Algerien – Libyen – Niger
|
126
|
+
* Algerien – Libyen – Tunesien
|
127
|
+
* Algerien – Mali – Mauretanien
|
128
|
+
* Algerien – Mali – Niger
|
129
|
+
* Algerien – Marokko – West-Sahara
|
130
|
+
* Algerien – Mauretanien – West-Sahara
|
131
|
+
* Angola – Namibia – Sambia
|
132
|
+
* Angola – Republik Kongo – Demokratische Republik Kongo: Cabinda
|
133
|
+
* Angola – Demokratische Republik Kongo – Sambia
|
134
|
+
* Benin – Burkina Faso – Niger
|
135
|
+
* Benin – Burkina Faso – Togo
|
136
|
+
* Benin – Niger – Nigeria
|
137
|
+
* Botswana – Sambia – Simbabwe
|
138
|
+
* Burkina Faso – Elfenbeinküste – Ghana
|
139
|
+
* Burkina Faso – Elfenbeinküste – Mali
|
140
|
+
* Burkina Faso – Ghana – Togo
|
141
|
+
* Burkina Faso – Mali – Niger
|
142
|
+
* Burundi – Demokratische Republik Kongo – Ruanda
|
143
|
+
* Burundi – Ruanda – Tansania
|
144
|
+
* Kamerun – Gabun – Äquatorial-Guinea
|
145
|
+
* Kamerun – Gabun – Republik Kongo
|
146
|
+
* Kamerun – Nigeria – Tschad
|
147
|
+
* Kamerun – Zentralafrikanische Republik – Republik Kongo
|
148
|
+
* Kamerun – Zentralafrikanische Republik – Tschad
|
149
|
+
* Elfenbeinküste – Guinea – Liberia
|
150
|
+
* Elfenbeinküste – Guinea – Mali
|
151
|
+
* Dschibuti – Eritrea – Äthiopien
|
152
|
+
* Dschibuti – Äthiopien – Somalia
|
153
|
+
* Ägypten – Libyen – Sudan
|
154
|
+
* Eritrea – Äthiopien – Sudan
|
155
|
+
* Äthiopien – Kenia – Somalia
|
156
|
+
* Äthiopien – Kenia – Sudan
|
157
|
+
* Guinea – Guinea-Bissau – Senegal
|
158
|
+
* Guinea – Liberia – Sierra Leone
|
159
|
+
* Kenia – Uganda – Sudan
|
160
|
+
* Kenia – Uganda – Tansania
|
161
|
+
* Libyen – Niger – Tschad
|
162
|
+
* Libyen – Sudan – Tschad
|
163
|
+
* Malawi – Mosambik – Tansania
|
164
|
+
* Malawi – Mosambik – Sambia
|
165
|
+
* Mosambik – Tansania – Sambia
|
166
|
+
* Mosambik – Sambia – Simbabwe: Bei Zumbo
|
167
|
+
* Mali – Mauretanien – Senegal
|
168
|
+
* Niger – Nigeria – Tschad
|
169
|
+
* Uganda – Demokratische Republik Kongo – Ruanda
|
170
|
+
* Uganda – Demokratische Republik Kongo – Sudan
|
171
|
+
* Uganda – Ruanda – Tansania
|
172
|
+
* Zentralafrikanische Republik – Republik Kongo – Demokratische Republik Kongo
|
173
|
+
* Zentralafrikanische Republik – Demokratische Republik Kongo – Sudan
|
174
|
+
* Demokratische Republik Kongo – Tansania – Sambia
|
175
|
+
|
176
|
+
Asien [Bearbeiten]
|
177
|
+
|
178
|
+
In Asien existieren 42 Dreiländerecke:
|
179
|
+
|
180
|
+
* Afghanistan – Iran – Pakistan
|
181
|
+
* Afghanistan – Iran – Turkmenistan
|
182
|
+
* Afghanistan – VR China – Pakistan
|
183
|
+
* Afghanistan – VR China – Tadschikistan
|
184
|
+
* Afghanistan – Usbekistan – Tadschikistan
|
185
|
+
* Afghanistan – Usbekistan – Turkmenistan
|
186
|
+
* Saudi-Arabien – Vereinigte Arabische Emirate – Oman: Umm az Zamul
|
187
|
+
* Saudi-Arabien – Irak – Jordanien
|
188
|
+
* Saudi-Arabien – Irak – Kuwait
|
189
|
+
* Saudi-Arabien – Oman – Jemen
|
190
|
+
* Armenien – Aserbaidschan – Georgien
|
191
|
+
|
192
|
+
Mekong und Goldenes Dreieck
|
193
|
+
|
194
|
+
* Armenien – Aserbaidschan – Iran
|
195
|
+
* Armenien – Aserbaidschan – Iran
|
196
|
+
* Armenien – Aserbaidschan – Türkei
|
197
|
+
* Gaza-Streifen – Ägypten – Israel
|
198
|
+
* Bangladesch – Burma – Indien
|
199
|
+
* Bhutan – VR China – Indien (Osten)
|
200
|
+
* Bhutan – VR China – Indien (Westen)
|
201
|
+
* Burma – VR China – Indien
|
202
|
+
* Burma – VR China – Laos
|
203
|
+
* Burma – Laos – Thailand: Goldenes Dreieck
|
204
|
+
* Kambodscha – Laos – Thailand
|
205
|
+
* Kambodscha – Laos – Vietnam
|
206
|
+
* VR China – Indien – Nepal (Osten)
|
207
|
+
* VR China – Indien – Nepal (Westen)
|
208
|
+
* VR China – Indien – Pakistan
|
209
|
+
* VR China – Kasachstan – Kirgisien
|
210
|
+
* VR China – Kasachstan – Russland
|
211
|
+
* VR China – Laos – Vietnam
|
212
|
+
* VR China – Mongolei – Russland (Osten)
|
213
|
+
* VR China – Mongolei – Russland (Westen)
|
214
|
+
* VR China – Nord-Korea – Russland in der Region Primorje
|
215
|
+
* Palästina – Israel – Jordanien (Nord)
|
216
|
+
* Palästina – Israel – Jordanien (Süden)
|
217
|
+
* Irak – Iran – Türkei
|
218
|
+
* Irak – Jordanien – Syrien
|
219
|
+
* Irak – Syrien – Türkei
|
220
|
+
* Israel – Jordanien – Syrien
|
221
|
+
* Israel – Libanon – Syrien: Mount Hermon
|
222
|
+
* Kasachstan – Kirgisien – Usbekistan
|
223
|
+
* Kasachstan – Usbekistan – Turkmenistan
|
224
|
+
* Kirgisien – Usbekistan – Tadschikistan
|
225
|
+
|
226
|
+
Die Dreiländerecke VR China – Kasachstan – Russland sowie VR China – Mongolei – Russland liegen im Altai nur 50 Kilometer voneinander entfernt.
|
227
|
+
|
228
|
+
Ehemalige Dreiländerecke [Bearbeiten]
|
229
|
+
|
230
|
+
Infolge von Grenzverschiebungen kommt es vor, dass Dreiländerecke zu normalen Staatsgrenzen werden, aber dennoch ein markanter Punkt bleiben:
|
231
|
+
|
232
|
+
Europa [Bearbeiten]
|
233
|
+
|
234
|
+
* Italien – Schweiz – Österreich; bis zur Abtretung Südtirols von Österreich an Italien, nähe Stilfserjoch auf der Dreisprachenspitze. Es ist heute ein „Dreispracheneck“ geblieben mit Italienisch (Lombardei), Deutsch (Südtirol) und Rätoromanisch (Schweiz).
|
235
|
+
* BR Deutschland – DDR – Tschechoslowakei; bis zur Wiedervereinigung an der Stelle, wo Bayern, Sachsen und Böhmen (Tschechien) aufeinander treffen, es handelt sich um einen Punkt in der Nähe der Orte Regnitzlosau, Landkreis Hof, Bayern; Eichigt, Vogtlandkreis, Sachsen; und Hranice u Aše, Okres Cheb, heute Tschechische Republik.
|
236
|
+
|
237
|
+
Siehe auch [Bearbeiten]
|
238
|
+
Commons Commons: Dreiländereck – Bilder, Videos und Audiodateien
|
239
|
+
|
240
|
+
* Dreikaisereck
|
241
|
+
* Vierländereck
|
242
|
+
* Dreiherrenstein
|
243
|
+
* Tanzen im Dreiländereck
|
244
|
+
* Dreigräben
|
245
|
+
|
246
|
+
Weblinks [Bearbeiten]
|
247
|
+
|
248
|
+
* Liste aller Dreiländer als KML-Datei mit Koordinaten
|
249
|
+
|
250
|
+
Von „http://de.wikipedia.org/wiki/Dreil%C3%A4ndereck“
|
251
|
+
Kategorien: Politische Geographie | Grenze
|