// Copyright 2015 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // This file defines utility functions for replacing template expressions. // For example "Hello ${name}" could have ${name} replaced by the user's name. #ifndef UI_BASE_TEMPLATE_EXPRESSIONS_H_ #define UI_BASE_TEMPLATE_EXPRESSIONS_H_ #include #include #include "base/strings/string_piece.h" #include "ui/base/ui_base_export.h" namespace base { class DictionaryValue; } namespace ui { // Map of strings for template replacement in |ReplaceTemplateExpressions|. typedef std::map TemplateReplacements; // Convert a dictionary to a replacement map. This helper function is to assist // migration to using TemplateReplacements directly (which is preferred). // TODO(dschuyler): remove this function by using TemplateReplacements directly. UI_BASE_EXPORT void TemplateReplacementsFromDictionaryValue( const base::DictionaryValue& dictionary, TemplateReplacements* replacements); // Replace $i18n*{foo} in the format string with the value for the foo key in // |subst|. If the key is not found in the |substitutions| that item will // be unaltered. UI_BASE_EXPORT std::string ReplaceTemplateExpressions( base::StringPiece source, const TemplateReplacements& replacements); } // namespace ui #endif // UI_BASE_TEMPLATE_EXPRESSIONS_H_