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