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 * See Intl class comment or `tests/message_format_test.dart` for more examples. | 12 * See Intl class comment or `tests/message_format_test.dart` for more examples. |
13 */ | 13 */ |
14 //TODO(efortuna): documentation example involving the offset parameter? | 14 //TODO(efortuna): documentation example involving the offset parameter? |
15 | 15 |
16 library message_lookup_local; | 16 #library('message_lookup_local'); |
17 | 17 |
18 import 'intl.dart'; | 18 #import('intl.dart'); |
19 import 'src/intl_helpers.dart'; | 19 #import('src/intl_helpers.dart'); |
20 import 'dart:mirrors'; | 20 #import('dart:mirrors'); |
21 | 21 |
22 /** | 22 /** |
23 * Initialize the user messages for [localeName]. Note that this is an ASYNC | 23 * Initialize the user messages for [localeName]. Note that this is an ASYNC |
24 * operation. This must be called before attempting to use messages in | 24 * operation. This must be called before attempting to use messages in |
25 * [localeName]. | 25 * [localeName]. |
26 */ | 26 */ |
27 Future initializeMessages(localeName, [String source = 'messages_']) { | 27 Future initializeMessages(localeName, [String source = 'messages_']) { |
28 initializeInternalMessageLookup( | 28 initializeInternalMessageLookup( |
29 () => new MessageLookupLocal(localeName, source)); | 29 () => new MessageLookupLocal(localeName, source)); |
30 _initializeMessagesForLocale(localeName); | 30 _initializeMessagesForLocale(localeName); |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
112 MethodMirror localized = messagesForThisLocale.functions[name]; | 112 MethodMirror localized = messagesForThisLocale.functions[name]; |
113 if (localized == null) return message_str; | 113 if (localized == null) return message_str; |
114 result = messagesForThisLocale.invoke(localized.simpleName, args); | 114 result = messagesForThisLocale.invoke(localized.simpleName, args); |
115 } | 115 } |
116 finally { | 116 finally { |
117 _lookupInProgress = false; | 117 _lookupInProgress = false; |
118 } | 118 } |
119 return result.value.reflectee; | 119 return result.value.reflectee; |
120 } | 120 } |
121 } | 121 } |
OLD | NEW |