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; |