1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4// 5// This file contains helper functions for getting strings that are included in 6// our DLL for all languages (i.e., does not come from our language DLL). 7// 8// These resource strings are organized such that we can get a localized string 9// by taking the base resource ID and adding a language offset. For example, 10// to get the resource id for the localized product name in en-US, we take 11// IDS_PRODUCT_NAME_BASE + IDS_L10N_OFFSET_EN_US. 12 13#ifndef CHROME_INSTALLER_UTIL_L10N_STRING_UTIL_H_ 14#define CHROME_INSTALLER_UTIL_L10N_STRING_UTIL_H_ 15 16#include <string> 17 18#include "base/strings/string16.h" 19 20namespace installer { 21 22class TranslationDelegate { 23 public: 24 virtual ~TranslationDelegate(); 25 virtual base::string16 GetLocalizedString(int installer_string_id) = 0; 26}; 27 28// If we're in Chrome, the installer strings aren't in the binary, but are in 29// the localized pak files. A TranslationDelegate must be provided so we can 30// load these strings. 31void SetTranslationDelegate(TranslationDelegate* delegate); 32 33// Given a string base id, return the localized version of the string based on 34// the system language. This is used for shortcuts placed on the user's 35// desktop. The string is retrieved from the TranslationDelegate if one has 36// been set. Otherwise, the string is read from the binary's string table. 37std::wstring GetLocalizedString(int base_message_id); 38 39// Returns the localized version of a string (obtained from GetLocalizedString) 40// with $1 replaced with |a|. Additionally, $$ is replaced by $. 41base::string16 GetLocalizedStringF(int base_message_id, 42 const base::string16& a); 43 44// Given the system language, return a url that points to the localized eula. 45// The empty string is returned on failure. 46std::wstring GetLocalizedEulaResource(); 47 48// Returns the language identifier of the translation currently in use. 49std::wstring GetCurrentTranslation(); 50 51} // namespace installer. 52 53#endif // CHROME_INSTALLER_UTIL_L10N_STRING_UTIL_H_ 54