| 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. |
| (...skipping 23 matching lines...) Expand all Loading... |
| 34 * Calling `msg({'num_people': 2, 'place': 'Athens'});` would | 34 * Calling `msg({'num_people': 2, 'place': 'Athens'});` would |
| 35 * produce "I see 2 other people in Athens." as output. | 35 * produce "I see 2 other people in Athens." as output. |
| 36 * | 36 * |
| 37 * See tests/message_format_test.dart for more examples. | 37 * See tests/message_format_test.dart for more examples. |
| 38 */ | 38 */ |
| 39 //TODO(efortuna): documentation example involving the offset parameter? | 39 //TODO(efortuna): documentation example involving the offset parameter? |
| 40 | 40 |
| 41 #library('message_lookup_local'); | 41 #library('message_lookup_local'); |
| 42 | 42 |
| 43 #import('intl.dart'); | 43 #import('intl.dart'); |
| 44 #import('src/intl_helpers.dart'); |
| 44 #import('dart:mirrors'); | 45 #import('dart:mirrors'); |
| 45 | 46 |
| 46 /** | 47 /** |
| 47 * Initialize the user messages for [localeName]. Note that this is an ASYNC | 48 * Initialize the user messages for [localeName]. Note that this is an ASYNC |
| 48 * operation. This must be called before attempting to use messages in | 49 * operation. This must be called before attempting to use messages in |
| 49 * [localeName]. | 50 * [localeName]. |
| 50 */ | 51 */ |
| 51 Future initializeMessages(localeName, [String source = 'messages_']) { | 52 Future initializeMessages(localeName, [String source = 'messages_']) { |
| 52 initializeInternalMessageLookup( | 53 initializeInternalMessageLookup( |
| 53 () => new MessageLookupLocal(localeName, source)); | 54 () => new MessageLookupLocal(localeName, source)); |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 121 MethodMirror localized = messagesForThisLocale.functions[name]; | 122 MethodMirror localized = messagesForThisLocale.functions[name]; |
| 122 if (localized == null) return message_str; | 123 if (localized == null) return message_str; |
| 123 result = messagesForThisLocale.invoke(localized.simpleName, args); | 124 result = messagesForThisLocale.invoke(localized.simpleName, args); |
| 124 } | 125 } |
| 125 finally { | 126 finally { |
| 126 _lookupInProgress = false; | 127 _lookupInProgress = false; |
| 127 } | 128 } |
| 128 return result.value.reflectee; | 129 return result.value.reflectee; |
| 129 } | 130 } |
| 130 } | 131 } |
| OLD | NEW |