| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/common/extensions/extension_message_bundle.h" | 5 #include "chrome/common/extensions/extension_message_bundle.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "app/l10n_util.h" | 10 #include "app/l10n_util.h" |
| 11 #include "base/hash_tables.h" | 11 #include "base/hash_tables.h" |
| 12 #include "base/linked_ptr.h" | 12 #include "base/linked_ptr.h" |
| 13 #include "base/scoped_ptr.h" | 13 #include "base/scoped_ptr.h" |
| 14 #include "base/singleton.h" |
| 14 #include "base/stl_util-inl.h" | 15 #include "base/stl_util-inl.h" |
| 15 #include "base/string_util.h" | 16 #include "base/string_util.h" |
| 16 #include "base/values.h" | 17 #include "base/values.h" |
| 17 #include "chrome/common/extensions/extension_constants.h" | 18 #include "chrome/common/extensions/extension_constants.h" |
| 18 #include "chrome/common/extensions/extension_error_utils.h" | 19 #include "chrome/common/extensions/extension_error_utils.h" |
| 19 #include "chrome/common/extensions/extension_l10n_util.h" | 20 #include "chrome/common/extensions/extension_l10n_util.h" |
| 20 | 21 |
| 21 namespace errors = extension_manifest_errors; | 22 namespace errors = extension_manifest_errors; |
| 22 | 23 |
| 23 const wchar_t* ExtensionMessageBundle::kContentKey = L"content"; | 24 const wchar_t* ExtensionMessageBundle::kContentKey = L"content"; |
| (...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 202 std::string* error) const { | 203 std::string* error) const { |
| 203 return ReplaceVariables(placeholders, | 204 return ReplaceVariables(placeholders, |
| 204 kPlaceholderBegin, | 205 kPlaceholderBegin, |
| 205 kPlaceholderEnd, | 206 kPlaceholderEnd, |
| 206 message, | 207 message, |
| 207 error); | 208 error); |
| 208 } | 209 } |
| 209 | 210 |
| 210 bool ExtensionMessageBundle::ReplaceMessages(std::string* text, | 211 bool ExtensionMessageBundle::ReplaceMessages(std::string* text, |
| 211 std::string* error) const { | 212 std::string* error) const { |
| 212 return ReplaceVariables(dictionary_, kMessageBegin, kMessageEnd, text, error); | 213 return ReplaceMessagesWithExternalDictionary(dictionary_, text, error); |
| 214 } |
| 215 |
| 216 // static |
| 217 bool ExtensionMessageBundle::ReplaceMessagesWithExternalDictionary( |
| 218 const SubstitutionMap& dictionary, std::string* text, std::string* error) { |
| 219 return ReplaceVariables(dictionary, kMessageBegin, kMessageEnd, text, error); |
| 213 } | 220 } |
| 214 | 221 |
| 215 // static | 222 // static |
| 216 bool ExtensionMessageBundle::ReplaceVariables( | 223 bool ExtensionMessageBundle::ReplaceVariables( |
| 217 const SubstitutionMap& variables, | 224 const SubstitutionMap& variables, |
| 218 const std::string& var_begin_delimiter, | 225 const std::string& var_begin_delimiter, |
| 219 const std::string& var_end_delimiter, | 226 const std::string& var_end_delimiter, |
| 220 std::string* message, | 227 std::string* message, |
| 221 std::string* error) { | 228 std::string* error) { |
| 222 std::string::size_type beg_index = 0; | 229 std::string::size_type beg_index = 0; |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 276 std::string ExtensionMessageBundle::GetL10nMessage( | 283 std::string ExtensionMessageBundle::GetL10nMessage( |
| 277 const std::string& name, const SubstitutionMap& dictionary) { | 284 const std::string& name, const SubstitutionMap& dictionary) { |
| 278 SubstitutionMap::const_iterator it = | 285 SubstitutionMap::const_iterator it = |
| 279 dictionary.find(StringToLowerASCII(name)); | 286 dictionary.find(StringToLowerASCII(name)); |
| 280 if (it != dictionary.end()) { | 287 if (it != dictionary.end()) { |
| 281 return it->second; | 288 return it->second; |
| 282 } | 289 } |
| 283 | 290 |
| 284 return ""; | 291 return ""; |
| 285 } | 292 } |
| 293 |
| 294 /////////////////////////////////////////////////////////////////////////////// |
| 295 // |
| 296 // Renderer helper functions. |
| 297 // |
| 298 /////////////////////////////////////////////////////////////////////////////// |
| 299 |
| 300 ExtensionToL10nMessagesMap* GetExtensionToL10nMessagesMap() { |
| 301 return &Singleton<ExtensionToMessagesMap>()->messages_map; |
| 302 } |
| 303 |
| 304 L10nMessagesMap* GetL10nMessagesMap(const std::string extension_id) { |
| 305 ExtensionToL10nMessagesMap::iterator it = |
| 306 Singleton<ExtensionToMessagesMap>()->messages_map.find(extension_id); |
| 307 if (it != Singleton<ExtensionToMessagesMap>()->messages_map.end()) |
| 308 return &(it->second); |
| 309 |
| 310 return NULL; |
| 311 } |
| OLD | NEW |