| 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 * Message/plural format library with locale support. This can have different | 6 * Message/plural format library with locale support. This can have different |
| 7 * implementations based on the mechanism for finding the localized versions | 7 * implementations based on the mechanism for finding the localized versions |
| 8 * of messages. This version expects them to be in a library named e.g. | 8 * of messages. This version expects them to be in a library named e.g. |
| 9 * 'messages_en_US'. The prefix is set in the [initializeMessages] call, which | 9 * 'messages_en_US'. The prefix is set in the [initializeMessages] call, which |
| 10 * must be made for a locale before any lookups can be done. | 10 * must be made for a locale before any lookups can be done. |
| 11 * | 11 * |
| 12 * | 12 * See Intl class comment or `tests/message_format_test.dart` for more examples. |
| 13 * _message example: | |
| 14 * '''I see ${Intl.plural(num_people, | |
| 15 * {'0': 'no one at all', | |
| 16 * '1': 'one other person', | |
| 17 * 'other': '$num_people other people'})} in $place.'''' | |
| 18 * | |
| 19 * Usage examples: | |
| 20 * today(date) => intl.message( | |
| 21 * "Today's date is $date", | |
| 22 * desc: 'Indicate the current date', | |
| 23 * examples: {'date' : 'June 8, 2012'}); | |
| 24 * print(today(new Date.now()); | |
| 25 * | |
| 26 * msg(num_people, place) => intl.message( | |
| 27 * '''I see ${Intl.plural(num_people, | |
| 28 * {'0': 'no one at all', | |
| 29 * '1': 'one other person', | |
| 30 * 'other': '$num_people other people'})} in $place.'''', | |
| 31 * desc: 'Description of how many people are seen as program start.', | |
| 32 * examples: {'num_people': 3, 'place': 'London'}); | |
| 33 * | |
| 34 * Calling `msg({'num_people': 2, 'place': 'Athens'});` would | |
| 35 * produce "I see 2 other people in Athens." as output. | |
| 36 * | |
| 37 * See tests/message_format_test.dart for more examples. | |
| 38 */ | 13 */ |
| 39 //TODO(efortuna): documentation example involving the offset parameter? | 14 //TODO(efortuna): documentation example involving the offset parameter? |
| 40 | 15 |
| 41 #library('message_lookup_local'); | 16 #library('message_lookup_local'); |
| 42 | 17 |
| 43 #import('intl.dart'); | 18 #import('intl.dart'); |
| 44 #import('src/intl_helpers.dart'); | 19 #import('src/intl_helpers.dart'); |
| 45 #import('dart:mirrors'); | 20 #import('dart:mirrors'); |
| 46 | 21 |
| 47 /** | 22 /** |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 122 MethodMirror localized = messagesForThisLocale.functions[name]; | 97 MethodMirror localized = messagesForThisLocale.functions[name]; |
| 123 if (localized == null) return message_str; | 98 if (localized == null) return message_str; |
| 124 result = messagesForThisLocale.invoke(localized.simpleName, args); | 99 result = messagesForThisLocale.invoke(localized.simpleName, args); |
| 125 } | 100 } |
| 126 finally { | 101 finally { |
| 127 _lookupInProgress = false; | 102 _lookupInProgress = false; |
| 128 } | 103 } |
| 129 return result.value.reflectee; | 104 return result.value.reflectee; |
| 130 } | 105 } |
| 131 } | 106 } |
| OLD | NEW |