Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(810)

Unified Diff: remoting/host/plugin/host_script_object.cc

Issue 10661058: Move responsibility for l10n parameters to the caller. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « remoting/host/plugin/host_script_object.h ('k') | remoting/webapp/host_session.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/host/plugin/host_script_object.cc
diff --git a/remoting/host/plugin/host_script_object.cc b/remoting/host/plugin/host_script_object.cc
index dc6c450e4baa688c5aabb34204c7a367ecb7f863..23d1256a45eaa310ade182b73c25a491555d5de7 100644
--- a/remoting/host/plugin/host_script_object.cc
+++ b/remoting/host/plugin/host_script_object.cc
@@ -1051,8 +1051,11 @@ void HostNPScriptObject::LocalizeStrings(NPObject* localize_func) {
&ui_strings.continue_button_text);
LocalizeString(localize_func, /*i18n-content*/"STOP_SHARING_BUTTON",
&ui_strings.stop_sharing_button_text);
- LocalizeString(localize_func, /*i18n-content*/"MESSAGE_SHARED",
- &ui_strings.disconnect_message);
+ const char* substitutions[] = { "$1" };
+ LocalizeStringWithSubstitutions(localize_func,
+ /*i18n-content*/"MESSAGE_SHARED",
+ substitutions, arraysize(substitutions),
+ &ui_strings.disconnect_message);
base::AutoLock auto_lock(ui_strings_lock_);
ui_strings_ = ui_strings;
@@ -1060,11 +1063,21 @@ void HostNPScriptObject::LocalizeStrings(NPObject* localize_func) {
bool HostNPScriptObject::LocalizeString(NPObject* localize_func,
const char* tag, string16* result) {
- NPVariant args[2];
+ return LocalizeStringWithSubstitutions(localize_func, tag, NULL, 0, result);
+}
+
+bool HostNPScriptObject::LocalizeStringWithSubstitutions(
+ NPObject* localize_func, const char* tag, const char** substitutions,
+ int number_of_substitutions, string16* result) {
+ scoped_array<NPVariant> args(new NPVariant[number_of_substitutions + 1]);
STRINGZ_TO_NPVARIANT(tag, args[0]);
+ for (int i = 0; i < number_of_substitutions; ++i) {
+ STRINGZ_TO_NPVARIANT(substitutions[i], args[i + 1]);
+ }
NPVariant np_result;
bool is_good = g_npnetscape_funcs->invokeDefault(
- plugin_, localize_func, &args[0], 1, &np_result);
+ plugin_, localize_func, args.get(), number_of_substitutions + 1,
Sergey Ulanov 2012/06/28 01:11:24 Actually chrome.i18n.getMessage() takes only two p
Jamie 2012/06/28 23:02:41 So it does--good catch! Passing arrays over NPAPI
+ &np_result);
if (!is_good) {
LOG(ERROR) << "Localization failed for " << tag;
return false;
« no previous file with comments | « remoting/host/plugin/host_script_object.h ('k') | remoting/webapp/host_session.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698