OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/browser/dom_ui/options/about_page_handler.h" | 5 #include "chrome/browser/dom_ui/options/about_page_handler.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "app/l10n_util.h" | 9 #include "app/l10n_util.h" |
10 #include "app/resource_bundle.h" | 10 #include "app/resource_bundle.h" |
(...skipping 25 matching lines...) Expand all Loading... |
36 #include "chrome/browser/chromeos/cros/cros_library.h" | 36 #include "chrome/browser/chromeos/cros/cros_library.h" |
37 #include "chrome/browser/chromeos/cros/power_library.h" | 37 #include "chrome/browser/chromeos/cros/power_library.h" |
38 #include "chrome/browser/chromeos/cros/update_library.h" | 38 #include "chrome/browser/chromeos/cros/update_library.h" |
39 #include "chrome/browser/chromeos/login/wizard_controller.h" | 39 #include "chrome/browser/chromeos/login/wizard_controller.h" |
40 #endif | 40 #endif |
41 | 41 |
42 namespace { | 42 namespace { |
43 | 43 |
44 // These are used as placeholder text around the links in the text in the | 44 // These are used as placeholder text around the links in the text in the |
45 // license. | 45 // license. |
46 const char kBeginLink[] = "BEGIN_LINK"; | 46 const wchar_t kBeginLink[] = L"BEGIN_LINK"; |
47 const char kEndLink[] = "END_LINK"; | 47 const wchar_t kEndLink[] = L"END_LINK"; |
48 const char kBeginLinkChr[] = "BEGIN_LINK_CHR"; | 48 const wchar_t kBeginLinkChr[] = L"BEGIN_LINK_CHR"; |
49 const char kBeginLinkOss[] = "BEGIN_LINK_OSS"; | 49 const wchar_t kBeginLinkOss[] = L"BEGIN_LINK_OSS"; |
50 const char kEndLinkChr[] = "END_LINK_CHR"; | 50 const wchar_t kEndLinkChr[] = L"END_LINK_CHR"; |
51 const char kEndLinkOss[] = "END_LINK_OSS"; | 51 const wchar_t kEndLinkOss[] = L"END_LINK_OSS"; |
52 #if defined(OS_CHROMEOS) | 52 #if defined(OS_CHROMEOS) |
53 const char kBeginLinkCrosOss[] = "BEGIN_LINK_CROS_OSS"; | 53 const wchar_t kBeginLinkCrosOss[] = L"BEGIN_LINK_CROS_OSS"; |
54 const char kEndLinkCrosOss[] = "END_LINK_CROS_OSS"; | 54 const wchar_t kEndLinkCrosOss[] = L"END_LINK_CROS_OSS"; |
55 #endif | 55 #endif |
56 | 56 |
57 // Returns a substring [start, end) from |text|. | 57 // Returns a substring [start, end) from |text|. |
58 std::string StringSubRange(const std::string& text, size_t start, | 58 std::wstring StringSubRange(const std::wstring& text, size_t start, |
59 size_t end) { | 59 size_t end) { |
60 DCHECK(end > start); | 60 DCHECK(end > start); |
61 return text.substr(start, end - start); | 61 return text.substr(start, end - start); |
62 } | 62 } |
63 | 63 |
64 struct LocalizeEntry { | 64 struct LocalizeEntry { |
65 const char* identifier; | 65 const char* identifier; |
66 int resource; | 66 int resource; |
67 }; | 67 }; |
68 | 68 |
69 const LocalizeEntry localize_table[] = { | 69 const LocalizeEntry localize_table[] = { |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
157 #if !defined(GOOGLE_CHROME_BUILD) | 157 #if !defined(GOOGLE_CHROME_BUILD) |
158 browser_version += " ("; | 158 browser_version += " ("; |
159 browser_version += version_info.LastChange(); | 159 browser_version += version_info.LastChange(); |
160 browser_version += ")"; | 160 browser_version += ")"; |
161 #endif | 161 #endif |
162 | 162 |
163 localized_strings->SetString("browser_version", browser_version); | 163 localized_strings->SetString("browser_version", browser_version); |
164 | 164 |
165 // license | 165 // license |
166 | 166 |
167 std::string text = l10n_util::GetStringUTF8(IDS_ABOUT_VERSION_LICENSE); | 167 std::wstring text = l10n_util::GetString(IDS_ABOUT_VERSION_LICENSE); |
168 | 168 |
169 bool chromium_url_appears_first = | 169 bool chromium_url_appears_first = |
170 text.find(kBeginLinkChr) < text.find(kBeginLinkOss); | 170 text.find(kBeginLinkChr) < text.find(kBeginLinkOss); |
171 | 171 |
172 size_t link1 = text.find(kBeginLink); | 172 size_t link1 = text.find(kBeginLink); |
173 DCHECK(link1 != std::string::npos); | 173 DCHECK(link1 != std::wstring::npos); |
174 size_t link1_end = text.find(kEndLink, link1); | 174 size_t link1_end = text.find(kEndLink, link1); |
175 DCHECK(link1_end != std::string::npos); | 175 DCHECK(link1_end != std::wstring::npos); |
176 size_t link2 = text.find(kBeginLink, link1_end); | 176 size_t link2 = text.find(kBeginLink, link1_end); |
177 DCHECK(link2 != std::string::npos); | 177 DCHECK(link2 != std::wstring::npos); |
178 size_t link2_end = text.find(kEndLink, link2); | 178 size_t link2_end = text.find(kEndLink, link2); |
179 DCHECK(link2_end != std::string::npos); | 179 DCHECK(link2_end != std::wstring::npos); |
180 | 180 |
181 localized_strings->SetString("license_content_0", text.substr(0, link1)); | 181 localized_strings->SetString("license_content_0", |
| 182 WideToUTF16Hack(text.substr(0, link1))); |
182 localized_strings->SetString("license_content_1", | 183 localized_strings->SetString("license_content_1", |
183 StringSubRange(text, link1_end + strlen(kEndLinkOss), link2)); | 184 WideToUTF16Hack(StringSubRange(text, link1_end + wcslen(kEndLinkOss), |
| 185 link2))); |
184 localized_strings->SetString("license_content_2", | 186 localized_strings->SetString("license_content_2", |
185 text.substr(link2_end + strlen(kEndLinkOss))); | 187 WideToUTF16Hack(text.substr(link2_end + wcslen(kEndLinkOss)))); |
186 | 188 |
187 // The Chromium link within the main text of the dialog. | 189 // The Chromium link within the main text of the dialog. |
188 localized_strings->SetString(chromium_url_appears_first ? | 190 localized_strings->SetString(chromium_url_appears_first ? |
189 "license_link_content_0" : "license_link_content_1", | 191 "license_link_content_0" : "license_link_content_1", |
190 StringSubRange(text, | 192 WideToUTF16Hack(StringSubRange(text, |
191 text.find(kBeginLinkChr) + strlen(kBeginLinkChr), | 193 text.find(kBeginLinkChr) + wcslen(kBeginLinkChr), |
192 text.find(kEndLinkChr))); | 194 text.find(kEndLinkChr)))); |
193 localized_strings->SetString(chromium_url_appears_first ? | 195 localized_strings->SetString(chromium_url_appears_first ? |
194 "license_link_0" : "license_link_1", | 196 "license_link_0" : "license_link_1", |
195 l10n_util::GetStringUTF16(IDS_CHROMIUM_PROJECT_URL)); | 197 l10n_util::GetStringUTF16(IDS_CHROMIUM_PROJECT_URL)); |
196 | 198 |
197 // The Open Source link within the main text of the dialog. We need to use | 199 // The Open Source link within the main text of the dialog. We need to use |
198 // the chrome:// variant instead of about:credits; the latter will get | 200 // the chrome:// variant instead of about:credits; the latter will get |
199 // rewritten to about:blank. | 201 // rewritten to about:blank. |
200 localized_strings->SetString(chromium_url_appears_first ? | 202 localized_strings->SetString(chromium_url_appears_first ? |
201 "license_link_content_1" : "license_link_content_0", | 203 "license_link_content_1" : "license_link_content_0", |
202 StringSubRange(text, | 204 WideToUTF16Hack(StringSubRange(text, |
203 text.find(kBeginLinkOss) + strlen(kBeginLinkOss), | 205 text.find(kBeginLinkOss) + wcslen(kBeginLinkOss), |
204 text.find(kEndLinkOss))); | 206 text.find(kEndLinkOss)))); |
205 localized_strings->SetString(chromium_url_appears_first ? | 207 localized_strings->SetString(chromium_url_appears_first ? |
206 "license_link_1" : "license_link_0", chrome::kChromeUIAboutCreditsURL); | 208 "license_link_1" : "license_link_0", chrome::kChromeUIAboutCreditsURL); |
207 | 209 |
208 #if defined(OS_CHROMEOS) | 210 #if defined(OS_CHROMEOS) |
209 std::string cros_text = | 211 std::wstring cros_text = l10n_util::GetString(IDS_ABOUT_CROS_VERSION_LICENSE); |
210 l10n_util::GetStringUTF8(IDS_ABOUT_CROS_VERSION_LICENSE); | |
211 | 212 |
212 size_t cros_link = cros_text.find(kBeginLinkCrosOss); | 213 size_t cros_link = cros_text.find(kBeginLinkCrosOss); |
213 DCHECK(cros_link != std::string::npos); | 214 DCHECK(cros_link != std::wstring::npos); |
214 size_t cros_link_end = cros_text.find(kEndLinkCrosOss, cros_link); | 215 size_t cros_link_end = cros_text.find(kEndLinkCrosOss, cros_link); |
215 DCHECK(cros_link_end != std::string::npos); | 216 DCHECK(cros_link_end != std::wstring::npos); |
216 | 217 |
217 localized_strings->SetString("cros_license_content_0", | 218 localized_strings->SetString("cros_license_content_0", |
218 cros_text.substr(0, cros_link)); | 219 WideToUTF16Hack(cros_text.substr(0, cros_link))); |
219 localized_strings->SetString("cros_license_content_1", | 220 localized_strings->SetString("cros_license_content_1", |
220 cros_text.substr(cros_link_end + strlen(kEndLinkCrosOss))); | 221 WideToUTF16Hack( |
| 222 cros_text.substr(cros_link_end + wcslen(kEndLinkCrosOss)))); |
221 localized_strings->SetString("cros_license_link_content_0", | 223 localized_strings->SetString("cros_license_link_content_0", |
222 StringSubRange(cros_text, cros_link + strlen(kBeginLinkCrosOss), | 224 WideToUTF16Hack(StringSubRange(cros_text, |
223 cros_link_end)); | 225 cros_link + wcslen(kBeginLinkCrosOss), cros_link_end))); |
224 localized_strings->SetString("cros_license_link_0", | 226 localized_strings->SetString("cros_license_link_0", |
225 chrome::kChromeUIAboutOSCreditsURL); | 227 chrome::kChromeUIAboutOSCreditsURL); |
226 #endif | 228 #endif |
227 | 229 |
228 // webkit | 230 // webkit |
229 | 231 |
230 localized_strings->SetString("webkit_version", | 232 localized_strings->SetString("webkit_version", |
231 webkit_glue::GetWebKitVersion()); | 233 webkit_glue::GetWebKitVersion()); |
232 | 234 |
233 // javascript | 235 // javascript |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
349 break; | 351 break; |
350 case chromeos::UPDATE_STATUS_UPDATE_AVAILABLE: | 352 case chromeos::UPDATE_STATUS_UPDATE_AVAILABLE: |
351 message = l10n_util::GetStringUTF16(IDS_UPDATE_AVAILABLE); | 353 message = l10n_util::GetStringUTF16(IDS_UPDATE_AVAILABLE); |
352 started_ = true; | 354 started_ = true; |
353 break; | 355 break; |
354 case chromeos::UPDATE_STATUS_DOWNLOADING: | 356 case chromeos::UPDATE_STATUS_DOWNLOADING: |
355 { | 357 { |
356 int progress = static_cast<int>(status.download_progress * 100.0); | 358 int progress = static_cast<int>(status.download_progress * 100.0); |
357 if (progress != progress_) { | 359 if (progress != progress_) { |
358 progress_ = progress; | 360 progress_ = progress; |
359 message = l10n_util::GetStringFUTF16Int(IDS_UPDATE_DOWNLOADING, | 361 // TODO(viettrungluu): need UTF-16 convenience form to eliminate hack. |
360 progress_); | 362 message = WideToUTF16Hack( |
| 363 l10n_util::GetStringF(IDS_UPDATE_DOWNLOADING, progress_)); |
361 } | 364 } |
362 started_ = true; | 365 started_ = true; |
363 } | 366 } |
364 break; | 367 break; |
365 case chromeos::UPDATE_STATUS_VERIFYING: | 368 case chromeos::UPDATE_STATUS_VERIFYING: |
366 message = l10n_util::GetStringUTF16(IDS_UPDATE_VERIFYING); | 369 message = l10n_util::GetStringUTF16(IDS_UPDATE_VERIFYING); |
367 started_ = true; | 370 started_ = true; |
368 break; | 371 break; |
369 case chromeos::UPDATE_STATUS_FINALIZING: | 372 case chromeos::UPDATE_STATUS_FINALIZING: |
370 message = l10n_util::GetStringUTF16(IDS_UPDATE_FINALIZING); | 373 message = l10n_util::GetStringUTF16(IDS_UPDATE_FINALIZING); |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
415 | 418 |
416 void AboutPageHandler::OnOSVersion(chromeos::VersionLoader::Handle handle, | 419 void AboutPageHandler::OnOSVersion(chromeos::VersionLoader::Handle handle, |
417 std::string version) { | 420 std::string version) { |
418 if (version.size()) { | 421 if (version.size()) { |
419 scoped_ptr<Value> version_string(Value::CreateStringValue(version)); | 422 scoped_ptr<Value> version_string(Value::CreateStringValue(version)); |
420 dom_ui_->CallJavascriptFunction(L"AboutPage.updateOSVersionCallback", | 423 dom_ui_->CallJavascriptFunction(L"AboutPage.updateOSVersionCallback", |
421 *version_string); | 424 *version_string); |
422 } | 425 } |
423 } | 426 } |
424 #endif | 427 #endif |
OLD | NEW |