OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 /** | 5 /** |
6 * This library provides internationalization and localization. This includes | 6 * This library provides internationalization and localization. This includes |
7 * message formatting and replacement, date and number formatting and parsing, | 7 * message formatting and replacement, date and number formatting and parsing, |
8 * and utilities for working with Bidirectional text. | 8 * and utilities for working with Bidirectional text. |
9 * | 9 * |
10 * This is part of the [intl package] | 10 * This is part of the [intl package] |
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
262 } | 262 } |
263 if (other == null) { | 263 if (other == null) { |
264 throw new ArgumentError("The 'other' named argument must be provided"); | 264 throw new ArgumentError("The 'other' named argument must be provided"); |
265 } | 265 } |
266 // TODO(alanknight): This algorithm needs to be locale-dependent. | 266 // TODO(alanknight): This algorithm needs to be locale-dependent. |
267 switch (howMany) { | 267 switch (howMany) { |
268 case 0 : return (zero == null) ? other : zero; | 268 case 0 : return (zero == null) ? other : zero; |
269 case 1 : return (one == null) ? other : one; | 269 case 1 : return (one == null) ? other : one; |
270 case 2: return (two == null) ? ((few == null) ? other : few) : two; | 270 case 2: return (two == null) ? ((few == null) ? other : few) : two; |
271 default: | 271 default: |
272 if (howMany == 3 || howMany == 4 && few != null) return few; | 272 if ((howMany == 3 || howMany == 4) && few != null) return few; |
273 if (howMany > 10 && howMany < 100 && many != null) return many; | 273 if (howMany > 10 && howMany < 100 && many != null) return many; |
274 return other; | 274 return other; |
275 } | 275 } |
276 throw new ArgumentError("Invalid plural usage for $howMany"); | 276 throw new ArgumentError("Invalid plural usage for $howMany"); |
277 } | 277 } |
278 | 278 |
279 /** | 279 /** |
280 * Format a message differently depending on [targetGender]. Normally used as | 280 * Format a message differently depending on [targetGender]. Normally used as |
281 * part of an Intl.message message that is to be translated. | 281 * part of an Intl.message message that is to be translated. |
282 */ | 282 */ |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
360 * unless for some reason this gets called inside a message that resets the | 360 * unless for some reason this gets called inside a message that resets the |
361 * locale. | 361 * locale. |
362 */ | 362 */ |
363 static String getCurrentLocale() { | 363 static String getCurrentLocale() { |
364 if (defaultLocale == null) defaultLocale = systemLocale; | 364 if (defaultLocale == null) defaultLocale = systemLocale; |
365 return defaultLocale; | 365 return defaultLocale; |
366 } | 366 } |
367 | 367 |
368 toString() => "Intl($locale)"; | 368 toString() => "Intl($locale)"; |
369 } | 369 } |
OLD | NEW |