| // Copyright 2020 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "chrome/browser/ui/webui/settings/chromeos/os_settings_localized_strings_provider.h" |
| |
| #include "ash/public/cpp/ash_features.h" |
| #include "ash/public/mojom/assistant_state_controller.mojom.h" |
| #include "base/command_line.h" |
| #include "base/feature_list.h" |
| #include "base/i18n/number_formatting.h" |
| #include "base/no_destructor.h" |
| #include "base/strings/strcat.h" |
| #include "base/strings/string_number_conversions.h" |
| #include "base/strings/stringprintf.h" |
| #include "base/strings/utf_string_conversions.h" |
| #include "base/system/sys_info.h" |
| #include "build/branding_buildflags.h" |
| #include "build/build_config.h" |
| #include "build/buildflag.h" |
| #include "chrome/browser/browser_process.h" |
| #include "chrome/browser/browser_process_platform_part.h" |
| #include "chrome/browser/chromeos/account_manager/account_manager_util.h" |
| #include "chrome/browser/chromeos/arc/arc_util.h" |
| #include "chrome/browser/chromeos/assistant/assistant_util.h" |
| #include "chrome/browser/chromeos/crostini/crostini_features.h" |
| #include "chrome/browser/chromeos/crostini/crostini_util.h" |
| #include "chrome/browser/chromeos/kerberos/kerberos_credentials_manager.h" |
| #include "chrome/browser/chromeos/login/quick_unlock/quick_unlock_utils.h" |
| #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" |
| #include "chrome/browser/chromeos/profiles/profile_helper.h" |
| #include "chrome/browser/policy/profile_policy_connector.h" |
| #include "chrome/browser/profiles/profile.h" |
| #include "chrome/browser/ui/webui/chromeos/assistant_optin/assistant_optin_utils.h" |
| #include "chrome/browser/ui/webui/chromeos/bluetooth_dialog_localized_strings_provider.h" |
| #include "chrome/browser/ui/webui/chromeos/network_element_localized_strings_provider.h" |
| #include "chrome/browser/ui/webui/chromeos/smb_shares/smb_shares_localized_strings_provider.h" |
| #include "chrome/browser/ui/webui/management_ui.h" |
| #include "chrome/browser/ui/webui/policy_indicator_localized_strings_provider.h" |
| #include "chrome/browser/ui/webui/settings/chromeos/internet_strings_provider.h" |
| #include "chrome/browser/ui/webui/settings/chromeos/search/search_concept.h" |
| #include "chrome/browser/ui/webui/settings/shared_settings_localized_strings_provider.h" |
| #include "chrome/browser/ui/webui/webui_util.h" |
| #include "chrome/common/chrome_features.h" |
| #include "chrome/common/pref_names.h" |
| #include "chrome/common/url_constants.h" |
| #include "chrome/common/webui_url_constants.h" |
| #include "chrome/grit/chromium_strings.h" |
| #include "chrome/grit/generated_resources.h" |
| #include "chrome/grit/locale_settings.h" |
| #include "chrome/services/local_search_service/public/mojom/types.mojom.h" |
| #include "chromeos/constants/chromeos_features.h" |
| #include "chromeos/constants/chromeos_switches.h" |
| #include "chromeos/services/assistant/public/features.h" |
| #include "chromeos/services/multidevice_setup/public/cpp/url_provider.h" |
| #include "chromeos/strings/grit/chromeos_strings.h" |
| #include "components/google/core/common/google_util.h" |
| #include "components/prefs/pref_service.h" |
| #include "components/strings/grit/components_strings.h" |
| #include "components/version_ui/version_ui_constants.h" |
| #include "content/public/browser/web_ui_data_source.h" |
| #include "content/public/common/content_features.h" |
| #include "content/public/common/content_switches.h" |
| #include "device/bluetooth/strings/grit/bluetooth_strings.h" |
| #include "media/base/media_switches.h" |
| #include "ui/accessibility/accessibility_switches.h" |
| #include "ui/base/l10n/l10n_util.h" |
| #include "ui/base/webui/web_ui_util.h" |
| #include "ui/chromeos/devicetype_utils.h" |
| #include "ui/chromeos/events/keyboard_layout_util.h" |
| #include "ui/display/display_features.h" |
| #include "ui/display/display_switches.h" |
| #include "ui/display/manager/touch_device_manager.h" |
| |
| namespace chromeos { |
| namespace settings { |
| namespace { |
| |
| std::vector<local_search_service::mojom::DataPtr> ConceptVectorToDataPtrVector( |
| const std::vector<SearchConcept>& tags_group) { |
| std::vector<local_search_service::mojom::DataPtr> data_list; |
| |
| for (const auto& concept : tags_group) { |
| std::vector<base::string16> search_tags; |
| |
| // Add the canonical tag. |
| search_tags.push_back( |
| l10n_util::GetStringUTF16(concept.canonical_message_id)); |
| |
| // Add all alternate tags. |
| for (size_t i = 0; i < SearchConcept::kMaxAltTagsPerConcept; ++i) { |
| int curr_alt_tag = concept.alt_tag_ids[i]; |
| if (curr_alt_tag == SearchConcept::kAltTagEnd) |
| break; |
| search_tags.push_back(l10n_util::GetStringUTF16(curr_alt_tag)); |
| } |
| |
| // Note: A stringified version of the canonical tag message ID is used as |
| // the identifier for this search data. |
| data_list.push_back(local_search_service::mojom::Data::New( |
| base::NumberToString(concept.canonical_message_id), search_tags)); |
| } |
| |
| return data_list; |
| } |
| |
| // Generates a Google Help URL which includes a "board type" parameter. Some |
| // help pages need to be adjusted depending on the type of CrOS device that is |
| // accessing the page. |
| base::string16 GetHelpUrlWithBoard(const std::string& original_url) { |
| return base::ASCIIToUTF16(original_url + |
| "&b=" + base::SysInfo::GetLsbReleaseBoard()); |
| } |
| |
| bool IsDeviceManaged() { |
| policy::BrowserPolicyConnectorChromeOS* connector = |
| g_browser_process->platform_part()->browser_policy_connector_chromeos(); |
| return connector->IsEnterpriseManaged(); |
| } |
| |
| bool IsProfileManaged(Profile* profile) { |
| return profile->GetProfilePolicyConnector()->IsManaged(); |
| } |
| |
| void AddCommonStrings(content::WebUIDataSource* html_source, Profile* profile) { |
| static constexpr webui::LocalizedString kLocalizedStrings[] = { |
| {"add", IDS_ADD}, |
| {"advancedPageTitle", IDS_SETTINGS_ADVANCED}, |
| {"back", IDS_ACCNAME_BACK}, |
| {"basicPageTitle", IDS_SETTINGS_BASIC}, |
| {"cancel", IDS_CANCEL}, |
| {"clear", IDS_SETTINGS_CLEAR}, |
| {"close", IDS_CLOSE}, |
| {"confirm", IDS_CONFIRM}, |
| {"continue", IDS_SETTINGS_CONTINUE}, |
| {"controlledByExtension", IDS_SETTINGS_CONTROLLED_BY_EXTENSION}, |
| {"custom", IDS_SETTINGS_CUSTOM}, |
| {"delete", IDS_SETTINGS_DELETE}, |
| {"deviceOff", IDS_SETTINGS_DEVICE_OFF}, |
| {"deviceOn", IDS_SETTINGS_DEVICE_ON}, |
| {"disable", IDS_DISABLE}, |
| {"done", IDS_DONE}, |
| {"edit", IDS_SETTINGS_EDIT}, |
| {"extensionsLinkTooltip", IDS_SETTINGS_MENU_EXTENSIONS_LINK_TOOLTIP}, |
| {"learnMore", IDS_LEARN_MORE}, |
| {"menu", IDS_MENU}, |
| {"menuButtonLabel", IDS_SETTINGS_MENU_BUTTON_LABEL}, |
| {"moreActions", IDS_SETTINGS_MORE_ACTIONS}, |
| {"ok", IDS_OK}, |
| {"restart", IDS_SETTINGS_RESTART}, |
| {"save", IDS_SAVE}, |
| {"searchResultBubbleText", IDS_SEARCH_RESULT_BUBBLE_TEXT}, |
| {"searchResultsBubbleText", IDS_SEARCH_RESULTS_BUBBLE_TEXT}, |
| {"settings", IDS_SETTINGS_SETTINGS}, |
| {"settingsAltPageTitle", IDS_SETTINGS_ALT_PAGE_TITLE}, |
| {"subpageArrowRoleDescription", IDS_SETTINGS_SUBPAGE_BUTTON}, |
| {"notValidWebAddress", IDS_SETTINGS_NOT_VALID_WEB_ADDRESS}, |
| {"notValidWebAddressForContentType", |
| IDS_SETTINGS_NOT_VALID_WEB_ADDRESS_FOR_CONTENT_TYPE}, |
| |
| // Common font related strings shown in a11y and appearance sections. |
| {"quickBrownFox", IDS_SETTINGS_QUICK_BROWN_FOX}, |
| {"verySmall", IDS_SETTINGS_VERY_SMALL_FONT}, |
| {"small", IDS_SETTINGS_SMALL_FONT}, |
| {"medium", IDS_SETTINGS_MEDIUM_FONT}, |
| {"large", IDS_SETTINGS_LARGE_FONT}, |
| {"veryLarge", IDS_SETTINGS_VERY_LARGE_FONT}, |
| }; |
| AddLocalizedStringsBulk(html_source, kLocalizedStrings); |
| |
| html_source->AddBoolean( |
| "isGuest", |
| user_manager::UserManager::Get()->IsLoggedInAsGuest() || |
| user_manager::UserManager::Get()->IsLoggedInAsPublicAccount()); |
| |
| html_source->AddBoolean("isSupervised", profile->IsSupervised()); |
| } |
| |
| void AddA11yStrings(content::WebUIDataSource* html_source) { |
| static constexpr webui::LocalizedString kLocalizedStrings[] = { |
| {"a11yPageTitle", IDS_SETTINGS_ACCESSIBILITY}, |
| {"a11yWebStore", IDS_SETTINGS_ACCESSIBILITY_WEB_STORE}, |
| {"moreFeaturesLinkDescription", |
| IDS_SETTINGS_MORE_FEATURES_LINK_DESCRIPTION}, |
| {"accessibleImageLabelsTitle", |
| IDS_SETTINGS_ACCESSIBLE_IMAGE_LABELS_TITLE}, |
| {"accessibleImageLabelsSubtitle", |
| IDS_SETTINGS_ACCESSIBLE_IMAGE_LABELS_SUBTITLE}, |
| {"settingsSliderRoleDescription", |
| IDS_SETTINGS_SLIDER_MIN_MAX_ARIA_ROLE_DESCRIPTION}, |
| {"manageAccessibilityFeatures", |
| IDS_SETTINGS_ACCESSIBILITY_MANAGE_ACCESSIBILITY_FEATURES}, |
| {"optionsInMenuLabel", IDS_SETTINGS_OPTIONS_IN_MENU_LABEL}, |
| {"largeMouseCursorLabel", IDS_SETTINGS_LARGE_MOUSE_CURSOR_LABEL}, |
| {"largeMouseCursorSizeLabel", IDS_SETTINGS_LARGE_MOUSE_CURSOR_SIZE_LABEL}, |
| {"largeMouseCursorSizeDefaultLabel", |
| IDS_SETTINGS_LARGE_MOUSE_CURSOR_SIZE_DEFAULT_LABEL}, |
| {"largeMouseCursorSizeLargeLabel", |
| IDS_SETTINGS_LARGE_MOUSE_CURSOR_SIZE_LARGE_LABEL}, |
| {"highContrastLabel", IDS_SETTINGS_HIGH_CONTRAST_LABEL}, |
| {"stickyKeysLabel", IDS_SETTINGS_STICKY_KEYS_LABEL}, |
| {"chromeVoxLabel", IDS_SETTINGS_CHROMEVOX_LABEL}, |
| {"chromeVoxOptionsLabel", IDS_SETTINGS_CHROMEVOX_OPTIONS_LABEL}, |
| {"screenMagnifierLabel", IDS_SETTINGS_SCREEN_MAGNIFIER_LABEL}, |
| {"screenMagnifierZoomLabel", IDS_SETTINGS_SCREEN_MAGNIFIER_ZOOM_LABEL}, |
| {"dockedMagnifierLabel", IDS_SETTINGS_DOCKED_MAGNIFIER_LABEL}, |
| {"dockedMagnifierZoomLabel", IDS_SETTINGS_DOCKED_MAGNIFIER_ZOOM_LABEL}, |
| {"screenMagnifierZoom2x", IDS_SETTINGS_SCREEN_MAGNIFIER_ZOOM_2_X}, |
| {"screenMagnifierZoom4x", IDS_SETTINGS_SCREEN_MAGNIFIER_ZOOM_4_X}, |
| {"screenMagnifierZoom6x", IDS_SETTINGS_SCREEN_MAGNIFIER_ZOOM_6_X}, |
| {"screenMagnifierZoom8x", IDS_SETTINGS_SCREEN_MAGNIFIER_ZOOM_8_X}, |
| {"screenMagnifierZoom10x", IDS_SETTINGS_SCREEN_MAGNIFIER_ZOOM_10_X}, |
| {"screenMagnifierZoom12x", IDS_SETTINGS_SCREEN_MAGNIFIER_ZOOM_12_X}, |
| {"screenMagnifierZoom14x", IDS_SETTINGS_SCREEN_MAGNIFIER_ZOOM_14_X}, |
| {"screenMagnifierZoom16x", IDS_SETTINGS_SCREEN_MAGNIFIER_ZOOM_16_X}, |
| {"screenMagnifierZoom18x", IDS_SETTINGS_SCREEN_MAGNIFIER_ZOOM_18_X}, |
| {"screenMagnifierZoom20x", IDS_SETTINGS_SCREEN_MAGNIFIER_ZOOM_20_X}, |
| {"tapDraggingLabel", IDS_SETTINGS_TAP_DRAGGING_LABEL}, |
| {"clickOnStopLabel", IDS_SETTINGS_CLICK_ON_STOP_LABEL}, |
| {"delayBeforeClickLabel", IDS_SETTINGS_DELAY_BEFORE_CLICK_LABEL}, |
| {"delayBeforeClickExtremelyShort", |
| IDS_SETTINGS_DELAY_BEFORE_CLICK_EXTREMELY_SHORT}, |
| {"delayBeforeClickVeryShort", IDS_SETTINGS_DELAY_BEFORE_CLICK_VERY_SHORT}, |
| {"delayBeforeClickShort", IDS_SETTINGS_DELAY_BEFORE_CLICK_SHORT}, |
| {"delayBeforeClickLong", IDS_SETTINGS_DELAY_BEFORE_CLICK_LONG}, |
| {"delayBeforeClickVeryLong", IDS_SETTINGS_DELAY_BEFORE_CLICK_VERY_LONG}, |
| {"autoclickRevertToLeftClick", |
| IDS_SETTINGS_AUTOCLICK_REVERT_TO_LEFT_CLICK}, |
| {"autoclickStabilizeCursorPosition", |
| IDS_SETTINGS_AUTOCLICK_STABILIZE_CURSOR_POSITION}, |
| {"autoclickMovementThresholdLabel", |
| IDS_SETTINGS_AUTOCLICK_MOVEMENT_THRESHOLD_LABEL}, |
| {"autoclickMovementThresholdExtraSmall", |
| IDS_SETTINGS_AUTOCLICK_MOVEMENT_THRESHOLD_EXTRA_SMALL}, |
| {"autoclickMovementThresholdSmall", |
| IDS_SETTINGS_AUTOCLICK_MOVEMENT_THRESHOLD_SMALL}, |
| {"autoclickMovementThresholdDefault", |
| IDS_SETTINGS_AUTOCLICK_MOVEMENT_THRESHOLD_DEFAULT}, |
| {"autoclickMovementThresholdLarge", |
| IDS_SETTINGS_AUTOCLICK_MOVEMENT_THRESHOLD_LARGE}, |
| {"autoclickMovementThresholdExtraLarge", |
| IDS_SETTINGS_AUTOCLICK_MOVEMENT_THRESHOLD_EXTRA_LARGE}, |
| {"dictationDescription", |
| IDS_SETTINGS_ACCESSIBILITY_DICTATION_DESCRIPTION}, |
| {"dictationLabel", IDS_SETTINGS_ACCESSIBILITY_DICTATION_LABEL}, |
| {"onScreenKeyboardLabel", IDS_SETTINGS_ON_SCREEN_KEYBOARD_LABEL}, |
| {"monoAudioLabel", IDS_SETTINGS_MONO_AUDIO_LABEL}, |
| {"startupSoundLabel", IDS_SETTINGS_STARTUP_SOUND_LABEL}, |
| {"a11yExplanation", IDS_SETTINGS_ACCESSIBILITY_EXPLANATION}, |
| {"caretHighlightLabel", |
| IDS_SETTINGS_ACCESSIBILITY_CARET_HIGHLIGHT_DESCRIPTION}, |
| {"cursorHighlightLabel", |
| IDS_SETTINGS_ACCESSIBILITY_CURSOR_HIGHLIGHT_DESCRIPTION}, |
| {"focusHighlightLabel", |
| IDS_SETTINGS_ACCESSIBILITY_FOCUS_HIGHLIGHT_DESCRIPTION}, |
| {"selectToSpeakTitle", IDS_SETTINGS_ACCESSIBILITY_SELECT_TO_SPEAK_TITLE}, |
| {"selectToSpeakDisabledDescription", |
| IDS_SETTINGS_ACCESSIBILITY_SELECT_TO_SPEAK_DISABLED_DESCRIPTION}, |
| {"selectToSpeakDescription", |
| IDS_SETTINGS_ACCESSIBILITY_SELECT_TO_SPEAK_DESCRIPTION}, |
| {"selectToSpeakDescriptionWithoutKeyboard", |
| IDS_SETTINGS_ACCESSIBILITY_SELECT_TO_SPEAK_DESCRIPTION_WITHOUT_KEYBOARD}, |
| {"selectToSpeakOptionsLabel", |
| IDS_SETTINGS_ACCESSIBILITY_SELECT_TO_SPEAK_OPTIONS_LABEL}, |
| {"switchAccessLabel", |
| IDS_SETTINGS_ACCESSIBILITY_SWITCH_ACCESS_DESCRIPTION}, |
| {"switchAccessOptionsLabel", |
| IDS_SETTINGS_ACCESSIBILITY_SWITCH_ACCESS_OPTIONS_LABEL}, |
| {"manageSwitchAccessSettings", |
| IDS_SETTINGS_MANAGE_SWITCH_ACCESS_SETTINGS}, |
| {"switchAssignmentHeading", IDS_SETTINGS_SWITCH_ASSIGNMENT_HEADING}, |
| {"switchAssignOptionNone", IDS_SETTINGS_SWITCH_ASSIGN_OPTION_NONE}, |
| {"switchAssignOptionSpace", IDS_SETTINGS_SWITCH_ASSIGN_OPTION_SPACE}, |
| {"switchAssignOptionEnter", IDS_SETTINGS_SWITCH_ASSIGN_OPTION_ENTER}, |
| {"assignSelectSwitchLabel", IDS_SETTINGS_ASSIGN_SELECT_SWITCH_LABEL}, |
| {"assignNextSwitchLabel", IDS_SETTINGS_ASSIGN_NEXT_SWITCH_LABEL}, |
| {"assignPreviousSwitchLabel", IDS_SETTINGS_ASSIGN_PREVIOUS_SWITCH_LABEL}, |
| {"switchAccessAutoScanHeading", |
| IDS_SETTINGS_SWITCH_ACCESS_AUTO_SCAN_HEADING}, |
| {"switchAccessAutoScanLabel", IDS_SETTINGS_SWITCH_ACCESS_AUTO_SCAN_LABEL}, |
| {"switchAccessAutoScanSpeedLabel", |
| IDS_SETTINGS_SWITCH_ACCESS_AUTO_SCAN_SPEED_LABEL}, |
| {"switchAccessAutoScanKeyboardSpeedLabel", |
| IDS_SETTINGS_SWITCH_ACCESS_AUTO_SCAN_KEYBOARD_SPEED_LABEL}, |
| {"durationInSeconds", IDS_SETTINGS_DURATION_IN_SECONDS}, |
| {"manageAccessibilityFeatures", |
| IDS_SETTINGS_ACCESSIBILITY_MANAGE_ACCESSIBILITY_FEATURES}, |
| {"textToSpeechHeading", |
| IDS_SETTINGS_ACCESSIBILITY_TEXT_TO_SPEECH_HEADING}, |
| {"displayHeading", IDS_SETTINGS_ACCESSIBILITY_DISPLAY_HEADING}, |
| {"displaySettingsTitle", |
| IDS_SETTINGS_ACCESSIBILITY_DISPLAY_SETTINGS_TITLE}, |
| {"displaySettingsDescription", |
| IDS_SETTINGS_ACCESSIBILITY_DISPLAY_SETTINGS_DESCRIPTION}, |
| {"appearanceSettingsTitle", |
| IDS_SETTINGS_ACCESSIBILITY_APPEARANCE_SETTINGS_TITLE}, |
| {"appearanceSettingsDescription", |
| IDS_SETTINGS_ACCESSIBILITY_APPEARANCE_SETTINGS_DESCRIPTION}, |
| {"keyboardAndTextInputHeading", |
| IDS_SETTINGS_ACCESSIBILITY_KEYBOARD_AND_TEXT_INPUT_HEADING}, |
| {"keyboardSettingsTitle", |
| IDS_SETTINGS_ACCESSIBILITY_KEYBOARD_SETTINGS_TITLE}, |
| {"keyboardSettingsDescription", |
| IDS_SETTINGS_ACCESSIBILITY_KEYBOARD_SETTINGS_DESCRIPTION}, |
| {"mouseAndTouchpadHeading", |
| IDS_SETTINGS_ACCESSIBILITY_MOUSE_AND_TOUCHPAD_HEADING}, |
| {"mouseSettingsTitle", IDS_SETTINGS_ACCESSIBILITY_MOUSE_SETTINGS_TITLE}, |
| {"mouseSettingsDescription", |
| IDS_SETTINGS_ACCESSIBILITY_MOUSE_SETTINGS_DESCRIPTION}, |
| {"audioAndCaptionsHeading", |
| IDS_SETTINGS_ACCESSIBILITY_AUDIO_AND_CAPTIONS_HEADING}, |
| {"additionalFeaturesTitle", |
| IDS_SETTINGS_ACCESSIBILITY_ADDITIONAL_FEATURES_TITLE}, |
| {"manageTtsSettings", IDS_SETTINGS_MANAGE_TTS_SETTINGS}, |
| {"ttsSettingsLinkDescription", IDS_SETTINGS_TTS_LINK_DESCRIPTION}, |
| {"textToSpeechVoices", IDS_SETTINGS_TEXT_TO_SPEECH_VOICES}, |
| {"textToSpeechNoVoicesMessage", |
| IDS_SETTINGS_TEXT_TO_SPEECH_NO_VOICES_MESSAGE}, |
| {"textToSpeechMoreLanguages", IDS_SETTINGS_TEXT_TO_SPEECH_MORE_LANGUAGES}, |
| {"textToSpeechProperties", IDS_SETTINGS_TEXT_TO_SPEECH_PROPERTIES}, |
| {"textToSpeechRate", IDS_SETTINGS_TEXT_TO_SPEECH_RATE}, |
| {"textToSpeechRateMinimumLabel", |
| IDS_SETTINGS_TEXT_TO_SPEECH_RATE_MINIMUM_LABEL}, |
| {"textToSpeechRateMaximumLabel", |
| IDS_SETTINGS_TEXT_TO_SPEECH_RATE_MAXIMUM_LABEL}, |
| {"textToSpeechPitch", IDS_SETTINGS_TEXT_TO_SPEECH_PITCH}, |
| {"textToSpeechPitchMinimumLabel", |
| IDS_SETTINGS_TEXT_TO_SPEECH_PITCH_MINIMUM_LABEL}, |
| {"textToSpeechPitchMaximumLabel", |
| IDS_SETTINGS_TEXT_TO_SPEECH_PITCH_MAXIMUM_LABEL}, |
| {"textToSpeechVolume", IDS_SETTINGS_TEXT_TO_SPEECH_VOLUME}, |
| {"textToSpeechVolumeMinimumLabel", |
| IDS_SETTINGS_TEXT_TO_SPEECH_VOLUME_MINIMUM_LABEL}, |
| {"textToSpeechVolumeMaximumLabel", |
| IDS_SETTINGS_TEXT_TO_SPEECH_VOLUME_MAXIMUM_LABEL}, |
| {"percentage", IDS_SETTINGS_PERCENTAGE}, |
| {"defaultPercentage", IDS_SETTINGS_DEFAULT_PERCENTAGE}, |
| {"textToSpeechPreviewHeading", |
| IDS_SETTINGS_TEXT_TO_SPEECH_PREVIEW_HEADING}, |
| {"textToSpeechPreviewInputLabel", |
| IDS_SETTINGS_TEXT_TO_SPEECH_PREVIEW_INPUT_LABEL}, |
| {"textToSpeechPreviewInput", IDS_SETTINGS_TEXT_TO_SPEECH_PREVIEW_INPUT}, |
| {"textToSpeechPreviewVoice", IDS_SETTINGS_TEXT_TO_SPEECH_PREVIEW_VOICE}, |
| {"textToSpeechPreviewPlay", IDS_SETTINGS_TEXT_TO_SPEECH_PREVIEW_PLAY}, |
| {"textToSpeechEngines", IDS_SETTINGS_TEXT_TO_SPEECH_ENGINES}, |
| {"tabletModeShelfNavigationButtonsSettingLabel", |
| IDS_SETTINGS_A11Y_TABLET_MODE_SHELF_BUTTONS_LABEL}, |
| {"tabletModeShelfNavigationButtonsSettingDescription", |
| IDS_SETTINGS_A11Y_TABLET_MODE_SHELF_BUTTONS_DESCRIPTION}, |
| }; |
| AddLocalizedStringsBulk(html_source, kLocalizedStrings); |
| |
| html_source->AddString("accountManagerLearnMoreUrl", |
| chrome::kAccountManagerLearnMoreURL); |
| html_source->AddString("a11yLearnMoreUrl", |
| chrome::kChromeAccessibilityHelpURL); |
| |
| base::CommandLine& cmd = *base::CommandLine::ForCurrentProcess(); |
| html_source->AddBoolean( |
| "showExperimentalAccessibilitySwitchAccess", |
| cmd.HasSwitch(::switches::kEnableExperimentalAccessibilitySwitchAccess)); |
| |
| html_source->AddBoolean( |
| "showExperimentalAccessibilitySwitchAccessImprovedTextInput", |
| cmd.HasSwitch( |
| ::switches::kEnableExperimentalAccessibilitySwitchAccessText)); |
| |
| html_source->AddBoolean("showExperimentalA11yLabels", |
| base::FeatureList::IsEnabled( |
| ::features::kExperimentalAccessibilityLabels)); |
| |
| html_source->AddBoolean( |
| "showTabletModeShelfNavigationButtonsSettings", |
| ash::features::IsHideShelfControlsInTabletModeEnabled()); |
| |
| html_source->AddString("tabletModeShelfNavigationButtonsLearnMoreUrl", |
| chrome::kTabletModeGesturesLearnMoreURL); |
| |
| html_source->AddBoolean("enableLiveCaption", |
| base::FeatureList::IsEnabled(media::kLiveCaption)); |
| |
| ::settings::AddCaptionSubpageStrings(html_source); |
| } |
| |
| void AddLanguagesStrings(content::WebUIDataSource* html_source) { |
| static constexpr webui::LocalizedString kLocalizedStrings[] = { |
| {"orderLanguagesInstructions", |
| IDS_SETTINGS_LANGUAGES_LANGUAGES_LIST_ORDERING_INSTRUCTIONS}, |
| {"osLanguagesPageTitle", IDS_OS_SETTINGS_LANGUAGES_AND_INPUT_PAGE_TITLE}, |
| {"osLanguagesListTitle", IDS_OS_SETTINGS_LANGUAGES_LIST_TITLE}, |
| {"inputMethodsListTitle", |
| IDS_SETTINGS_LANGUAGES_INPUT_METHODS_LIST_TITLE}, |
| {"inputMethodEnabled", IDS_SETTINGS_LANGUAGES_INPUT_METHOD_ENABLED}, |
| {"inputMethodsExpandA11yLabel", |
| IDS_SETTINGS_LANGUAGES_INPUT_METHODS_EXPAND_ACCESSIBILITY_LABEL}, |
| {"inputMethodsManagedbyPolicy", |
| IDS_SETTINGS_LANGUAGES_INPUT_METHODS_MANAGED_BY_POLICY}, |
| {"manageInputMethods", IDS_SETTINGS_LANGUAGES_INPUT_METHODS_MANAGE}, |
| {"manageInputMethodsPageTitle", |
| IDS_SETTINGS_LANGUAGES_MANAGE_INPUT_METHODS_TITLE}, |
| {"showImeMenu", IDS_SETTINGS_LANGUAGES_SHOW_IME_MENU}, |
| {"displayLanguageRestart", |
| IDS_SETTINGS_LANGUAGES_RESTART_TO_DISPLAY_LANGUAGE}, |
| {"moveDown", IDS_SETTINGS_LANGUAGES_LANGUAGES_LIST_MOVE_DOWN}, |
| {"displayInThisLanguage", |
| IDS_SETTINGS_LANGUAGES_DISPLAY_IN_THIS_LANGUAGE}, |
| {"searchLanguages", IDS_SETTINGS_LANGUAGE_SEARCH}, |
| {"addLanguagesDialogTitle", |
| IDS_SETTINGS_LANGUAGES_MANAGE_LANGUAGES_TITLE}, |
| {"moveToTop", IDS_SETTINGS_LANGUAGES_LANGUAGES_LIST_MOVE_TO_TOP}, |
| {"isDisplayedInThisLanguage", |
| IDS_SETTINGS_LANGUAGES_IS_DISPLAYED_IN_THIS_LANGUAGE}, |
| {"removeLanguage", IDS_SETTINGS_LANGUAGES_LANGUAGES_LIST_REMOVE}, |
| {"addLanguages", IDS_SETTINGS_LANGUAGES_LANGUAGES_ADD}, |
| {"moveUp", IDS_SETTINGS_LANGUAGES_LANGUAGES_LIST_MOVE_UP}, |
| }; |
| AddLocalizedStringsBulk(html_source, kLocalizedStrings); |
| |
| html_source->AddString( |
| "languagesLearnMoreURL", |
| base::ASCIIToUTF16(chrome::kLanguageSettingsLearnMoreUrl)); |
| } |
| |
| void AddPersonalizationStrings(content::WebUIDataSource* html_source) { |
| static constexpr webui::LocalizedString kLocalizedStrings[] = { |
| {"ambientModeTitle", IDS_OS_SETTINGS_AMBIENT_MODE_TITLE}, |
| {"ambientModeEnabled", IDS_OS_SETTINGS_AMBIENT_MODE_ENABLED}, |
| {"ambientModeDisabled", IDS_OS_SETTINGS_AMBIENT_MODE_DISABLED}, |
| {"ambientModeOn", IDS_OS_SETTINGS_AMBIENT_MODE_ON}, |
| {"ambientModeOff", IDS_OS_SETTINGS_AMBIENT_MODE_OFF}, |
| {"ambientModeTopicSourceTitle", |
| IDS_OS_SETTINGS_AMBIENT_MODE_TOPIC_SOURCE_TITLE}, |
| {"ambientModeTopicSourceGooglePhotos", |
| IDS_OS_SETTINGS_AMBIENT_MODE_TOPIC_SOURCE_GOOGLE_PHOTOS}, |
| {"ambientModeTopicSourceArtGallery", |
| IDS_OS_SETTINGS_AMBIENT_MODE_TOPIC_SOURCE_ART_GALLERY}, |
| {"changePictureTitle", IDS_OS_SETTINGS_CHANGE_PICTURE_TITLE}, |
| {"openWallpaperApp", IDS_OS_SETTINGS_OPEN_WALLPAPER_APP}, |
| {"personalizationPageTitle", IDS_OS_SETTINGS_PERSONALIZATION}, |
| {"setWallpaper", IDS_OS_SETTINGS_SET_WALLPAPER}, |
| {"takePhoto", IDS_SETTINGS_CHANGE_PICTURE_TAKE_PHOTO}, |
| {"captureVideo", IDS_SETTINGS_CHANGE_PICTURE_CAPTURE_VIDEO}, |
| {"discardPhoto", IDS_SETTINGS_CHANGE_PICTURE_DISCARD_PHOTO}, |
| {"previewAltText", IDS_SETTINGS_CHANGE_PICTURE_PREVIEW_ALT}, |
| {"switchModeToVideo", IDS_SETTINGS_CHANGE_PICTURE_SWITCH_MODE_TO_VIDEO}, |
| {"profilePhoto", IDS_SETTINGS_CHANGE_PICTURE_PROFILE_PHOTO}, |
| {"changePicturePageDescription", IDS_SETTINGS_CHANGE_PICTURE_DIALOG_TEXT}, |
| {"switchModeToCamera", IDS_SETTINGS_CHANGE_PICTURE_SWITCH_MODE_TO_CAMERA}, |
| {"chooseFile", IDS_SETTINGS_CHANGE_PICTURE_CHOOSE_FILE}, |
| {"oldPhoto", IDS_SETTINGS_CHANGE_PICTURE_OLD_PHOTO}, |
| {"oldVideo", IDS_SETTINGS_CHANGE_PICTURE_OLD_VIDEO}, |
| {"authorCreditText", IDS_SETTINGS_CHANGE_PICTURE_AUTHOR_CREDIT_TEXT}, |
| {"photoCaptureAccessibleText", |
| IDS_SETTINGS_PHOTO_CAPTURE_ACCESSIBLE_TEXT}, |
| {"photoDiscardAccessibleText", |
| IDS_SETTINGS_PHOTO_DISCARD_ACCESSIBLE_TEXT}, |
| {"photoModeAccessibleText", IDS_SETTINGS_PHOTO_MODE_ACCESSIBLE_TEXT}, |
| {"videoModeAccessibleText", IDS_SETTINGS_VIDEO_MODE_ACCESSIBLE_TEXT}, |
| }; |
| AddLocalizedStringsBulk(html_source, kLocalizedStrings); |
| |
| html_source->AddBoolean( |
| "changePictureVideoModeEnabled", |
| base::FeatureList::IsEnabled(::features::kChangePictureVideoMode)); |
| html_source->AddBoolean("isAmbientModeEnabled", |
| chromeos::features::IsAmbientModeEnabled()); |
| } |
| |
| void AddFingerprintListStrings(content::WebUIDataSource* html_source) { |
| static constexpr webui::LocalizedString kLocalizedStrings[] = { |
| {"lockScreenAddFingerprint", |
| IDS_SETTINGS_PEOPLE_LOCK_SCREEN_ADD_FINGERPRINT_BUTTON}, |
| {"lockScreenRegisteredFingerprints", |
| IDS_SETTINGS_PEOPLE_LOCK_SCREEN_REGISTERED_FINGERPRINTS_LABEL}, |
| {"lockScreenFingerprintWarning", |
| IDS_SETTINGS_PEOPLE_LOCK_SCREEN_FINGERPRINT_LESS_SECURE}, |
| }; |
| AddLocalizedStringsBulk(html_source, kLocalizedStrings); |
| } |
| |
| void AddSetupPinDialogStrings(content::WebUIDataSource* html_source) { |
| static constexpr webui::LocalizedString kLocalizedStrings[] = { |
| {"configurePinChoosePinTitle", |
| IDS_SETTINGS_PEOPLE_CONFIGURE_PIN_CHOOSE_PIN_TITLE}, |
| {"configurePinConfirmPinTitle", |
| IDS_SETTINGS_PEOPLE_CONFIGURE_PIN_CONFIRM_PIN_TITLE}, |
| {"configurePinMismatched", IDS_SETTINGS_PEOPLE_CONFIGURE_PIN_MISMATCHED}, |
| {"configurePinTooShort", IDS_SETTINGS_PEOPLE_CONFIGURE_PIN_TOO_SHORT}, |
| {"configurePinTooLong", IDS_SETTINGS_PEOPLE_CONFIGURE_PIN_TOO_LONG}, |
| {"configurePinWeakPin", IDS_SETTINGS_PEOPLE_CONFIGURE_PIN_WEAK_PIN}, |
| {"pinKeyboardPlaceholderPin", IDS_PIN_KEYBOARD_HINT_TEXT_PIN}, |
| {"pinKeyboardPlaceholderPinPassword", |
| IDS_PIN_KEYBOARD_HINT_TEXT_PIN_PASSWORD}, |
| {"pinKeyboardDeleteAccessibleName", |
| IDS_PIN_KEYBOARD_DELETE_ACCESSIBLE_NAME}, |
| }; |
| AddLocalizedStringsBulk(html_source, kLocalizedStrings); |
| |
| // Format numbers to be used on the pin keyboard. |
| for (int j = 0; j <= 9; j++) { |
| html_source->AddString("pinKeyboard" + base::NumberToString(j), |
| base::FormatNumber(int64_t{j})); |
| } |
| } |
| |
| void AddSetupFingerprintDialogStrings(content::WebUIDataSource* html_source) { |
| static constexpr webui::LocalizedString kLocalizedStrings[] = { |
| {"configureFingerprintTitle", IDS_SETTINGS_ADD_FINGERPRINT_DIALOG_TITLE}, |
| {"configureFingerprintAddAnotherButton", |
| IDS_SETTINGS_ADD_FINGERPRINT_DIALOG_ADD_ANOTHER_BUTTON}, |
| {"configureFingerprintInstructionReadyStep", |
| IDS_SETTINGS_ADD_FINGERPRINT_DIALOG_INSTRUCTION_READY}, |
| {"configureFingerprintLiftFinger", |
| IDS_SETTINGS_ADD_FINGERPRINT_DIALOG_LIFT_FINGER}, |
| {"configureFingerprintTryAgain", |
| IDS_SETTINGS_ADD_FINGERPRINT_DIALOG_TRY_AGAIN}, |
| {"configureFingerprintImmobile", |
| IDS_SETTINGS_ADD_FINGERPRINT_DIALOG_FINGER_IMMOBILE}, |
| }; |
| AddLocalizedStringsBulk(html_source, kLocalizedStrings); |
| } |
| |
| void AddFingerprintStrings(content::WebUIDataSource* html_source) { |
| int instruction_id, aria_label_id; |
| using FingerprintLocation = chromeos::quick_unlock::FingerprintLocation; |
| switch (chromeos::quick_unlock::GetFingerprintLocation()) { |
| case FingerprintLocation::TABLET_POWER_BUTTON: |
| instruction_id = |
| IDS_SETTINGS_ADD_FINGERPRINT_DIALOG_INSTRUCTION_LOCATE_SCANNER_POWER_BUTTON; |
| aria_label_id = |
| IDS_SETTINGS_ADD_FINGERPRINT_DIALOG_INSTRUCTION_LOCATE_SCANNER_POWER_BUTTON_ARIA_LABEL; |
| break; |
| case FingerprintLocation::KEYBOARD_BOTTOM_LEFT: |
| instruction_id = |
| IDS_SETTINGS_ADD_FINGERPRINT_DIALOG_INSTRUCTION_LOCATE_SCANNER_KEYBOARD; |
| aria_label_id = |
| IDS_SETTINGS_ADD_FINGERPRINT_DIALOG_INSTRUCTION_LOCATE_SCANNER_KEYBOARD_BOTTOM_LEFT_ARIA_LABEL; |
| break; |
| case FingerprintLocation::KEYBOARD_BOTTOM_RIGHT: |
| instruction_id = |
| IDS_SETTINGS_ADD_FINGERPRINT_DIALOG_INSTRUCTION_LOCATE_SCANNER_KEYBOARD; |
| aria_label_id = |
| IDS_SETTINGS_ADD_FINGERPRINT_DIALOG_INSTRUCTION_LOCATE_SCANNER_KEYBOARD_BOTTOM_RIGHT_ARIA_LABEL; |
| break; |
| case FingerprintLocation::KEYBOARD_TOP_RIGHT: |
| instruction_id = |
| IDS_SETTINGS_ADD_FINGERPRINT_DIALOG_INSTRUCTION_LOCATE_SCANNER_KEYBOARD; |
| aria_label_id = |
| IDS_SETTINGS_ADD_FINGERPRINT_DIALOG_INSTRUCTION_LOCATE_SCANNER_KEYBOARD_TOP_RIGHT_ARIA_LABEL; |
| break; |
| } |
| html_source->AddLocalizedString( |
| "configureFingerprintInstructionLocateScannerStep", instruction_id); |
| html_source->AddLocalizedString("configureFingerprintScannerStepAriaLabel", |
| aria_label_id); |
| } |
| |
| void AddAccountManagerPageStrings(content::WebUIDataSource* html_source) { |
| static constexpr webui::LocalizedString kLocalizedStrings[] = { |
| {"accountManagerDescription", IDS_SETTINGS_ACCOUNT_MANAGER_DESCRIPTION}, |
| {"accountManagerChildDescription", |
| IDS_SETTINGS_ACCOUNT_MANAGER_CHILD_DESCRIPTION}, |
| {"accountListHeader", IDS_SETTINGS_ACCOUNT_MANAGER_LIST_HEADER}, |
| {"accountManagerPrimaryAccountTooltip", |
| IDS_SETTINGS_ACCOUNT_MANAGER_PRIMARY_ACCOUNT_TOOLTIP}, |
| {"accountManagerEducationAccountLabel", |
| IDS_SETTINGS_ACCOUNT_MANAGER_EDUCATION_ACCOUNT}, |
| {"removeAccountLabel", IDS_SETTINGS_ACCOUNT_MANAGER_REMOVE_ACCOUNT_LABEL}, |
| {"addAccountLabel", IDS_SETTINGS_ACCOUNT_MANAGER_ADD_ACCOUNT_LABEL}, |
| {"accountManagerSecondaryAccountsDisabledText", |
| IDS_SETTINGS_ACCOUNT_MANAGER_SECONDARY_ACCOUNTS_DISABLED_TEXT}, |
| {"accountManagerSecondaryAccountsDisabledChildText", |
| IDS_SETTINGS_ACCOUNT_MANAGER_SECONDARY_ACCOUNTS_DISABLED_CHILD_TEXT}, |
| {"accountManagerSignedOutAccountName", |
| IDS_SETTINGS_ACCOUNT_MANAGER_SIGNED_OUT_ACCOUNT_PLACEHOLDER}, |
| {"accountManagerUnmigratedAccountName", |
| IDS_SETTINGS_ACCOUNT_MANAGER_UNMIGRATED_ACCOUNT_PLACEHOLDER}, |
| {"accountManagerMigrationLabel", |
| IDS_SETTINGS_ACCOUNT_MANAGER_MIGRATION_LABEL}, |
| {"accountManagerReauthenticationLabel", |
| IDS_SETTINGS_ACCOUNT_MANAGER_REAUTHENTICATION_LABEL}, |
| {"accountManagerMigrationTooltip", |
| IDS_SETTINGS_ACCOUNT_MANAGER_MIGRATION_TOOLTIP}, |
| {"accountManagerReauthenticationTooltip", |
| IDS_SETTINGS_ACCOUNT_MANAGER_REAUTHENTICATION_TOOLTIP}, |
| {"accountManagerMoreActionsTooltip", |
| IDS_SETTINGS_ACCOUNT_MANAGER_MORE_ACTIONS_TOOLTIP}, |
| {"accountManagerManagedLabel", |
| IDS_SETTINGS_ACCOUNT_MANAGER_MANAGEMENT_STATUS_MANAGED_ACCOUNT}, |
| {"accountManagerUnmanagedLabel", |
| IDS_SETTINGS_ACCOUNT_MANAGER_MANAGEMENT_STATUS_UNMANAGED_ACCOUNT}, |
| }; |
| AddLocalizedStringsBulk(html_source, kLocalizedStrings); |
| } |
| |
| void AddSyncControlsStrings(content::WebUIDataSource* html_source) { |
| static constexpr webui::LocalizedString kLocalizedStrings[] = { |
| {"syncEverythingCheckboxLabel", |
| IDS_SETTINGS_SYNC_EVERYTHING_CHECKBOX_LABEL}, |
| {"wallpaperCheckboxLabel", IDS_OS_SETTINGS_WALLPAPER_CHECKBOX_LABEL}, |
| {"osSyncTurnOff", IDS_OS_SETTINGS_SYNC_TURN_OFF}, |
| {"osSyncSettingsCheckboxLabel", |
| IDS_OS_SETTINGS_SYNC_SETTINGS_CHECKBOX_LABEL}, |
| {"wifiConfigurationsCheckboxLabel", |
| IDS_SETTINGS_WIFI_CONFIGURATIONS_CHECKBOX_LABEL}, |
| {"osSyncAppsCheckboxLabel", IDS_OS_SETTINGS_SYNC_APPS_CHECKBOX_LABEL}, |
| {"osSyncTurnOn", IDS_OS_SETTINGS_SYNC_TURN_ON}, |
| {"osSyncFeatureLabel", IDS_OS_SETTINGS_SYNC_FEATURE_LABEL}, |
| }; |
| AddLocalizedStringsBulk(html_source, kLocalizedStrings); |
| |
| html_source->AddString( |
| "browserSettingsSyncSetupUrl", |
| base::StrCat({chrome::kChromeUISettingsURL, chrome::kSyncSetupSubPage})); |
| } |
| |
| void AddCrostiniStrings(content::WebUIDataSource* html_source, |
| Profile* profile) { |
| static constexpr webui::LocalizedString kLocalizedStrings[] = { |
| {"crostiniPageTitle", IDS_SETTINGS_CROSTINI_TITLE}, |
| {"crostiniPageLabel", IDS_SETTINGS_CROSTINI_LABEL}, |
| {"crostiniEnable", IDS_SETTINGS_TURN_ON}, |
| {"crostiniSharedPaths", IDS_SETTINGS_CROSTINI_SHARED_PATHS}, |
| {"crostiniSharedPathsListHeading", |
| IDS_SETTINGS_CROSTINI_SHARED_PATHS_LIST_HEADING}, |
| {"crostiniSharedPathsInstructionsAdd", |
| IDS_SETTINGS_CROSTINI_SHARED_PATHS_INSTRUCTIONS_ADD}, |
| {"crostiniSharedPathsInstructionsRemove", |
| IDS_SETTINGS_CROSTINI_SHARED_PATHS_INSTRUCTIONS_REMOVE}, |
| {"crostiniSharedPathsRemoveSharing", |
| IDS_SETTINGS_CROSTINI_SHARED_PATHS_REMOVE_SHARING}, |
| {"crostiniSharedPathsRemoveFailureDialogMessage", |
| IDS_SETTINGS_CROSTINI_SHARED_PATHS_REMOVE_FAILURE_DIALOG_MESSAGE}, |
| {"crostiniSharedPathsRemoveFailureDialogTitle", |
| IDS_SETTINGS_CROSTINI_SHARED_PATHS_REMOVE_FAILURE_DIALOG_TITLE}, |
| {"crostiniSharedPathsRemoveFailureTryAgain", |
| IDS_SETTINGS_CROSTINI_SHARED_PATHS_REMOVE_FAILURE_TRY_AGAIN}, |
| {"crostiniSharedPathsListEmptyMessage", |
| IDS_SETTINGS_CROSTINI_SHARED_PATHS_LIST_EMPTY_MESSAGE}, |
| {"crostiniExportImportTitle", IDS_SETTINGS_CROSTINI_EXPORT_IMPORT_TITLE}, |
| {"crostiniExport", IDS_SETTINGS_CROSTINI_EXPORT}, |
| {"crostiniExportLabel", IDS_SETTINGS_CROSTINI_EXPORT_LABEL}, |
| {"crostiniImport", IDS_SETTINGS_CROSTINI_IMPORT}, |
| {"crostiniImportLabel", IDS_SETTINGS_CROSTINI_IMPORT_LABEL}, |
| {"crostiniImportConfirmationDialogTitle", |
| IDS_SETTINGS_CROSTINI_CONFIRM_IMPORT_DIALOG_WINDOW_TITLE}, |
| {"crostiniImportConfirmationDialogMessage", |
| IDS_SETTINGS_CROSTINI_CONFIRM_IMPORT_DIALOG_WINDOW_MESSAGE}, |
| {"crostiniImportConfirmationDialogConfirmationButton", |
| IDS_SETTINGS_CROSTINI_IMPORT}, |
| {"crostiniRemoveButton", IDS_SETTINGS_CROSTINI_REMOVE_BUTTON}, |
| {"crostiniSharedUsbDevicesLabel", |
| IDS_SETTINGS_CROSTINI_SHARED_USB_DEVICES_LABEL}, |
| {"crostiniSharedUsbDevicesDescription", |
| IDS_SETTINGS_CROSTINI_SHARED_USB_DEVICES_DESCRIPTION}, |
| {"crostiniSharedUsbDevicesExtraDescription", |
| IDS_SETTINGS_CROSTINI_SHARED_USB_DEVICES_EXTRA_DESCRIPTION}, |
| {"crostiniSharedUsbDevicesListEmptyMessage", |
| IDS_SETTINGS_CROSTINI_SHARED_USB_DEVICES_LIST_EMPTY_MESSAGE}, |
| {"crostiniArcAdbTitle", IDS_SETTINGS_CROSTINI_ARC_ADB_TITLE}, |
| {"crostiniArcAdbDescription", IDS_SETTINGS_CROSTINI_ARC_ADB_DESCRIPTION}, |
| {"crostiniArcAdbLabel", IDS_SETTINGS_CROSTINI_ARC_ADB_LABEL}, |
| {"crostiniArcAdbRestartButton", |
| IDS_SETTINGS_CROSTINI_ARC_ADB_RESTART_BUTTON}, |
| {"crostiniArcAdbConfirmationTitleEnable", |
| IDS_SETTINGS_CROSTINI_ARC_ADB_CONFIRMATION_TITLE_ENABLE}, |
| {"crostiniArcAdbConfirmationTitleDisable", |
| IDS_SETTINGS_CROSTINI_ARC_ADB_CONFIRMATION_TITLE_DISABLE}, |
| {"crostiniContainerUpgrade", |
| IDS_SETTINGS_CROSTINI_CONTAINER_UPGRADE_MESSAGE}, |
| {"crostiniContainerUpgradeSubtext", |
| IDS_SETTINGS_CROSTINI_CONTAINER_UPGRADE_SUBTEXT}, |
| {"crostiniContainerUpgradeButton", |
| IDS_SETTINGS_CROSTINI_CONTAINER_UPGRADE_BUTTON}, |
| {"crostiniPortForwarding", IDS_SETTINGS_CROSTINI_PORT_FORWARDING}, |
| {"crostiniPortForwardingDescription", |
| IDS_SETTINGS_CROSTINI_PORT_FORWARDING_DESCRIPTION}, |
| {"crostiniPortForwardingNoPorts", |
| IDS_SETTINGS_CROSTINI_PORT_FORWARDING_NO_PORTS}, |
| {"crostiniPortForwardingTableTitle", |
| IDS_SETTINGS_CROSTINI_PORT_FORWARDING_TABLE_TITLE}, |
| {"crostiniPortForwardingListPortNumber", |
| IDS_SETTINGS_CROSTINI_PORT_FORWARDING_LIST_PORT_NUMBER}, |
| {"crostiniPortForwardingListLabel", |
| IDS_SETTINGS_CROSTINI_PORT_FORWARDING_LIST_LABEL}, |
| {"crostiniPortForwardingAddPortButton", |
| IDS_SETTINGS_CROSTINI_PORT_FORWARDING_ADD_PORT_BUTTON}, |
| {"crostiniPortForwardingAddPortButtonDescription", |
| IDS_SETTINGS_CROSTINI_PORT_FORWARDING_ADD_PORT_BUTTON_DESCRIPTION}, |
| {"crostiniPortForwardingAddPortDialogTitle", |
| IDS_SETTINGS_CROSTINI_PORT_FORWARDING_ADD_PORT_DIALOG_TITLE}, |
| {"crostiniPortForwardingAddPortDialogLabel", |
| IDS_SETTINGS_CROSTINI_PORT_FORWARDING_ADD_PORT_DIALOG_LABEL}, |
| {"crostiniPortForwardingTCP", IDS_SETTINGS_CROSTINI_PORT_FORWARDING_TCP}, |
| {"crostiniPortForwardingUDP", IDS_SETTINGS_CROSTINI_PORT_FORWARDING_UDP}, |
| {"crostiniPortForwardingAddError", |
| IDS_SETTINGS_CROSTINI_PORT_FORWARDING_ADD_ERROR}, |
| {"crostiniDiskResizeTitle", IDS_SETTINGS_CROSTINI_DISK_RESIZE_TITLE}, |
| {"crostiniDiskResizeShowButton", |
| IDS_SETTINGS_CROSTINI_DISK_RESIZE_SHOW_BUTTON}, |
| {"crostiniDiskResizeLabel", IDS_SETTINGS_CROSTINI_DISK_RESIZE_LABEL}, |
| {"crostiniDiskResizeUnsupported", |
| IDS_SETTINGS_CROSTINI_DISK_RESIZE_UNSUPPORTED}, |
| {"crostiniDiskResizeLoading", IDS_SETTINGS_CROSTINI_DISK_RESIZE_LOADING}, |
| {"crostiniDiskResizeError", IDS_SETTINGS_CROSTINI_DISK_RESIZE_ERROR}, |
| {"crostiniDiskResizeErrorRetry", |
| IDS_SETTINGS_CROSTINI_DISK_RESIZE_ERROR_RETRY}, |
| {"crostiniDiskResizeCancel", IDS_SETTINGS_CROSTINI_DISK_RESIZE_CANCEL}, |
| {"crostiniDiskResizeGoButton", |
| IDS_SETTINGS_CROSTINI_DISK_RESIZE_GO_BUTTON}, |
| {"crostiniDiskResizeInProgress", |
| IDS_SETTINGS_CROSTINI_DISK_RESIZE_IN_PROGRESS}, |
| {"crostiniDiskResizeResizingError", |
| IDS_SETTINGS_CROSTINI_DISK_RESIZE_RESIZING_ERROR}, |
| {"crostiniDiskResizeDone", IDS_SETTINGS_CROSTINI_DISK_RESIZE_DONE}, |
| {"crostiniMicTitle", IDS_SETTINGS_CROSTINI_MIC_TITLE}, |
| {"crostiniMicDialogTitle", IDS_SETTINGS_CROSTINI_MIC_DIALOG_TITLE}, |
| {"crostiniMicDialogLabel", IDS_SETTINGS_CROSTINI_MIC_DIALOG_LABEL}, |
| }; |
| AddLocalizedStringsBulk(html_source, kLocalizedStrings); |
| html_source->AddString( |
| "crostiniSubtext", |
| l10n_util::GetStringFUTF16( |
| IDS_SETTINGS_CROSTINI_SUBTEXT, ui::GetChromeOSDeviceName(), |
| GetHelpUrlWithBoard(chrome::kLinuxAppsLearnMoreURL))); |
| html_source->AddString( |
| "crostiniArcAdbPowerwashRequiredSublabel", |
| l10n_util::GetStringFUTF16( |
| IDS_SETTINGS_CROSTINI_ARC_ADB_POWERWASH_REQUIRED_SUBLABEL, |
| base::ASCIIToUTF16(chrome::kArcAdbSideloadingLearnMoreURL))); |
| html_source->AddString("crostiniRemove", l10n_util::GetStringFUTF16( |
| IDS_SETTINGS_CROSTINI_REMOVE, |
| ui::GetChromeOSDeviceName())); |
| html_source->AddString( |
| "crostiniArcAdbConfirmationMessageEnable", |
| l10n_util::GetStringFUTF16( |
| IDS_SETTINGS_CROSTINI_ARC_ADB_CONFIRMATION_MESSAGE_ENABLE, |
| ui::GetChromeOSDeviceName())); |
| html_source->AddString( |
| "crostiniArcAdbConfirmationMessageDisable", |
| l10n_util::GetStringFUTF16( |
| IDS_SETTINGS_CROSTINI_ARC_ADB_CONFIRMATION_MESSAGE_DISABLE, |
| ui::GetChromeOSDeviceName())); |
| html_source->AddString( |
| "crostiniSharedPathsInstructionsLocate", |
| l10n_util::GetStringFUTF16( |
| IDS_SETTINGS_CROSTINI_SHARED_PATHS_INSTRUCTIONS_LOCATE, |
| base::ASCIIToUTF16( |
| crostini::ContainerChromeOSBaseDirectory().value()))); |
| html_source->AddBoolean( |
| "showCrostiniExportImport", |
| crostini::CrostiniFeatures::Get()->IsExportImportUIAllowed(profile)); |
| html_source->AddBoolean("arcAdbSideloadingSupported", |
| base::FeatureList::IsEnabled( |
| chromeos::features::kArcAdbSideloadingFeature)); |
| html_source->AddBoolean("showCrostiniPortForwarding", |
| base::FeatureList::IsEnabled( |
| chromeos::features::kCrostiniPortForwarding)); |
| html_source->AddBoolean("isOwnerProfile", |
| chromeos::ProfileHelper::IsOwnerProfile(profile)); |
| html_source->AddBoolean("isEnterpriseManaged", |
| IsDeviceManaged() || IsProfileManaged(profile)); |
| html_source->AddBoolean("showCrostiniContainerUpgrade", |
| crostini::ShouldAllowContainerUpgrade(profile)); |
| html_source->AddBoolean( |
| "showCrostiniDiskResize", |
| base::FeatureList::IsEnabled(chromeos::features::kCrostiniDiskResizing)); |
| html_source->AddBoolean("showCrostiniMic", |
| base::FeatureList::IsEnabled( |
| chromeos::features::kCrostiniShowMicSetting)); |
| } |
| |
| void AddPluginVmStrings(content::WebUIDataSource* html_source, |
| Profile* profile) { |
| static constexpr webui::LocalizedString kLocalizedStrings[] = { |
| {"pluginVmPageTitle", IDS_SETTINGS_PLUGIN_VM_PAGE_TITLE}, |
| {"pluginVmPageLabel", IDS_SETTINGS_PLUGIN_VM_PAGE_LABEL}, |
| {"pluginVmPageSubtext", IDS_SETTINGS_PLUGIN_VM_PAGE_SUBTEXT}, |
| {"pluginVmPageEnable", IDS_SETTINGS_TURN_ON}, |
| {"pluginVmPrinterAccess", IDS_SETTINGS_PLUGIN_VM_PRINTER_ACCESS}, |
| {"pluginVmSharedPaths", IDS_SETTINGS_PLUGIN_VM_SHARED_PATHS}, |
| {"pluginVmSharedPathsListHeading", |
| IDS_SETTINGS_PLUGIN_VM_SHARED_PATHS_LIST_HEADING}, |
| {"pluginVmSharedPathsInstructionsAdd", |
| IDS_SETTINGS_PLUGIN_VM_SHARED_PATHS_INSTRUCTIONS_ADD}, |
| {"pluginVmSharedPathsInstructionsRemove", |
| IDS_SETTINGS_PLUGIN_VM_SHARED_PATHS_INSTRUCTIONS_REMOVE}, |
| {"pluginVmSharedPathsRemoveSharing", |
| IDS_SETTINGS_PLUGIN_VM_SHARED_PATHS_REMOVE_SHARING}, |
| {"pluginVmRemove", IDS_SETTINGS_PLUGIN_VM_REMOVE_LABEL}, |
| {"pluginVmRemoveButton", IDS_SETTINGS_PLUGIN_VM_REMOVE_BUTTON}, |
| {"pluginVmRemoveConfirmationDialogMessage", |
| IDS_SETTINGS_PLUGIN_VM_CONFIRM_REMOVE_DIALOG_BODY}, |
| }; |
| AddLocalizedStringsBulk(html_source, kLocalizedStrings); |
| } |
| |
| void AddAndroidAppStrings(content::WebUIDataSource* html_source) { |
| static constexpr webui::LocalizedString kLocalizedStrings[] = { |
| {"androidAppsPageLabel", IDS_SETTINGS_ANDROID_APPS_LABEL}, |
| {"androidAppsEnable", IDS_SETTINGS_TURN_ON}, |
| {"androidAppsManageApps", IDS_SETTINGS_ANDROID_APPS_MANAGE_APPS}, |
| {"androidAppsRemove", IDS_SETTINGS_ANDROID_APPS_REMOVE}, |
| {"androidAppsRemoveButton", IDS_SETTINGS_ANDROID_APPS_REMOVE_BUTTON}, |
| {"androidAppsDisableDialogTitle", |
| IDS_SETTINGS_ANDROID_APPS_DISABLE_DIALOG_TITLE}, |
| {"androidAppsDisableDialogMessage", |
| IDS_SETTINGS_ANDROID_APPS_DISABLE_DIALOG_MESSAGE}, |
| {"androidAppsDisableDialogRemove", |
| IDS_SETTINGS_ANDROID_APPS_DISABLE_DIALOG_REMOVE}, |
| {"androidAppsManageAppLinks", IDS_SETTINGS_ANDROID_APPS_MANAGE_APP_LINKS}, |
| }; |
| AddLocalizedStringsBulk(html_source, kLocalizedStrings); |
| html_source->AddLocalizedString("androidAppsPageTitle", |
| arc::IsPlayStoreAvailable() |
| ? IDS_SETTINGS_ANDROID_APPS_TITLE |
| : IDS_SETTINGS_ANDROID_SETTINGS_TITLE); |
| html_source->AddString( |
| "androidAppsSubtext", |
| l10n_util::GetStringFUTF16( |
| IDS_SETTINGS_ANDROID_APPS_SUBTEXT, ui::GetChromeOSDeviceName(), |
| GetHelpUrlWithBoard(chrome::kAndroidAppsLearnMoreURL))); |
| } |
| |
| void AddAppsStrings(content::WebUIDataSource* html_source) { |
| static constexpr webui::LocalizedString kLocalizedStrings[] = { |
| {"appsPageTitle", IDS_SETTINGS_APPS_TITLE}, |
| {"appManagementTitle", IDS_SETTINGS_APPS_LINK_TEXT}, |
| }; |
| AddLocalizedStringsBulk(html_source, kLocalizedStrings); |
| } |
| |
| void AddAppManagementStrings(content::WebUIDataSource* html_source) { |
| static constexpr webui::LocalizedString kLocalizedStrings[] = { |
| {"appManagementAppInstalledByPolicyLabel", |
| IDS_APP_MANAGEMENT_POLICY_APP_POLICY_STRING}, |
| {"appManagementCameraPermissionLabel", IDS_APP_MANAGEMENT_CAMERA}, |
| {"appManagementContactsPermissionLabel", IDS_APP_MANAGEMENT_CONTACTS}, |
| {"appManagementLocationPermissionLabel", IDS_APP_MANAGEMENT_LOCATION}, |
| {"appManagementMicrophonePermissionLabel", IDS_APP_MANAGEMENT_MICROPHONE}, |
| {"appManagementMoreSettingsLabel", IDS_APP_MANAGEMENT_MORE_SETTINGS}, |
| {"appManagementNoAppsFound", IDS_APP_MANAGEMENT_NO_APPS_FOUND}, |
| {"appManagementNoPermissions", |
| IDS_APPLICATION_INFO_APP_NO_PERMISSIONS_TEXT}, |
| {"appManagementNotificationsLabel", IDS_APP_MANAGEMENT_NOTIFICATIONS}, |
| {"appManagementPermissionsLabel", IDS_APP_MANAGEMENT_PERMISSIONS}, |
| {"appManagementPinToShelfLabel", IDS_APP_MANAGEMENT_PIN_TO_SHELF}, |
| {"appManagementSearchPrompt", IDS_APP_MANAGEMENT_SEARCH_PROMPT}, |
| {"appManagementStoragePermissionLabel", IDS_APP_MANAGEMENT_STORAGE}, |
| {"appManagementUninstallLabel", IDS_APP_MANAGEMENT_UNINSTALL_APP}, |
| }; |
| AddLocalizedStringsBulk(html_source, kLocalizedStrings); |
| } |
| |
| void AddParentalControlStrings(content::WebUIDataSource* html_source) { |
| static constexpr webui::LocalizedString kLocalizedStrings[] = { |
| {"parentalControlsPageTitle", IDS_SETTINGS_PARENTAL_CONTROLS_PAGE_TITLE}, |
| {"parentalControlsPageSetUpLabel", |
| IDS_SETTINGS_PARENTAL_CONTROLS_PAGE_SET_UP_LABEL}, |
| {"parentalControlsPageViewSettingsLabel", |
| IDS_SETTINGS_PARENTAL_CONTROLS_PAGE_VIEW_SETTINGS_LABEL}, |
| {"parentalControlsPageConnectToInternetLabel", |
| IDS_SETTINGS_PARENTAL_CONTROLS_PAGE_CONNECT_TO_INTERNET_LABEL}, |
| {"parentalControlsSetUpButtonLabel", |
| IDS_SETTINGS_PARENTAL_CONTROLS_SET_UP_BUTTON_LABEL}, |
| {"parentalControlsSetUpButtonRole", |
| IDS_SETTINGS_PARENTAL_CONTROLS_SET_UP_BUTTON_ROLE}, |
| }; |
| AddLocalizedStringsBulk(html_source, kLocalizedStrings); |
| |
| html_source->AddBoolean( |
| "isChild", user_manager::UserManager::Get()->IsLoggedInAsChildUser()); |
| } |
| |
| void AddBluetoothStrings(content::WebUIDataSource* html_source) { |
| static constexpr webui::LocalizedString kLocalizedStrings[] = { |
| {"bluetoothConnected", IDS_SETTINGS_BLUETOOTH_CONNECTED}, |
| {"bluetoothConnectedWithBattery", |
| IDS_SETTINGS_BLUETOOTH_CONNECTED_WITH_BATTERY}, |
| {"bluetoothConnecting", IDS_SETTINGS_BLUETOOTH_CONNECTING}, |
| {"bluetoothDeviceListPaired", IDS_SETTINGS_BLUETOOTH_DEVICE_LIST_PAIRED}, |
| {"bluetoothDeviceListUnpaired", |
| IDS_SETTINGS_BLUETOOTH_DEVICE_LIST_UNPAIRED}, |
| {"bluetoothConnect", IDS_SETTINGS_BLUETOOTH_CONNECT}, |
| {"bluetoothDisconnect", IDS_SETTINGS_BLUETOOTH_DISCONNECT}, |
| {"bluetoothToggleA11yLabel", |
| IDS_SETTINGS_BLUETOOTH_TOGGLE_ACCESSIBILITY_LABEL}, |
| {"bluetoothExpandA11yLabel", |
| IDS_SETTINGS_BLUETOOTH_EXPAND_ACCESSIBILITY_LABEL}, |
| {"bluetoothNoDevices", IDS_SETTINGS_BLUETOOTH_NO_DEVICES}, |
| {"bluetoothNoDevicesFound", IDS_SETTINGS_BLUETOOTH_NO_DEVICES_FOUND}, |
| {"bluetoothNotConnected", IDS_SETTINGS_BLUETOOTH_NOT_CONNECTED}, |
| {"bluetoothPageTitle", IDS_SETTINGS_BLUETOOTH}, |
| {"bluetoothPairDevicePageTitle", |
| IDS_SETTINGS_BLUETOOTH_PAIR_DEVICE_TITLE}, |
| {"bluetoothRemove", IDS_SETTINGS_BLUETOOTH_REMOVE}, |
| {"bluetoothPrimaryUserControlled", |
| IDS_SETTINGS_BLUETOOTH_PRIMARY_USER_CONTROLLED}, |
| {"bluetoothDeviceType_computer", |
| IDS_BLUETOOTH_ACCESSIBILITY_DEVICE_TYPE_COMPUTER}, |
| {"bluetoothDeviceType_phone", |
| IDS_BLUETOOTH_ACCESSIBILITY_DEVICE_TYPE_PHONE}, |
| {"bluetoothDeviceType_modem", |
| IDS_BLUETOOTH_ACCESSIBILITY_DEVICE_TYPE_MODEM}, |
| {"bluetoothDeviceType_audio", |
| IDS_BLUETOOTH_ACCESSIBILITY_DEVICE_TYPE_AUDIO}, |
| {"bluetoothDeviceType_carAudio", |
| IDS_BLUETOOTH_ACCESSIBILITY_DEVICE_TYPE_CAR_AUDIO}, |
| {"bluetoothDeviceType_video", |
| IDS_BLUETOOTH_ACCESSIBILITY_DEVICE_TYPE_VIDEO}, |
| {"bluetoothDeviceType_peripheral", |
| IDS_BLUETOOTH_ACCESSIBILITY_DEVICE_TYPE_PERIPHERAL}, |
| {"bluetoothDeviceType_joystick", |
| IDS_BLUETOOTH_ACCESSIBILITY_DEVICE_TYPE_JOYSTICK}, |
| {"bluetoothDeviceType_gamepad", |
| IDS_BLUETOOTH_ACCESSIBILITY_DEVICE_TYPE_GAMEPAD}, |
| {"bluetoothDeviceType_keyboard", |
| IDS_BLUETOOTH_ACCESSIBILITY_DEVICE_TYPE_KEYBOARD}, |
| {"bluetoothDeviceType_mouse", |
| IDS_BLUETOOTH_ACCESSIBILITY_DEVICE_TYPE_MOUSE}, |
| {"bluetoothDeviceType_tablet", |
| IDS_BLUETOOTH_ACCESSIBILITY_DEVICE_TYPE_TABLET}, |
| {"bluetoothDeviceType_keyboardMouseCombo", |
| IDS_BLUETOOTH_ACCESSIBILITY_DEVICE_TYPE_KEYBOARD_MOUSE_COMBO}, |
| {"bluetoothDeviceType_unknown", |
| IDS_BLUETOOTH_ACCESSIBILITY_DEVICE_TYPE_UNKNOWN}, |
| }; |
| AddLocalizedStringsBulk(html_source, kLocalizedStrings); |
| chromeos::bluetooth_dialog::AddLocalizedStrings(html_source); |
| } |
| |
| void AddChromeOSUserStrings(content::WebUIDataSource* html_source, |
| Profile* profile) { |
| user_manager::UserManager* user_manager = user_manager::UserManager::Get(); |
| |
| const user_manager::User* user = |
| chromeos::ProfileHelper::Get()->GetUserByProfile(profile); |
| const user_manager::User* primary_user = user_manager->GetPrimaryUser(); |
| std::string primary_user_email = primary_user->GetAccountId().GetUserEmail(); |
| html_source->AddString("primaryUserEmail", primary_user_email); |
| html_source->AddString("browserSettingsBannerText", |
| l10n_util::GetStringFUTF16( |
| IDS_SETTINGS_BROWSER_SETTINGS_BANNER, |
| base::ASCIIToUTF16(chrome::kChromeUISettingsURL))); |
| html_source->AddBoolean("isActiveDirectoryUser", |
| user && user->IsActiveDirectoryUser()); |
| html_source->AddBoolean( |
| "isSecondaryUser", |
| user && user->GetAccountId() != primary_user->GetAccountId()); |
| html_source->AddString( |
| "secondaryUserBannerText", |
| l10n_util::GetStringFUTF16(IDS_SETTINGS_SECONDARY_USER_BANNER, |
| base::ASCIIToUTF16(primary_user_email))); |
| |
| if (!IsDeviceManaged() && !user_manager->IsCurrentUserOwner()) { |
| html_source->AddString("ownerEmail", |
| user_manager->GetOwnerAccountId().GetUserEmail()); |
| } |
| } |
| |
| void AddDevicePointersStrings(content::WebUIDataSource* html_source) { |
| static constexpr webui::LocalizedString kPointersStrings[] = { |
| {"mouseTitle", IDS_SETTINGS_MOUSE_TITLE}, |
| {"touchpadTitle", IDS_SETTINGS_TOUCHPAD_TITLE}, |
| {"mouseAndTouchpadTitle", IDS_SETTINGS_MOUSE_AND_TOUCHPAD_TITLE}, |
| {"touchpadTapToClickEnabledLabel", |
| IDS_SETTINGS_TOUCHPAD_TAP_TO_CLICK_ENABLED_LABEL}, |
| {"touchpadSpeed", IDS_SETTINGS_TOUCHPAD_SPEED_LABEL}, |
| {"pointerSlow", IDS_SETTINGS_POINTER_SPEED_SLOW_LABEL}, |
| {"pointerFast", IDS_SETTINGS_POINTER_SPEED_FAST_LABEL}, |
| {"mouseSpeed", IDS_SETTINGS_MOUSE_SPEED_LABEL}, |
| {"mouseSwapButtons", IDS_SETTINGS_MOUSE_SWAP_BUTTONS_LABEL}, |
| {"mouseReverseScroll", IDS_SETTINGS_MOUSE_REVERSE_SCROLL_LABEL}, |
| {"mouseAccelerationLabel", IDS_SETTINGS_MOUSE_ACCELERATION_LABEL}, |
| {"touchpadAccelerationLabel", IDS_SETTINGS_TOUCHPAD_ACCELERATION_LABEL}, |
| }; |
| AddLocalizedStringsBulk(html_source, kPointersStrings); |
| |
| html_source->AddString("naturalScrollLearnMoreLink", |
| GetHelpUrlWithBoard(chrome::kNaturalScrollHelpURL)); |
| } |
| |
| void AddDeviceKeyboardStrings(content::WebUIDataSource* html_source) { |
| static constexpr webui::LocalizedString keyboard_strings[] = { |
| {"keyboardTitle", IDS_SETTINGS_KEYBOARD_TITLE}, |
| {"keyboardKeyCtrl", IDS_SETTINGS_KEYBOARD_KEY_LEFT_CTRL}, |
| {"keyboardKeyAlt", IDS_SETTINGS_KEYBOARD_KEY_LEFT_ALT}, |
| {"keyboardKeyCapsLock", IDS_SETTINGS_KEYBOARD_KEY_CAPS_LOCK}, |
| {"keyboardKeyCommand", IDS_SETTINGS_KEYBOARD_KEY_COMMAND}, |
| {"keyboardKeyDiamond", IDS_SETTINGS_KEYBOARD_KEY_DIAMOND}, |
| {"keyboardKeyEscape", IDS_SETTINGS_KEYBOARD_KEY_ESCAPE}, |
| {"keyboardKeyBackspace", IDS_SETTINGS_KEYBOARD_KEY_BACKSPACE}, |
| {"keyboardKeyAssistant", IDS_SETTINGS_KEYBOARD_KEY_ASSISTANT}, |
| {"keyboardKeyDisabled", IDS_SETTINGS_KEYBOARD_KEY_DISABLED}, |
| {"keyboardKeyExternalCommand", |
| IDS_SETTINGS_KEYBOARD_KEY_EXTERNAL_COMMAND}, |
| {"keyboardKeyExternalMeta", IDS_SETTINGS_KEYBOARD_KEY_EXTERNAL_META}, |
| {"keyboardKeyMeta", IDS_SETTINGS_KEYBOARD_KEY_META}, |
| {"keyboardSendFunctionKeys", IDS_SETTINGS_KEYBOARD_SEND_FUNCTION_KEYS}, |
| {"keyboardEnableAutoRepeat", IDS_SETTINGS_KEYBOARD_AUTO_REPEAT_ENABLE}, |
| {"keyRepeatDelay", IDS_SETTINGS_KEYBOARD_AUTO_REPEAT_DELAY}, |
| {"keyRepeatDelayLong", IDS_SETTINGS_KEYBOARD_AUTO_REPEAT_DELAY_LONG}, |
| {"keyRepeatDelayShort", IDS_SETTINGS_KEYBOARD_AUTO_REPEAT_DELAY_SHORT}, |
| {"keyRepeatRate", IDS_SETTINGS_KEYBOARD_AUTO_REPEAT_RATE}, |
| {"keyRepeatRateSlow", IDS_SETTINGS_KEYBOARD_AUTO_REPEAT_RATE_SLOW}, |
| {"keyRepeatRateFast", IDS_SETTINGS_KEYBOARD_AUTO_REPEAT_FAST}, |
| {"showKeyboardShortcutViewer", |
| IDS_SETTINGS_KEYBOARD_SHOW_SHORTCUT_VIEWER}, |
| {"keyboardShowLanguageAndInput", |
| IDS_SETTINGS_KEYBOARD_SHOW_LANGUAGE_AND_INPUT}, |
| }; |
| AddLocalizedStringsBulk(html_source, keyboard_strings); |
| |
| html_source->AddLocalizedString("keyboardKeySearch", |
| ui::DeviceUsesKeyboardLayout2() |
| ? IDS_SETTINGS_KEYBOARD_KEY_LAUNCHER |
| : IDS_SETTINGS_KEYBOARD_KEY_SEARCH); |
| html_source->AddLocalizedString( |
| "keyboardSendFunctionKeysDescription", |
| ui::DeviceUsesKeyboardLayout2() |
| ? IDS_SETTINGS_KEYBOARD_SEND_FUNCTION_KEYS_LAYOUT2_DESCRIPTION |
| : IDS_SETTINGS_KEYBOARD_SEND_FUNCTION_KEYS_DESCRIPTION); |
| } |
| |
| void AddDeviceStylusStrings(content::WebUIDataSource* html_source) { |
| static constexpr webui::LocalizedString kStylusStrings[] = { |
| {"stylusTitle", IDS_SETTINGS_STYLUS_TITLE}, |
| {"stylusEnableStylusTools", IDS_SETTINGS_STYLUS_ENABLE_STYLUS_TOOLS}, |
| {"stylusAutoOpenStylusTools", IDS_SETTINGS_STYLUS_AUTO_OPEN_STYLUS_TOOLS}, |
| {"stylusFindMoreAppsPrimary", IDS_SETTINGS_STYLUS_FIND_MORE_APPS_PRIMARY}, |
| {"stylusFindMoreAppsSecondary", |
| IDS_SETTINGS_STYLUS_FIND_MORE_APPS_SECONDARY}, |
| {"stylusNoteTakingApp", IDS_SETTINGS_STYLUS_NOTE_TAKING_APP_LABEL}, |
| {"stylusNoteTakingAppEnabledOnLockScreen", |
| IDS_SETTINGS_STYLUS_NOTE_TAKING_APP_LOCK_SCREEN_CHECKBOX}, |
| {"stylusNoteTakingAppKeepsLastNoteOnLockScreen", |
| IDS_SETTINGS_STYLUS_NOTE_TAKING_APP_KEEP_LATEST_NOTE}, |
| {"stylusNoteTakingAppLockScreenSettingsHeader", |
| IDS_SETTINGS_STYLUS_LOCK_SCREEN_NOTES_TITLE}, |
| {"stylusNoteTakingAppNoneAvailable", |
| IDS_SETTINGS_STYLUS_NOTE_TAKING_APP_NONE_AVAILABLE}, |
| {"stylusNoteTakingAppWaitingForAndroid", |
| IDS_SETTINGS_STYLUS_NOTE_TAKING_APP_WAITING_FOR_ANDROID}}; |
| AddLocalizedStringsBulk(html_source, kStylusStrings); |
| } |
| |
| void AddDeviceDisplayStrings(content::WebUIDataSource* html_source) { |
| static constexpr webui::LocalizedString kDisplayStrings[] = { |
| {"displayTitle", IDS_SETTINGS_DISPLAY_TITLE}, |
| {"displayArrangementText", IDS_SETTINGS_DISPLAY_ARRANGEMENT_TEXT}, |
| {"displayArrangementTitle", IDS_SETTINGS_DISPLAY_ARRANGEMENT_TITLE}, |
| {"displayMirror", IDS_SETTINGS_DISPLAY_MIRROR}, |
| {"displayMirrorDisplayName", IDS_SETTINGS_DISPLAY_MIRROR_DISPLAY_NAME}, |
| {"displayAmbientColorTitle", IDS_SETTINGS_DISPLAY_AMBIENT_COLOR_TITLE}, |
| {"displayAmbientColorSubtitle", |
| IDS_SETTINGS_DISPLAY_AMBIENT_COLOR_SUBTITLE}, |
| {"displayNightLightLabel", IDS_SETTINGS_DISPLAY_NIGHT_LIGHT_LABEL}, |
| {"displayNightLightOnAtSunset", |
| IDS_SETTINGS_DISPLAY_NIGHT_LIGHT_ON_AT_SUNSET}, |
| {"displayNightLightOffAtSunrise", |
| IDS_SETTINGS_DISPLAY_NIGHT_LIGHT_OFF_AT_SUNRISE}, |
| {"displayNightLightScheduleCustom", |
| IDS_SETTINGS_DISPLAY_NIGHT_LIGHT_SCHEDULE_CUSTOM}, |
| {"displayNightLightScheduleLabel", |
| IDS_SETTINGS_DISPLAY_NIGHT_LIGHT_SCHEDULE_LABEL}, |
| {"displayNightLightScheduleNever", |
| IDS_SETTINGS_DISPLAY_NIGHT_LIGHT_SCHEDULE_NEVER}, |
| {"displayNightLightScheduleSunsetToSunRise", |
| IDS_SETTINGS_DISPLAY_NIGHT_LIGHT_SCHEDULE_SUNSET_TO_SUNRISE}, |
| {"displayNightLightStartTime", |
| IDS_SETTINGS_DISPLAY_NIGHT_LIGHT_START_TIME}, |
| {"displayNightLightStopTime", IDS_SETTINGS_DISPLAY_NIGHT_LIGHT_STOP_TIME}, |
| {"displayNightLightText", IDS_SETTINGS_DISPLAY_NIGHT_LIGHT_TEXT}, |
| {"displayNightLightTemperatureLabel", |
| IDS_SETTINGS_DISPLAY_NIGHT_LIGHT_TEMPERATURE_LABEL}, |
| {"displayNightLightTempSliderMaxLabel", |
| IDS_SETTINGS_DISPLAY_NIGHT_LIGHT_TEMP_SLIDER_MAX_LABEL}, |
| {"displayNightLightTempSliderMinLabel", |
| IDS_SETTINGS_DISPLAY_NIGHT_LIGHT_TEMP_SLIDER_MIN_LABEL}, |
| {"displayUnifiedDesktop", IDS_SETTINGS_DISPLAY_UNIFIED_DESKTOP}, |
| {"displayUnifiedDesktopOn", IDS_SETTINGS_DISPLAY_UNIFIED_DESKTOP_ON}, |
| {"displayUnifiedDesktopOff", IDS_SETTINGS_DISPLAY_UNIFIED_DESKTOP_OFF}, |
| {"displayResolutionTitle", IDS_SETTINGS_DISPLAY_RESOLUTION_TITLE}, |
| {"displayResolutionText", IDS_SETTINGS_DISPLAY_RESOLUTION_TEXT}, |
| {"displayResolutionTextBest", IDS_SETTINGS_DISPLAY_RESOLUTION_TEXT_BEST}, |
| {"displayResolutionTextNative", |
| IDS_SETTINGS_DISPLAY_RESOLUTION_TEXT_NATIVE}, |
| {"displayResolutionSublabel", IDS_SETTINGS_DISPLAY_RESOLUTION_SUBLABEL}, |
| {"displayResolutionMenuItem", IDS_SETTINGS_DISPLAY_RESOLUTION_MENU_ITEM}, |
| {"displayResolutionInterlacedMenuItem", |
| IDS_SETTINGS_DISPLAY_RESOLUTION_INTERLACED_MENU_ITEM}, |
| {"displayZoomTitle", IDS_SETTINGS_DISPLAY_ZOOM_TITLE}, |
| {"displayZoomSublabel", IDS_SETTINGS_DISPLAY_ZOOM_SUBLABEL}, |
| {"displayZoomValue", IDS_SETTINGS_DISPLAY_ZOOM_VALUE}, |
| {"displayZoomLogicalResolutionText", |
| IDS_SETTINGS_DISPLAY_ZOOM_LOGICAL_RESOLUTION_TEXT}, |
| {"displayZoomNativeLogicalResolutionNativeText", |
| IDS_SETTINGS_DISPLAY_ZOOM_LOGICAL_RESOLUTION_NATIVE_TEXT}, |
| {"displayZoomLogicalResolutionDefaultText", |
| IDS_SETTINGS_DISPLAY_ZOOM_LOGICAL_RESOLUTION_DEFAULT_TEXT}, |
| {"displaySizeSliderMinLabel", IDS_SETTINGS_DISPLAY_ZOOM_SLIDER_MINIMUM}, |
| {"displaySizeSliderMaxLabel", IDS_SETTINGS_DISPLAY_ZOOM_SLIDER_MAXIMUM}, |
| {"displayScreenTitle", IDS_SETTINGS_DISPLAY_SCREEN}, |
| {"displayScreenExtended", IDS_SETTINGS_DISPLAY_SCREEN_EXTENDED}, |
| {"displayScreenPrimary", IDS_SETTINGS_DISPLAY_SCREEN_PRIMARY}, |
| {"displayOrientation", IDS_SETTINGS_DISPLAY_ORIENTATION}, |
| {"displayOrientationStandard", IDS_SETTINGS_DISPLAY_ORIENTATION_STANDARD}, |
| {"displayOrientationAutoRotate", |
| IDS_SETTINGS_DISPLAY_ORIENTATION_AUTO_ROTATE}, |
| {"displayOverscanPageText", IDS_SETTINGS_DISPLAY_OVERSCAN_TEXT}, |
| {"displayOverscanPageTitle", IDS_SETTINGS_DISPLAY_OVERSCAN_TITLE}, |
| {"displayOverscanSubtitle", IDS_SETTINGS_DISPLAY_OVERSCAN_SUBTITLE}, |
| {"displayOverscanInstructions", |
| IDS_SETTINGS_DISPLAY_OVERSCAN_INSTRUCTIONS}, |
| {"displayOverscanResize", IDS_SETTINGS_DISPLAY_OVERSCAN_RESIZE}, |
| {"displayOverscanPosition", IDS_SETTINGS_DISPLAY_OVERSCAN_POSITION}, |
| {"displayOverscanReset", IDS_SETTINGS_DISPLAY_OVERSCAN_RESET}, |
| {"displayTouchCalibrationTitle", |
| IDS_SETTINGS_DISPLAY_TOUCH_CALIBRATION_TITLE}, |
| {"displayTouchCalibrationText", |
| IDS_SETTINGS_DISPLAY_TOUCH_CALIBRATION_TEXT}}; |
| AddLocalizedStringsBulk(html_source, kDisplayStrings); |
| |
| base::CommandLine& cmd = *base::CommandLine::ForCurrentProcess(); |
| html_source->AddBoolean("unifiedDesktopAvailable", |
| cmd.HasSwitch(::switches::kEnableUnifiedDesktop)); |
| |
| html_source->AddBoolean("listAllDisplayModes", |
| display::features::IsListAllDisplayModesEnabled()); |
| |
| html_source->AddBoolean("deviceSupportsAmbientColor", |
| ash::features::IsAllowAmbientEQEnabled()); |
| |
| html_source->AddBoolean( |
| "enableTouchCalibrationSetting", |
| cmd.HasSwitch(chromeos::switches::kEnableTouchCalibrationSetting)); |
| |
| html_source->AddBoolean("hasExternalTouchDevice", |
| display::HasExternalTouchscreenDevice()); |
| |
| html_source->AddBoolean( |
| "allowDisableMouseAcceleration", |
| base::FeatureList::IsEnabled(::features::kAllowDisableMouseAcceleration)); |
| } |
| |
| void AddDeviceStorageStrings(content::WebUIDataSource* html_source) { |
| static constexpr webui::LocalizedString kStorageStrings[] = { |
| {"storageTitle", IDS_SETTINGS_STORAGE_TITLE}, |
| {"storageItemInUse", IDS_SETTINGS_STORAGE_ITEM_IN_USE}, |
| {"storageItemAvailable", IDS_SETTINGS_STORAGE_ITEM_AVAILABLE}, |
| {"storageItemSystem", IDS_SETTINGS_STORAGE_ITEM_SYSTEM}, |
| {"storageItemMyFiles", IDS_SETTINGS_STORAGE_ITEM_MY_FILES}, |
| {"storageItemBrowsingData", IDS_SETTINGS_STORAGE_ITEM_BROWSING_DATA}, |
| {"storageItemApps", IDS_SETTINGS_STORAGE_ITEM_APPS}, |
| {"storageItemCrostini", IDS_SETTINGS_STORAGE_ITEM_CROSTINI}, |
| {"storageItemOtherUsers", IDS_SETTINGS_STORAGE_ITEM_OTHER_USERS}, |
| {"storageSizeComputing", IDS_SETTINGS_STORAGE_SIZE_CALCULATING}, |
| {"storageSizeUnknown", IDS_SETTINGS_STORAGE_SIZE_UNKNOWN}, |
| {"storageSpaceLowMessageTitle", |
| IDS_SETTINGS_STORAGE_SPACE_LOW_MESSAGE_TITLE}, |
| {"storageSpaceLowMessageLine1", |
| IDS_SETTINGS_STORAGE_SPACE_LOW_MESSAGE_LINE_1}, |
| {"storageSpaceLowMessageLine2", |
| IDS_SETTINGS_STORAGE_SPACE_LOW_MESSAGE_LINE_2}, |
| {"storageSpaceCriticallyLowMessageTitle", |
| IDS_SETTINGS_STORAGE_SPACE_CRITICALLY_LOW_MESSAGE_TITLE}, |
| {"storageSpaceCriticallyLowMessageLine1", |
| IDS_SETTINGS_STORAGE_SPACE_CRITICALLY_LOW_MESSAGE_LINE_1}, |
| {"storageSpaceCriticallyLowMessageLine2", |
| IDS_SETTINGS_STORAGE_SPACE_CRITICALLY_LOW_MESSAGE_LINE_2}, |
| {"storageExternal", IDS_SETTINGS_STORAGE_EXTERNAL}, |
| {"storageExternalStorageEmptyListHeader", |
| IDS_SETTINGS_STORAGE_EXTERNAL_STORAGE_EMPTY_LIST_HEADER}, |
| {"storageExternalStorageListHeader", |
| IDS_SETTINGS_STORAGE_EXTERNAL_STORAGE_LIST_HEADER}, |
| {"storageOverviewAriaLabel", IDS_SETTINGS_STORAGE_OVERVIEW_ARIA_LABEL}}; |
| AddLocalizedStringsBulk(html_source, kStorageStrings); |
| |
| html_source->AddString( |
| "storageAndroidAppsExternalDrivesNote", |
| l10n_util::GetStringFUTF16( |
| IDS_SETTINGS_STORAGE_ANDROID_APPS_ACCESS_EXTERNAL_DRIVES_NOTE, |
| base::ASCIIToUTF16(chrome::kArcExternalStorageLearnMoreURL))); |
| } |
| |
| void AddDevicePowerStrings(content::WebUIDataSource* html_source) { |
| static constexpr webui::LocalizedString kPowerStrings[] = { |
| {"powerTitle", IDS_SETTINGS_POWER_TITLE}, |
| {"powerSourceLabel", IDS_SETTINGS_POWER_SOURCE_LABEL}, |
| {"powerSourceBattery", IDS_SETTINGS_POWER_SOURCE_BATTERY}, |
| {"powerSourceAcAdapter", IDS_SETTINGS_POWER_SOURCE_AC_ADAPTER}, |
| {"powerSourceLowPowerCharger", |
| IDS_SETTINGS_POWER_SOURCE_LOW_POWER_CHARGER}, |
| {"calculatingPower", IDS_SETTINGS_POWER_SOURCE_CALCULATING}, |
| {"powerIdleLabel", IDS_SETTINGS_POWER_IDLE_LABEL}, |
| {"powerIdleDisplayOffSleep", IDS_SETTINGS_POWER_IDLE_DISPLAY_OFF_SLEEP}, |
| {"powerIdleDisplayOff", IDS_SETTINGS_POWER_IDLE_DISPLAY_OFF}, |
| {"powerIdleDisplayOn", IDS_SETTINGS_POWER_IDLE_DISPLAY_ON}, |
| {"powerIdleOther", IDS_SETTINGS_POWER_IDLE_OTHER}, |
| {"powerLidSleepLabel", IDS_SETTINGS_POWER_LID_CLOSED_SLEEP_LABEL}, |
| {"powerLidSignOutLabel", IDS_SETTINGS_POWER_LID_CLOSED_SIGN_OUT_LABEL}, |
| {"powerLidShutDownLabel", IDS_SETTINGS_POWER_LID_CLOSED_SHUT_DOWN_LABEL}, |
| }; |
| AddLocalizedStringsBulk(html_source, kPowerStrings); |
| } |
| |
| void AddDeviceStrings(content::WebUIDataSource* html_source) { |
| static constexpr webui::LocalizedString kDeviceStrings[] = { |
| {"devicePageTitle", IDS_SETTINGS_DEVICE_TITLE}, |
| {"scrollLabel", IDS_SETTINGS_SCROLL_LABEL}, |
| {"touchPadScrollLabel", IDS_OS_SETTINGS_TOUCHPAD_REVERSE_SCROLL_LABEL}, |
| }; |
| AddLocalizedStringsBulk(html_source, kDeviceStrings); |
| |
| AddDevicePointersStrings(html_source); |
| AddDeviceKeyboardStrings(html_source); |
| AddDeviceStylusStrings(html_source); |
| AddDeviceDisplayStrings(html_source); |
| AddDeviceStorageStrings(html_source); |
| AddDevicePowerStrings(html_source); |
| } |
| |
| void AddFilesStrings(content::WebUIDataSource* html_source) { |
| static constexpr webui::LocalizedString kLocalizedStrings[] = { |
| {"disconnectGoogleDriveAccount", IDS_SETTINGS_DISCONNECT_GOOGLE_DRIVE}, |
| {"filesPageTitle", IDS_OS_SETTINGS_FILES}, |
| {"smbSharesTitle", IDS_SETTINGS_DOWNLOADS_SMB_SHARES}, |
| {"smbSharesLearnMoreLabel", |
| IDS_SETTINGS_DOWNLOADS_SMB_SHARES_LEARN_MORE_LABEL}, |
| {"addSmbShare", IDS_SETTINGS_DOWNLOADS_SMB_SHARES_ADD_SHARE}, |
| {"smbShareAddedSuccessfulMessage", |
| IDS_SETTINGS_DOWNLOADS_SHARE_ADDED_SUCCESS_MESSAGE}, |
| {"smbShareAddedErrorMessage", |
| IDS_SETTINGS_DOWNLOADS_SHARE_ADDED_ERROR_MESSAGE}, |
| {"smbShareAddedAuthFailedMessage", |
| IDS_SETTINGS_DOWNLOADS_SHARE_ADDED_AUTH_FAILED_MESSAGE}, |
| {"smbShareAddedNotFoundMessage", |
| IDS_SETTINGS_DOWNLOADS_SHARE_ADDED_NOT_FOUND_MESSAGE}, |
| {"smbShareAddedUnsupportedDeviceMessage", |
| IDS_SETTINGS_DOWNLOADS_SHARE_ADDED_UNSUPPORTED_DEVICE_MESSAGE}, |
| {"smbShareAddedMountExistsMessage", |
| IDS_SETTINGS_DOWNLOADS_SHARE_ADDED_MOUNT_EXISTS_MESSAGE}, |
| {"smbShareAddedTooManyMountsMessage", |
| IDS_SETTINGS_DOWNLOADS_SHARE_ADDED_TOO_MANY_MOUNTS_MESSAGE}, |
| {"smbShareAddedInvalidURLMessage", |
| IDS_SETTINGS_DOWNLOADS_SHARE_ADDED_MOUNT_INVALID_URL_MESSAGE}, |
| {"smbShareAddedInvalidSSOURLMessage", |
| IDS_SETTINGS_DOWNLOADS_SHARE_ADDED_MOUNT_INVALID_SSO_URL_MESSAGE}, |
| }; |
| AddLocalizedStringsBulk(html_source, kLocalizedStrings); |
| |
| chromeos::smb_dialog::AddLocalizedStrings(html_source); |
| |
| html_source->AddString("smbSharesLearnMoreURL", |
| GetHelpUrlWithBoard(chrome::kSmbSharesLearnMoreURL)); |
| } |
| |
| void AddEasyUnlockStrings(content::WebUIDataSource* html_source) { |
| static constexpr webui::LocalizedString kLocalizedStrings[] = { |
| {"easyUnlockSectionTitle", IDS_SETTINGS_EASY_UNLOCK_SECTION_TITLE}, |
| {"easyUnlockUnlockDeviceOnly", |
| IDS_SETTINGS_EASY_UNLOCK_UNLOCK_DEVICE_ONLY}, |
| {"easyUnlockUnlockDeviceAndAllowSignin", |
| IDS_SETTINGS_EASY_UNLOCK_UNLOCK_DEVICE_AND_ALLOW_SIGNIN}, |
| }; |
| AddLocalizedStringsBulk(html_source, kLocalizedStrings); |
| } |
| |
| void AddMultideviceStrings(content::WebUIDataSource* html_source) { |
| static constexpr webui::LocalizedString kLocalizedStrings[] = { |
| {"multidevicePageTitle", IDS_SETTINGS_MULTIDEVICE}, |
| {"multideviceSetupButton", IDS_SETTINGS_MULTIDEVICE_SETUP_BUTTON}, |
| {"multideviceVerifyButton", IDS_SETTINGS_MULTIDEVICE_VERIFY_BUTTON}, |
| {"multideviceSetupItemHeading", |
| IDS_SETTINGS_MULTIDEVICE_SETUP_ITEM_HEADING}, |
| {"multideviceEnabled", IDS_SETTINGS_MULTIDEVICE_ENABLED}, |
| {"multideviceDisabled", IDS_SETTINGS_MULTIDEVICE_DISABLED}, |
| {"multideviceSmartLockItemTitle", IDS_SETTINGS_EASY_UNLOCK_SECTION_TITLE}, |
| {"multideviceInstantTetheringItemTitle", |
| IDS_SETTINGS_MULTIDEVICE_INSTANT_TETHERING}, |
| {"multideviceInstantTetheringItemSummary", |
| IDS_SETTINGS_MULTIDEVICE_INSTANT_TETHERING_SUMMARY}, |
| {"multideviceAndroidMessagesItemTitle", |
| IDS_SETTINGS_MULTIDEVICE_ANDROID_MESSAGES}, |
| {"multideviceForgetDevice", IDS_SETTINGS_MULTIDEVICE_FORGET_THIS_DEVICE}, |
| {"multideviceSmartLockOptions", |
| IDS_SETTINGS_PEOPLE_LOCK_SCREEN_OPTIONS_LOCK}, |
| {"multideviceForgetDeviceDisconnect", |
| IDS_SETTINGS_MULTIDEVICE_FORGET_THIS_DEVICE_DISCONNECT}, |
| }; |
| AddLocalizedStringsBulk(html_source, kLocalizedStrings); |
| |
| html_source->AddString( |
| "multideviceForgetDeviceSummary", |
| ui::SubstituteChromeOSDeviceType( |
| IDS_SETTINGS_MULTIDEVICE_FORGET_THIS_DEVICE_EXPLANATION)); |
| html_source->AddString( |
| "multideviceForgetDeviceDialogMessage", |
| ui::SubstituteChromeOSDeviceType( |
| IDS_SETTINGS_MULTIDEVICE_FORGET_DEVICE_DIALOG_MESSAGE)); |
| html_source->AddString( |
| "multideviceVerificationText", |
| l10n_util::GetStringFUTF16( |
| IDS_SETTINGS_MULTIDEVICE_VERIFICATION_TEXT, |
| base::UTF8ToUTF16( |
| chromeos::multidevice_setup:: |
| GetBoardSpecificBetterTogetherSuiteLearnMoreUrl() |
| .spec()))); |
| html_source->AddString( |
| "multideviceSetupSummary", |
| l10n_util::GetStringFUTF16( |
| IDS_SETTINGS_MULTIDEVICE_SETUP_SUMMARY, ui::GetChromeOSDeviceName(), |
| base::UTF8ToUTF16( |
| chromeos::multidevice_setup:: |
| GetBoardSpecificBetterTogetherSuiteLearnMoreUrl() |
| .spec()))); |
| html_source->AddString( |
| "multideviceNoHostText", |
| l10n_util::GetStringFUTF16( |
| IDS_SETTINGS_MULTIDEVICE_NO_ELIGIBLE_HOSTS, |
| base::UTF8ToUTF16( |
| chromeos::multidevice_setup:: |
| GetBoardSpecificBetterTogetherSuiteLearnMoreUrl() |
| .spec()))); |
| html_source->AddString( |
| "multideviceAndroidMessagesItemSummary", |
| l10n_util::GetStringFUTF16( |
| IDS_SETTINGS_MULTIDEVICE_ANDROID_MESSAGES_SUMMARY, |
| ui::GetChromeOSDeviceName(), |
| base::UTF8ToUTF16(chromeos::multidevice_setup:: |
| GetBoardSpecificMessagesLearnMoreUrl() |
| .spec()))); |
| html_source->AddString( |
| "multideviceSmartLockItemSummary", |
| l10n_util::GetStringFUTF16( |
| IDS_SETTINGS_MULTIDEVICE_SMART_LOCK_SUMMARY, |
| ui::GetChromeOSDeviceName(), |
| GetHelpUrlWithBoard(chrome::kEasyUnlockLearnMoreUrl))); |
| |
| AddEasyUnlockStrings(html_source); |
| } |
| |
| void AddKerberosAccountsPageStrings(content::WebUIDataSource* html_source) { |
| static constexpr webui::LocalizedString kLocalizedStrings[] = { |
| {"kerberosAccountsAddAccountLabel", |
| IDS_SETTINGS_KERBEROS_ACCOUNTS_ADD_ACCOUNT_LABEL}, |
| {"kerberosAccountsRefreshNowLabel", |
| IDS_SETTINGS_KERBEROS_ACCOUNTS_REFRESH_NOW_LABEL}, |
| {"kerberosAccountsSetAsActiveAccountLabel", |
| IDS_SETTINGS_KERBEROS_ACCOUNTS_SET_AS_ACTIVE_ACCOUNT_LABEL}, |
| {"kerberosAccountsSignedOut", IDS_SETTINGS_KERBEROS_ACCOUNTS_SIGNED_OUT}, |
| {"kerberosAccountsListHeader", |
| IDS_SETTINGS_KERBEROS_ACCOUNTS_LIST_HEADER}, |
| {"kerberosAccountsRemoveAccountLabel", |
| IDS_SETTINGS_KERBEROS_ACCOUNTS_REMOVE_ACCOUNT_LABEL}, |
| {"kerberosAccountsReauthenticationLabel", |
| IDS_SETTINGS_KERBEROS_ACCOUNTS_REAUTHENTICATION_LABEL}, |
| {"kerberosAccountsTicketActive", |
| IDS_SETTINGS_KERBEROS_ACCOUNTS_TICKET_ACTIVE}, |
| {"kerberosAccountsAccountRemovedTip", |
| IDS_SETTINGS_KERBEROS_ACCOUNTS_ACCOUNT_REMOVED_TIP}, |
| {"kerberosAccountsAccountRefreshedTip", |
| IDS_SETTINGS_KERBEROS_ACCOUNTS_ACCOUNT_REFRESHED_TIP}, |
| {"kerberosAccountsSignedIn", IDS_SETTINGS_KERBEROS_ACCOUNTS_SIGNED_IN}, |
| }; |
| AddLocalizedStringsBulk(html_source, kLocalizedStrings); |
| |
| PrefService* local_state = g_browser_process->local_state(); |
| |
| // Whether new Kerberos accounts may be added. |
| html_source->AddBoolean( |
| "kerberosAddAccountsAllowed", |
| local_state->GetBoolean(prefs::kKerberosAddAccountsAllowed)); |
| |
| // Kerberos accounts page with "Learn more" link. |
| html_source->AddString( |
| "kerberosAccountsDescription", |
| l10n_util::GetStringFUTF16( |
| IDS_SETTINGS_KERBEROS_ACCOUNTS_DESCRIPTION, |
| GetHelpUrlWithBoard(chrome::kKerberosAccountsLearnMoreURL))); |
| } |
| |
| void AddKerberosAddAccountDialogStrings(content::WebUIDataSource* html_source) { |
| static constexpr webui::LocalizedString kLocalizedStrings[] = { |
| {"kerberosAccountsAdvancedConfigLabel", |
| IDS_SETTINGS_KERBEROS_ACCOUNTS_ADVANCED_CONFIG_LABEL}, |
| {"kerberosAdvancedConfigTitle", |
| IDS_SETTINGS_KERBEROS_ADVANCED_CONFIG_TITLE}, |
| {"kerberosAdvancedConfigDesc", |
| IDS_SETTINGS_KERBEROS_ADVANCED_CONFIG_DESC}, |
| {"addKerberosAccountRememberPassword", |
| IDS_SETTINGS_ADD_KERBEROS_ACCOUNT_REMEMBER_PASSWORD}, |
| {"kerberosPassword", IDS_SETTINGS_KERBEROS_PASSWORD}, |
| {"kerberosUsername", IDS_SETTINGS_KERBEROS_USERNAME}, |
| {"addKerberosAccountDescription", |
| IDS_SETTINGS_ADD_KERBEROS_ACCOUNT_DESCRIPTION}, |
| {"kerberosErrorNetworkProblem", |
| IDS_SETTINGS_KERBEROS_ERROR_NETWORK_PROBLEM}, |
| {"kerberosErrorUsernameInvalid", |
| IDS_SETTINGS_KERBEROS_ERROR_USERNAME_INVALID}, |
| {"kerberosErrorUsernameUnknown", |
| IDS_SETTINGS_KERBEROS_ERROR_USERNAME_UNKNOWN}, |
| {"kerberosErrorDuplicatePrincipalName", |
| IDS_SETTINGS_KERBEROS_ERROR_DUPLICATE_PRINCIPAL_NAME}, |
| {"kerberosErrorContactingServer", |
| IDS_SETTINGS_KERBEROS_ERROR_CONTACTING_SERVER}, |
| {"kerberosErrorPasswordInvalid", |
| IDS_SETTINGS_KERBEROS_ERROR_PASSWORD_INVALID}, |
| {"kerberosErrorPasswordExpired", |
| IDS_SETTINGS_KERBEROS_ERROR_PASSWORD_EXPIRED}, |
| {"kerberosErrorKdcEncType", IDS_SETTINGS_KERBEROS_ERROR_KDC_ENC_TYPE}, |
| {"kerberosErrorGeneral", IDS_SETTINGS_KERBEROS_ERROR_GENERAL}, |
| {"kerberosConfigErrorSectionNestedInGroup", |
| IDS_SETTINGS_KERBEROS_CONFIG_ERROR_SECTION_NESTED_IN_GROUP}, |
| {"kerberosConfigErrorSectionSyntax", |
| IDS_SETTINGS_KERBEROS_CONFIG_ERROR_SECTION_SYNTAX}, |
| {"kerberosConfigErrorExpectedOpeningCurlyBrace", |
| IDS_SETTINGS_KERBEROS_CONFIG_ERROR_EXPECTED_OPENING_CURLY_BRACE}, |
| {"kerberosConfigErrorExtraCurlyBrace", |
| IDS_SETTINGS_KERBEROS_CONFIG_ERROR_EXTRA_CURLY_BRACE}, |
| {"kerberosConfigErrorRelationSyntax", |
| IDS_SETTINGS_KERBEROS_CONFIG_ERROR_RELATION_SYNTAX_ERROR}, |
| {"kerberosConfigErrorKeyNotSupported", |
| IDS_SETTINGS_KERBEROS_CONFIG_ERROR_KEY_NOT_SUPPORTED}, |
| {"kerberosConfigErrorSectionNotSupported", |
| IDS_SETTINGS_KERBEROS_CONFIG_ERROR_SECTION_NOT_SUPPORTED}, |
| {"kerberosConfigErrorKrb5FailedToParse", |
| IDS_SETTINGS_KERBEROS_CONFIG_ERROR_KRB5_FAILED_TO_PARSE}, |
| {"addKerberosAccountRefreshButtonLabel", |
| IDS_SETTINGS_ADD_KERBEROS_ACCOUNT_REFRESH_BUTTON_LABEL}, |
| {"addKerberosAccount", IDS_SETTINGS_ADD_KERBEROS_ACCOUNT}, |
| {"refreshKerberosAccount", IDS_SETTINGS_REFRESH_KERBEROS_ACCOUNT}, |
| }; |
| AddLocalizedStringsBulk(html_source, kLocalizedStrings); |
| |
| PrefService* local_state = g_browser_process->local_state(); |
| |
| // Whether the 'Remember password' checkbox is enabled. |
| html_source->AddBoolean( |
| "kerberosRememberPasswordEnabled", |
| local_state->GetBoolean(prefs::kKerberosRememberPasswordEnabled)); |
| |
| // Kerberos default configuration. |
| html_source->AddString( |
| "defaultKerberosConfig", |
| chromeos::KerberosCredentialsManager::GetDefaultKerberosConfig()); |
| } |
| |
| void AddLockScreenPageStrings(content::WebUIDataSource* html_source) { |
| static constexpr webui::LocalizedString kLocalizedStrings[] = { |
| {"lockScreenNotificationTitle", |
| IDS_ASH_SETTINGS_LOCK_SCREEN_NOTIFICATION_TITLE}, |
| {"lockScreenNotificationHideSensitive", |
| IDS_ASH_SETTINGS_LOCK_SCREEN_NOTIFICATION_HIDE_SENSITIVE}, |
| {"enableScreenlock", IDS_SETTINGS_PEOPLE_ENABLE_SCREENLOCK}, |
| {"lockScreenNotificationShow", |
| IDS_ASH_SETTINGS_LOCK_SCREEN_NOTIFICATION_SHOW}, |
| {"lockScreenPinOrPassword", |
| IDS_SETTINGS_PEOPLE_LOCK_SCREEN_PIN_OR_PASSWORD}, |
| {"lockScreenSetupFingerprintButton", |
| IDS_SETTINGS_PEOPLE_LOCK_SCREEN_FINGERPRINT_SETUP_BUTTON}, |
| {"lockScreenNotificationHide", |
| IDS_ASH_SETTINGS_LOCK_SCREEN_NOTIFICATION_HIDE}, |
| {"lockScreenEditFingerprints", |
| IDS_SETTINGS_PEOPLE_LOCK_SCREEN_EDIT_FINGERPRINTS}, |
| {"lockScreenPasswordOnly", IDS_SETTINGS_PEOPLE_LOCK_SCREEN_PASSWORD_ONLY}, |
| {"lockScreenChangePinButton", |
| IDS_SETTINGS_PEOPLE_LOCK_SCREEN_CHANGE_PIN_BUTTON}, |
| {"lockScreenEditFingerprintsDescription", |
| IDS_SETTINGS_PEOPLE_LOCK_SCREEN_EDIT_FINGERPRINTS_DESCRIPTION}, |
| {"lockScreenNumberFingerprints", |
| IDS_SETTINGS_PEOPLE_LOCK_SCREEN_NUM_FINGERPRINTS}, |
| {"lockScreenNone", IDS_SETTINGS_PEOPLE_LOCK_SCREEN_NONE}, |
| {"lockScreenFingerprintNewName", |
| IDS_SETTINGS_PEOPLE_LOCK_SCREEN_NEW_FINGERPRINT_DEFAULT_NAME}, |
| {"lockScreenDeleteFingerprintLabel", |
| IDS_SETTINGS_PEOPLE_LOCK_SCREEN_DELETE_FINGERPRINT_ARIA_LABEL}, |
| {"lockScreenOptionsLock", IDS_SETTINGS_PEOPLE_LOCK_SCREEN_OPTIONS_LOCK}, |
| {"lockScreenOptionsLoginLock", |
| IDS_SETTINGS_PEOPLE_LOCK_SCREEN_OPTIONS_LOGIN_LOCK}, |
| {"lockScreenSetupPinButton", |
| IDS_SETTINGS_PEOPLE_LOCK_SCREEN_SETUP_PIN_BUTTON}, |
| {"lockScreenTitleLock", IDS_SETTINGS_PEOPLE_LOCK_SCREEN_TITLE_LOCK}, |
| {"lockScreenTitleLoginLock", |
| IDS_SETTINGS_PEOPLE_LOCK_SCREEN_TITLE_LOGIN_LOCK}, |
| {"passwordPromptEnterPasswordLock", |
| IDS_SETTINGS_PEOPLE_PASSWORD_PROMPT_ENTER_PASSWORD_LOCK}, |
| {"passwordPromptEnterPasswordLoginLock", |
| IDS_SETTINGS_PEOPLE_PASSWORD_PROMPT_ENTER_PASSWORD_LOGIN_LOCK}, |
| }; |
| AddLocalizedStringsBulk(html_source, kLocalizedStrings); |
| } |
| |
| void AddUsersStrings(content::WebUIDataSource* html_source) { |
| static constexpr webui::LocalizedString kLocalizedStrings[] = { |
| {"usersModifiedByOwnerLabel", IDS_SETTINGS_USERS_MODIFIED_BY_OWNER_LABEL}, |
| {"guestBrowsingLabel", IDS_SETTINGS_USERS_GUEST_BROWSING_LABEL}, |
| {"settingsManagedLabel", IDS_SETTINGS_USERS_MANAGED_LABEL}, |
| {"showOnSigninLabel", IDS_SETTINGS_USERS_SHOW_ON_SIGNIN_LABEL}, |
| {"restrictSigninLabel", IDS_SETTINGS_USERS_RESTRICT_SIGNIN_LABEL}, |
| {"deviceOwnerLabel", IDS_SETTINGS_USERS_DEVICE_OWNER_LABEL}, |
| {"removeUserTooltip", IDS_SETTINGS_USERS_REMOVE_USER_TOOLTIP}, |
| {"addUsers", IDS_SETTINGS_USERS_ADD_USERS}, |
| {"addUsersEmail", IDS_SETTINGS_USERS_ADD_USERS_EMAIL}, |
| {"userExistsError", IDS_SETTINGS_USER_EXISTS_ERROR}, |
| }; |
| AddLocalizedStringsBulk(html_source, kLocalizedStrings); |
| } |
| |
| void AddGoogleAssistantStrings(content::WebUIDataSource* html_source, |
| Profile* profile) { |
| static constexpr webui::LocalizedString kLocalizedStrings[] = { |
| {"googleAssistantPageTitle", IDS_SETTINGS_GOOGLE_ASSISTANT}, |
| {"googleAssistantEnableContext", IDS_ASSISTANT_SCREEN_CONTEXT_TITLE}, |
| {"googleAssistantEnableContextDescription", |
| IDS_ASSISTANT_SCREEN_CONTEXT_DESC}, |
| {"googleAssistantEnableHotword", |
| IDS_SETTINGS_GOOGLE_ASSISTANT_ENABLE_HOTWORD}, |
| {"googleAssistantEnableHotwordDescription", |
| IDS_SETTINGS_GOOGLE_ASSISTANT_ENABLE_HOTWORD_DESCRIPTION}, |
| {"googleAssistantVoiceSettings", |
| IDS_SETTINGS_GOOGLE_ASSISTANT_VOICE_SETTINGS}, |
| {"googleAssistantVoiceSettingsDescription", |
| IDS_ASSISTANT_VOICE_MATCH_RECORDING}, |
| {"googleAssistantVoiceSettingsRetrainButton", |
| IDS_SETTINGS_GOOGLE_ASSISTANT_VOICE_SETTINGS_RETRAIN}, |
| {"googleAssistantEnableHotwordWithoutDspDescription", |
| IDS_SETTINGS_GOOGLE_ASSISTANT_ENABLE_HOTWORD_WITHOUT_DSP_DESCRIPTION}, |
| {"googleAssistantEnableHotwordWithoutDspRecommended", |
| IDS_SETTINGS_GOOGLE_ASSISTANT_ENABLE_HOTWORD_WITHOUT_DSP_RECOMMENDED}, |
| {"googleAssistantEnableHotwordWithoutDspAlwaysOn", |
| IDS_SETTINGS_GOOGLE_ASSISTANT_ENABLE_HOTWORD_WITHOUT_DSP_ALWAYS_ON}, |
| {"googleAssistantEnableHotwordWithoutDspOff", |
| IDS_SETTINGS_GOOGLE_ASSISTANT_ENABLE_HOTWORD_WITHOUT_DSP_OFF}, |
| {"googleAssistantEnableNotification", |
| IDS_SETTINGS_GOOGLE_ASSISTANT_ENABLE_NOTIFICATION}, |
| {"googleAssistantEnableNotificationDescription", |
| IDS_SETTINGS_GOOGLE_ASSISTANT_ENABLE_NOTIFICATION_DESCRIPTION}, |
| {"googleAssistantLaunchWithMicOpen", |
| IDS_SETTINGS_GOOGLE_ASSISTANT_LAUNCH_WITH_MIC_OPEN}, |
| {"googleAssistantLaunchWithMicOpenDescription", |
| IDS_SETTINGS_GOOGLE_ASSISTANT_LAUNCH_WITH_MIC_OPEN_DESCRIPTION}, |
| {"googleAssistantSettings", IDS_SETTINGS_GOOGLE_ASSISTANT_SETTINGS}, |
| }; |
| AddLocalizedStringsBulk(html_source, kLocalizedStrings); |
| |
| html_source->AddBoolean("hotwordDspAvailable", |
| chromeos::IsHotwordDspAvailable()); |
| html_source->AddBoolean( |
| "voiceMatchDisabled", |
| chromeos::assistant::features::IsVoiceMatchDisabled()); |
| } |
| |
| void AddPrintingStrings(content::WebUIDataSource* html_source) { |
| static constexpr webui::LocalizedString kLocalizedStrings[] = { |
| {"printingPageTitle", IDS_SETTINGS_PRINTING}, |
| {"cupsPrintersTitle", IDS_SETTINGS_PRINTING_CUPS_PRINTERS}, |
| {"cupsPrintersLearnMoreLabel", |
| IDS_SETTINGS_PRINTING_CUPS_PRINTERS_LEARN_MORE_LABEL}, |
| {"addCupsPrinter", IDS_SETTINGS_PRINTING_CUPS_PRINTERS_ADD_PRINTER}, |
| {"editPrinter", IDS_SETTINGS_PRINTING_CUPS_PRINTERS_EDIT}, |
| {"removePrinter", IDS_SETTINGS_PRINTING_CUPS_PRINTERS_REMOVE}, |
| {"setupPrinter", IDS_SETTINGS_PRINTING_CUPS_PRINTER_SETUP_BUTTON}, |
| {"setupPrinterAria", |
| IDS_SETTINGS_PRINTING_CUPS_PRINTER_SETUP_BUTTON_ARIA}, |
| {"savePrinter", IDS_SETTINGS_PRINTING_CUPS_PRINTER_SAVE_BUTTON}, |
| {"savePrinterAria", IDS_SETTINGS_PRINTING_CUPS_PRINTER_SAVE_BUTTON_ARIA}, |
| {"searchLabel", IDS_SETTINGS_PRINTING_CUPS_SEARCH_LABEL}, |
| {"noSearchResults", IDS_SEARCH_NO_RESULTS}, |
| {"printerDetailsTitle", IDS_SETTINGS_PRINTING_CUPS_PRINTER_DETAILS_TITLE}, |
| {"printerName", IDS_SETTINGS_PRINTING_CUPS_PRINTER_DETAILS_NAME}, |
| {"printerModel", IDS_SETTINGS_PRINTING_CUPS_PRINTER_DETAILS_MODEL}, |
| {"printerQueue", IDS_SETTINGS_PRINTING_CUPS_PRINTER_DETAILS_QUEUE}, |
| {"savedPrintersTitle", IDS_SETTINGS_PRINTING_CUPS_SAVED_PRINTERS_TITLE}, |
| {"savedPrintersCountMany", |
| IDS_SETTINGS_PRINTING_CUPS_PRINTERS_SAVED_PRINTERS_COUNT_MANY}, |
| {"savedPrintersCountOne", |
| IDS_SETTINGS_PRINTING_CUPS_PRINTERS_SAVED_PRINTERS_COUNT_ONE}, |
| {"savedPrintersCountNone", |
| IDS_SETTINGS_PRINTING_CUPS_PRINTERS_SAVED_PRINTERS_COUNT_NONE}, |
| {"showMorePrinters", IDS_SETTINGS_PRINTING_CUPS_SHOW_MORE}, |
| {"addPrintersNearbyTitle", |
| IDS_SETTINGS_PRINTING_CUPS_ADD_PRINTERS_NEARBY_TITLE}, |
| {"addPrintersManuallyTitle", |
| IDS_SETTINGS_PRINTING_CUPS_ADD_PRINTERS_MANUALLY_TITLE}, |
| {"manufacturerAndModelDialogTitle", |
| IDS_SETTINGS_PRINTING_CUPS_SELECT_MANUFACTURER_AND_MODEL_TITLE}, |
| {"nearbyPrintersListTitle", |
| IDS_SETTINGS_PRINTING_CUPS_PRINTERS_AVAILABLE_PRINTERS}, |
| {"nearbyPrintersCountMany", |
| IDS_SETTINGS_PRINTING_CUPS_PRINTERS_AVAILABLE_PRINTERS_COUNT_MANY}, |
| {"nearbyPrintersCountOne", |
| IDS_SETTINGS_PRINTING_CUPS_PRINTERS_AVAILABLE_PRINTER_COUNT_ONE}, |
| {"nearbyPrintersCountNone", |
| IDS_SETTINGS_PRINTING_CUPS_PRINTERS_AVAILABLE_PRINTER_COUNT_NONE}, |
| {"nearbyPrintersListDescription", |
| IDS_SETTINGS_PRINTING_CUPS_PRINTERS_ADD_DETECTED_OR_NEW_PRINTER}, |
| {"manufacturerAndModelAdditionalInformation", |
| IDS_SETTINGS_PRINTING_CUPS_MANUFACTURER_MODEL_ADDITIONAL_INFORMATION}, |
| {"addPrinterButtonText", |
| IDS_SETTINGS_PRINTING_CUPS_ADD_PRINTER_BUTTON_ADD}, |
| {"printerDetailsAdvanced", IDS_SETTINGS_PRINTING_CUPS_PRINTER_ADVANCED}, |
| {"printerDetailsA11yLabel", |
| IDS_SETTINGS_PRINTING_CUPS_PRINTER_ADVANCED_ACCESSIBILITY_LABEL}, |
| {"printerAddress", IDS_SETTINGS_PRINTING_CUPS_PRINTER_ADVANCED_ADDRESS}, |
| {"printerProtocol", IDS_SETTINGS_PRINTING_CUPS_PRINTER_ADVANCED_PROTOCOL}, |
| {"printerURI", IDS_SETTINGS_PRINTING_CUPS_PRINTER_ADVANCED_URI}, |
| {"manuallyAddPrinterButtonText", |
| IDS_SETTINGS_PRINTING_CUPS_ADD_PRINTER_BUTTON_MANUAL_ADD}, |
| {"discoverPrintersButtonText", |
| IDS_SETTINGS_PRINTING_CUPS_ADD_PRINTER_BUTTON_DISCOVER_PRINTERS}, |
| {"printerProtocolIpp", IDS_SETTINGS_PRINTING_CUPS_PRINTER_PROTOCOL_IPP}, |
| {"printerProtocolIpps", IDS_SETTINGS_PRINTING_CUPS_PRINTER_PROTOCOL_IPPS}, |
| {"printerProtocolHttp", IDS_SETTINGS_PRINTING_CUPS_PRINTER_PROTOCOL_HTTP}, |
| {"printerProtocolHttps", |
| IDS_SETTINGS_PRINTING_CUPS_PRINTER_PROTOCOL_HTTPS}, |
| {"printerProtocolAppSocket", |
| IDS_SETTINGS_PRINTING_CUPS_PRINTER_PROTOCOL_APP_SOCKET}, |
| {"printerProtocolLpd", IDS_SETTINGS_PRINTING_CUPS_PRINTER_PROTOCOL_LPD}, |
| {"printerProtocolUsb", IDS_SETTINGS_PRINTING_CUPS_PRINTER_PROTOCOL_USB}, |
| {"printerProtocolIppUsb", |
| IDS_SETTINGS_PRINTING_CUPS_PRINTER_PROTOCOL_IPPUSB}, |
| {"printerConfiguringMessage", |
| IDS_SETTINGS_PRINTING_CUPS_PRINTER_CONFIGURING_MESSAGE}, |
| {"printerManufacturer", IDS_SETTINGS_PRINTING_CUPS_PRINTER_MANUFACTURER}, |
| {"selectDriver", IDS_SETTINGS_PRINTING_CUPS_PRINTER_SELECT_DRIVER}, |
| {"selectDriverButtonText", |
| IDS_SETTINGS_PRINTING_CUPS_PRINTER_BUTTON_SELECT_DRIVER}, |
| {"selectDriverButtonAriaLabel", |
| IDS_SETTINGS_PRINTING_CUPS_PRINTER_BUTTON_SELECT_DRIVER_ARIA_LABEL}, |
| {"selectDriverErrorMessage", |
| IDS_SETTINGS_PRINTING_CUPS_PRINTER_INVALID_DRIVER}, |
| {"printerAddedSuccessfulMessage", |
| IDS_SETTINGS_PRINTING_CUPS_PRINTER_ADDED_PRINTER_DONE_MESSAGE}, |
| {"printerEditedSuccessfulMessage", |
| IDS_SETTINGS_PRINTING_CUPS_PRINTER_EDITED_PRINTER_DONE_MESSAGE}, |
| {"printerUnavailableMessage", |
| IDS_SETTINGS_PRINTING_CUPS_PRINTER_UNAVAILABLE_MESSAGE}, |
| {"noPrinterNearbyMessage", |
| IDS_SETTINGS_PRINTING_CUPS_PRINTER_NO_PRINTER_NEARBY}, |
| {"searchingNearbyPrinters", |
| IDS_SETTINGS_PRINTING_CUPS_PRINTER_SEARCHING_NEARBY_PRINTER}, |
| {"printerAddedFailedMessage", |
| IDS_SETTINGS_PRINTING_CUPS_PRINTER_ADDED_PRINTER_ERROR_MESSAGE}, |
| {"printerAddedFatalErrorMessage", |
| IDS_SETTINGS_PRINTING_CUPS_PRINTER_ADDED_PRINTER_FATAL_ERROR_MESSAGE}, |
| {"printerAddedUnreachableMessage", |
| IDS_SETTINGS_PRINTING_CUPS_PRINTER_ADDED_PRINTER_PRINTER_UNREACHABLE_MESSAGE}, |
| {"printerAddedPpdTooLargeMessage", |
| IDS_SETTINGS_PRINTING_CUPS_PRINTER_ADDED_PRINTER_PPD_TOO_LARGE_MESSAGE}, |
| {"printerAddedInvalidPpdMessage", |
| IDS_SETTINGS_PRINTING_CUPS_PRINTER_ADDED_PRINTER_INVALID_PPD_MESSAGE}, |
| {"printerAddedPpdNotFoundMessage", |
| IDS_SETTINGS_PRINTING_CUPS_PRINTER_ADDED_PRINTER_PPD_NOT_FOUND}, |
| {"printerAddedPpdUnretrievableMessage", |
| IDS_SETTINGS_PRINTING_CUPS_PRINTER_ADDED_PRINTER_PPD_UNRETRIEVABLE}, |
| {"printerAddedNativePrintersNotAllowedMessage", |
| IDS_SETTINGS_PRINTING_CUPS_PRINTER_ADDED_NATIVE_PRINTERS_NOT_ALLOWED_MESSAGE}, |
| {"editPrinterInvalidPrinterUpdate", |
| IDS_SETTINGS_PRINTING_CUPS_EDIT_PRINTER_INVALID_PRINTER_UPDATE}, |
| {"requireNetworkMessage", |
| IDS_SETTINGS_PRINTING_CUPS_PRINTER_REQUIRE_INTERNET_MESSAGE}, |
| {"checkNetworkMessage", |
| IDS_SETTINGS_PRINTING_CUPS_PRINTER_CHECK_CONNECTION_MESSAGE}, |
| {"noInternetConnection", |
| IDS_SETTINGS_PRINTING_CUPS_PRINTER_NO_INTERNET_CONNECTION}, |
| {"checkNetworkAndTryAgain", |
| IDS_SETTINGS_PRINTING_CUPS_PRINTER_CONNECT_TO_NETWORK_SUBTEXT}, |
| {"editPrinterDialogTitle", |
| IDS_SETTINGS_PRINTING_CUPS_EDIT_PRINTER_DIALOG_TITLE}, |
| {"editPrinterButtonText", IDS_SETTINGS_PRINTING_CUPS_EDIT_PRINTER_BUTTON}, |
| {"currentPpdMessage", |
| IDS_SETTINGS_PRINTING_CUPS_EDIT_PRINTER_CURRENT_PPD_MESSAGE}, |
| {"printerEulaNotice", IDS_SETTINGS_PRINTING_CUPS_EULA_NOTICE}, |
| {"ippPrinterUnreachable", IDS_SETTINGS_PRINTING_CUPS_IPP_URI_UNREACHABLE}, |
| {"generalPrinterDialogError", |
| IDS_SETTINGS_PRINTING_CUPS_DIALOG_GENERAL_ERROR}, |
| {"printServerButtonText", IDS_SETTINGS_PRINTING_CUPS_PRINT_SERVER}, |
| {"addPrintServerTitle", |
| IDS_SETTINGS_PRINTING_CUPS_ADD_PRINT_SERVER_TITLE}, |
| {"printServerAddress", IDS_SETTINGS_PRINTING_CUPS_PRINT_SERVER_ADDRESS}, |
| {"printServerFoundZeroPrinters", |
| IDS_SETTINGS_PRINTING_CUPS_PRINT_SERVER_FOUND_ZERO_PRINTERS}, |
| {"printServerFoundOnePrinter", |
| IDS_SETTINGS_PRINTING_CUPS_PRINT_SERVER_FOUND_ONE_PRINTER}, |
| {"printServerFoundManyPrinters", |
| IDS_SETTINGS_PRINTING_CUPS_PRINT_SERVER_FOUND_MANY_PRINTERS}, |
| {"printServerInvalidUrlAddress", |
| IDS_SETTINGS_PRINTING_CUPS_PRINT_SERVER_INVALID_URL_ADDRESS}, |
| {"printServerConnectionError", |
| IDS_SETTINGS_PRINTING_CUPS_PRINT_SERVER_CONNECTION_ERROR}, |
| {"printServerConfigurationErrorMessage", |
| IDS_SETTINGS_PRINTING_CUPS_PRINT_SERVER_REACHABLE_BUT_CANNOT_ADD}, |
| }; |
| AddLocalizedStringsBulk(html_source, kLocalizedStrings); |
| |
| html_source->AddString("printingCUPSPrintLearnMoreUrl", |
| GetHelpUrlWithBoard(chrome::kCupsPrintLearnMoreURL)); |
| html_source->AddString( |
| "printingCUPSPrintPpdLearnMoreUrl", |
| GetHelpUrlWithBoard(chrome::kCupsPrintPPDLearnMoreURL)); |
| html_source->AddBoolean( |
| "consumerPrintServerUiEnabled", |
| base::FeatureList::IsEnabled(::features::kPrintServerUi)); |
| } |
| |
| void AddSearchInSettingsStrings(content::WebUIDataSource* html_source) { |
| static constexpr webui::LocalizedString kLocalizedStrings[] = { |
| {"searchPrompt", IDS_SETTINGS_SEARCH_PROMPT}, |
| {"searchNoResults", IDS_SEARCH_NO_RESULTS}, |
| {"searchResults", IDS_SEARCH_RESULTS}, |
| // TODO(dpapad): IDS_DOWNLOAD_CLEAR_SEARCH and IDS_HISTORY_CLEAR_SEARCH |
| // are identical, merge them to one and re-use here. |
| {"clearSearch", IDS_DOWNLOAD_CLEAR_SEARCH}, |
| }; |
| AddLocalizedStringsBulk(html_source, kLocalizedStrings); |
| |
| html_source->AddString( |
| "searchNoOsResultsHelp", |
| l10n_util::GetStringFUTF16( |
| IDS_SETTINGS_SEARCH_NO_RESULTS_HELP, |
| base::ASCIIToUTF16(chrome::kOsSettingsSearchHelpURL))); |
| } |
| |
| void AddDateTimeStrings(content::WebUIDataSource* html_source) { |
| static constexpr webui::LocalizedString kLocalizedStrings[] = { |
| {"dateTimePageTitle", IDS_SETTINGS_DATE_TIME}, |
| {"timeZone", IDS_SETTINGS_TIME_ZONE}, |
| {"selectTimeZoneResolveMethod", |
| IDS_SETTINGS_SELECT_TIME_ZONE_RESOLVE_METHOD}, |
| {"timeZoneGeolocation", IDS_SETTINGS_TIME_ZONE_GEOLOCATION}, |
| {"timeZoneButton", IDS_SETTINGS_TIME_ZONE_BUTTON}, |
| {"timeZoneSubpageTitle", IDS_SETTINGS_TIME_ZONE_SUBPAGE_TITLE}, |
| {"setTimeZoneAutomaticallyDisabled", |
| IDS_SETTINGS_TIME_ZONE_DETECTION_MODE_DISABLED}, |
| {"setTimeZoneAutomaticallyOn", |
| IDS_SETTINGS_TIME_ZONE_DETECTION_SET_AUTOMATICALLY}, |
| {"setTimeZoneAutomaticallyOff", |
| IDS_SETTINGS_TIME_ZONE_DETECTION_CHOOSE_FROM_LIST}, |
| {"setTimeZoneAutomaticallyIpOnlyDefault", |
| IDS_SETTINGS_TIME_ZONE_DETECTION_MODE_IP_ONLY_DEFAULT}, |
| {"setTimeZoneAutomaticallyWithWiFiAccessPointsData", |
| IDS_SETTINGS_TIME_ZONE_DETECTION_MODE_SEND_WIFI_AP}, |
| {"setTimeZoneAutomaticallyWithAllLocationInfo", |
| IDS_SETTINGS_TIME_ZONE_DETECTION_MODE_SEND_ALL_INFO}, |
| {"use24HourClock", IDS_SETTINGS_USE_24_HOUR_CLOCK}, |
| {"setDateTime", IDS_SETTINGS_SET_DATE_TIME}, |
| }; |
| AddLocalizedStringsBulk(html_source, kLocalizedStrings); |
| |
| html_source->AddString( |
| "timeZoneSettingsLearnMoreURL", |
| base::ASCIIToUTF16(base::StringPrintf( |
| chrome::kTimeZoneSettingsLearnMoreURL, |
| g_browser_process->GetApplicationLocale().c_str()))); |
| } |
| |
| void AddAboutStrings(content::WebUIDataSource* html_source, Profile* profile) { |
| // Top level About page strings. |
| static constexpr webui::LocalizedString kLocalizedStrings[] = { |
| {"aboutProductLogoAlt", IDS_SHORT_PRODUCT_LOGO_ALT_TEXT}, |
| #if BUILDFLAG(GOOGLE_CHROME_BRANDING) |
| {"aboutReportAnIssue", IDS_SETTINGS_ABOUT_PAGE_REPORT_AN_ISSUE}, |
| #endif |
| {"aboutRelaunch", IDS_SETTINGS_ABOUT_PAGE_RELAUNCH}, |
| {"aboutUpgradeCheckStarted", IDS_SETTINGS_ABOUT_UPGRADE_CHECK_STARTED}, |
| {"aboutUpgradeRelaunch", IDS_SETTINGS_UPGRADE_SUCCESSFUL_RELAUNCH}, |
| {"aboutUpgradeUpdating", IDS_SETTINGS_UPGRADE_UPDATING}, |
| {"aboutUpgradeUpdatingPercent", IDS_SETTINGS_UPGRADE_UPDATING_PERCENT}, |
| {"aboutGetHelpUsingChrome", IDS_SETTINGS_GET_HELP_USING_CHROME}, |
| {"aboutPageTitle", IDS_SETTINGS_ABOUT_PROGRAM}, |
| {"aboutProductTitle", IDS_PRODUCT_NAME}, |
| |
| {"aboutEndOfLifeTitle", IDS_SETTINGS_ABOUT_PAGE_END_OF_LIFE_TITLE}, |
| {"aboutRelaunchAndPowerwash", |
| IDS_SETTINGS_ABOUT_PAGE_RELAUNCH_AND_POWERWASH}, |
| {"aboutRollbackInProgress", IDS_SETTINGS_UPGRADE_ROLLBACK_IN_PROGRESS}, |
| {"aboutRollbackSuccess", IDS_SETTINGS_UPGRADE_ROLLBACK_SUCCESS}, |
| {"aboutUpgradeUpdatingChannelSwitch", |
| IDS_SETTINGS_UPGRADE_UPDATING_CHANNEL_SWITCH}, |
| {"aboutUpgradeSuccessChannelSwitch", |
| IDS_SETTINGS_UPGRADE_SUCCESSFUL_CHANNEL_SWITCH}, |
| {"aboutTPMFirmwareUpdateTitle", |
| IDS_SETTINGS_ABOUT_TPM_FIRMWARE_UPDATE_TITLE}, |
| {"aboutTPMFirmwareUpdateDescription", |
| IDS_SETTINGS_ABOUT_TPM_FIRMWARE_UPDATE_DESCRIPTION}, |
| |
| // About page, channel switcher dialog. |
| {"aboutChangeChannel", IDS_SETTINGS_ABOUT_PAGE_CHANGE_CHANNEL}, |
| {"aboutChangeChannelAndPowerwash", |
| IDS_SETTINGS_ABOUT_PAGE_CHANGE_CHANNEL_AND_POWERWASH}, |
| {"aboutDelayedWarningMessage", |
| IDS_SETTINGS_ABOUT_PAGE_DELAYED_WARNING_MESSAGE}, |
| {"aboutDelayedWarningTitle", IDS_SETTINGS_ABOUT_PAGE_DELAYED_WARNING_TITLE}, |
| {"aboutPowerwashWarningMessage", |
| IDS_SETTINGS_ABOUT_PAGE_POWERWASH_WARNING_MESSAGE}, |
| {"aboutPowerwashWarningTitle", |
| IDS_SETTINGS_ABOUT_PAGE_POWERWASH_WARNING_TITLE}, |
| {"aboutUnstableWarningMessage", |
| IDS_SETTINGS_ABOUT_PAGE_UNSTABLE_WARNING_MESSAGE}, |
| {"aboutUnstableWarningTitle", |
| IDS_SETTINGS_ABOUT_PAGE_UNSTABLE_WARNING_TITLE}, |
| {"aboutChannelDialogBeta", IDS_SETTINGS_ABOUT_PAGE_DIALOG_CHANNEL_BETA}, |
| {"aboutChannelDialogDev", IDS_SETTINGS_ABOUT_PAGE_DIALOG_CHANNEL_DEV}, |
| {"aboutChannelDialogStable", IDS_SETTINGS_ABOUT_PAGE_DIALOG_CHANNEL_STABLE}, |
| |
| // About page, update warning dialog. |
| {"aboutUpdateWarningMessage", |
| IDS_SETTINGS_ABOUT_PAGE_UPDATE_WARNING_MESSAGE}, |
| {"aboutUpdateWarningTitle", IDS_SETTINGS_ABOUT_PAGE_UPDATE_WARNING_TITLE}, |
| |
| // Detailed build information |
| {"aboutBuildDetailsTitle", IDS_OS_SETTINGS_ABOUT_PAGE_BUILD_DETAILS}, |
| {"aboutChannelBeta", IDS_SETTINGS_ABOUT_PAGE_CURRENT_CHANNEL_BETA}, |
| {"aboutChannelCanary", IDS_SETTINGS_ABOUT_PAGE_CURRENT_CHANNEL_CANARY}, |
| {"aboutChannelDev", IDS_SETTINGS_ABOUT_PAGE_CURRENT_CHANNEL_DEV}, |
| {"aboutChannelLabel", IDS_SETTINGS_ABOUT_PAGE_CHANNEL}, |
| {"aboutChannelStable", IDS_SETTINGS_ABOUT_PAGE_CURRENT_CHANNEL_STABLE}, |
| {"aboutCheckForUpdates", IDS_SETTINGS_ABOUT_PAGE_CHECK_FOR_UPDATES}, |
| {"aboutCurrentlyOnChannel", IDS_SETTINGS_ABOUT_PAGE_CURRENT_CHANNEL}, |
| {"aboutDetailedBuildInfo", IDS_SETTINGS_ABOUT_PAGE_DETAILED_BUILD_INFO}, |
| {version_ui::kApplicationLabel, IDS_PRODUCT_NAME}, |
| {version_ui::kPlatform, IDS_PLATFORM_LABEL}, |
| {version_ui::kFirmwareVersion, IDS_VERSION_UI_FIRMWARE_VERSION}, |
| {version_ui::kARC, IDS_ARC_LABEL}, |
| {"aboutBuildDetailsCopyTooltipLabel", |
| IDS_OS_SETTINGS_ABOUT_PAGE_BUILD_DETAILS_COPY_TOOLTIP_LABEL}, |
| {"aboutIsArcStatusTitle", IDS_OS_SETTINGS_ABOUT_ARC_STATUS_TITLE}, |
| {"aboutIsDeveloperModeTitle", IDS_OS_SETTINGS_ABOUT_DEVELOPER_MODE}, |
| {"isEnterpriseManagedTitle", |
| IDS_OS_SETTINGS_ABOUT_PAGE_ENTERPRISE_ENNROLLED_TITLE}, |
| {"aboutOsPageTitle", IDS_SETTINGS_ABOUT_OS}, |
| {"aboutGetHelpUsingChromeOs", IDS_SETTINGS_GET_HELP_USING_CHROME_OS}, |
| {"aboutOsProductTitle", IDS_PRODUCT_OS_NAME}, |
| {"aboutReleaseNotesOffline", IDS_SETTINGS_ABOUT_PAGE_RELEASE_NOTES}, |
| {"aboutShowReleaseNotes", IDS_SETTINGS_ABOUT_PAGE_SHOW_RELEASE_NOTES}, |
| }; |
| AddLocalizedStringsBulk(html_source, kLocalizedStrings); |
| |
| html_source->AddString("aboutTPMFirmwareUpdateLearnMoreURL", |
| chrome::kTPMFirmwareUpdateLearnMoreURL); |
| html_source->AddString( |
| "aboutUpgradeUpToDate", |
| ui::SubstituteChromeOSDeviceType(IDS_SETTINGS_UPGRADE_UP_TO_DATE)); |
| html_source->AddString("managementPage", |
| ManagementUI::GetManagementPageSubtitle(profile)); |
| } |
| |
| void AddResetStrings(content::WebUIDataSource* html_source) { |
| static constexpr webui::LocalizedString kLocalizedStrings[] = { |
| {"resetPageTitle", IDS_SETTINGS_RESET}, |
| {"powerwashTitle", IDS_SETTINGS_FACTORY_RESET}, |
| {"powerwashDialogTitle", IDS_SETTINGS_FACTORY_RESET_HEADING}, |
| {"powerwashDialogButton", IDS_SETTINGS_RESTART}, |
| {"powerwashButton", IDS_SETTINGS_FACTORY_RESET_BUTTON_LABEL}, |
| {"powerwashDialogExplanation", IDS_SETTINGS_FACTORY_RESET_WARNING}, |
| {"powerwashLearnMoreUrl", IDS_FACTORY_RESET_HELP_URL}, |
| {"powerwashButtonRoleDescription", |
| IDS_SETTINGS_FACTORY_RESET_BUTTON_ROLE}, |
| }; |
| AddLocalizedStringsBulk(html_source, kLocalizedStrings); |
| |
| html_source->AddString( |
| "powerwashDescription", |
| l10n_util::GetStringFUTF16(IDS_SETTINGS_FACTORY_RESET_DESCRIPTION, |
| l10n_util::GetStringUTF16(IDS_PRODUCT_NAME))); |
| } |
| |
| void AddSearchStrings(content::WebUIDataSource* html_source, Profile* profile) { |
| static constexpr webui::LocalizedString kLocalizedStrings[] = { |
| {"osSearchEngineLabel", IDS_OS_SETTINGS_SEARCH_ENGINE_LABEL}, |
| {"searchGoogleAssistant", IDS_SETTINGS_SEARCH_GOOGLE_ASSISTANT}, |
| {"searchGoogleAssistantEnabled", |
| IDS_SETTINGS_SEARCH_GOOGLE_ASSISTANT_ENABLED}, |
| {"searchGoogleAssistantDisabled", |
| IDS_SETTINGS_SEARCH_GOOGLE_ASSISTANT_DISABLED}, |
| {"searchGoogleAssistantOn", IDS_SETTINGS_SEARCH_GOOGLE_ASSISTANT_ON}, |
| {"searchGoogleAssistantOff", IDS_SETTINGS_SEARCH_GOOGLE_ASSISTANT_OFF}, |
| }; |
| AddLocalizedStringsBulk(html_source, kLocalizedStrings); |
| |
| // NOTE: This will be false when the flag is disabled. |
| const bool is_assistant_allowed = |
| ::assistant::IsAssistantAllowedForProfile(profile) == |
| ash::mojom::AssistantAllowedState::ALLOWED; |
| html_source->AddBoolean("isAssistantAllowed", is_assistant_allowed); |
| html_source->AddLocalizedString("osSearchPageTitle", |
| is_assistant_allowed |
| ? IDS_SETTINGS_SEARCH_AND_ASSISTANT |
| : IDS_SETTINGS_SEARCH); |
| html_source->AddString("searchExplanation", |
| l10n_util::GetStringFUTF16( |
| IDS_SETTINGS_SEARCH_EXPLANATION, |
| base::ASCIIToUTF16(chrome::kOmniboxLearnMoreURL))); |
| html_source->AddString( |
| "osSearchEngineTooltip", |
| ui::SubstituteChromeOSDeviceType(IDS_OS_SETTINGS_SEARCH_ENGINE_TOOLTIP)); |
| } |
| |
| void AddPrivacyStrings(content::WebUIDataSource* html_source) { |
| static constexpr webui::LocalizedString kLocalizedStrings[] = { |
| {"privacyPageTitle", IDS_SETTINGS_PRIVACY}, |
| {"enableLogging", IDS_SETTINGS_ENABLE_LOGGING_PREF}, |
| {"enableLoggingDesc", IDS_SETTINGS_ENABLE_LOGGING_PREF_DESC}, |
| {"wakeOnWifi", IDS_SETTINGS_WAKE_ON_WIFI_DESCRIPTION}, |
| {"enableContentProtectionAttestation", |
| IDS_SETTINGS_ENABLE_CONTENT_PROTECTION_ATTESTATION}, |
| }; |
| AddLocalizedStringsBulk(html_source, kLocalizedStrings); |
| |
| html_source->AddString("syncAndGoogleServicesLearnMoreURL", |
| chrome::kSyncAndGoogleServicesLearnMoreURL); |
| ::settings::AddPersonalizationOptionsStrings(html_source); |
| } |
| |
| void AddPeoplePageStrings(content::WebUIDataSource* html_source, |
| Profile* profile) { |
| static constexpr webui::LocalizedString kLocalizedStrings[] = { |
| {"osPeoplePageTitle", IDS_OS_SETTINGS_PEOPLE}, |
| {"accountManagerSubMenuLabel", |
| IDS_SETTINGS_ACCOUNT_MANAGER_SUBMENU_LABEL}, |
| {"accountManagerPageTitle", IDS_SETTINGS_ACCOUNT_MANAGER_PAGE_TITLE}, |
| {"kerberosAccountsSubMenuLabel", |
| IDS_SETTINGS_KERBEROS_ACCOUNTS_SUBMENU_LABEL}, |
| {"accountManagerPageTitle", IDS_SETTINGS_ACCOUNT_MANAGER_PAGE_TITLE}, |
| {"kerberosAccountsPageTitle", IDS_SETTINGS_KERBEROS_ACCOUNTS_PAGE_TITLE}, |
| {"lockScreenFingerprintTitle", |
| IDS_SETTINGS_PEOPLE_LOCK_SCREEN_FINGERPRINT_SUBPAGE_TITLE}, |
| {"manageOtherPeople", IDS_SETTINGS_PEOPLE_MANAGE_OTHER_PEOPLE}, |
| {"osSyncPageTitle", IDS_OS_SETTINGS_SYNC_PAGE_TITLE}, |
| {"syncAndNonPersonalizedServices", |
| IDS_SETTINGS_SYNC_SYNC_AND_NON_PERSONALIZED_SERVICES}, |
| {"syncDisconnectConfirm", IDS_SETTINGS_SYNC_DISCONNECT_CONFIRM}, |
| }; |
| AddLocalizedStringsBulk(html_source, kLocalizedStrings); |
| |
| // Toggles the Chrome OS Account Manager submenu in the People section. |
| html_source->AddBoolean("isAccountManagerEnabled", |
| chromeos::IsAccountManagerAvailable(profile)); |
| |
| if (chromeos::features::IsSplitSyncConsentEnabled()) { |
| static constexpr webui::LocalizedString kTurnOffStrings[] = { |
| {"syncDisconnect", IDS_SETTINGS_PEOPLE_SYNC_TURN_OFF}, |
| {"syncDisconnectTitle", |
| IDS_SETTINGS_TURN_OFF_SYNC_AND_SIGN_OUT_DIALOG_TITLE}, |
| }; |
| AddLocalizedStringsBulk(html_source, kTurnOffStrings); |
| } else { |
| static constexpr webui::LocalizedString kSignOutStrings[] = { |
| {"syncDisconnect", IDS_SETTINGS_PEOPLE_SIGN_OUT}, |
| {"syncDisconnectTitle", IDS_SETTINGS_SYNC_DISCONNECT_TITLE}, |
| }; |
| AddLocalizedStringsBulk(html_source, kSignOutStrings); |
| } |
| |
| std::string sync_dashboard_url = |
| google_util::AppendGoogleLocaleParam( |
| GURL(chrome::kSyncGoogleDashboardURL), |
| g_browser_process->GetApplicationLocale()) |
| .spec(); |
| |
| html_source->AddString( |
| "syncDisconnectExplanation", |
| l10n_util::GetStringFUTF8(IDS_SETTINGS_SYNC_DISCONNECT_EXPLANATION, |
| base::ASCIIToUTF16(sync_dashboard_url))); |
| |
| AddAccountManagerPageStrings(html_source); |
| AddKerberosAccountsPageStrings(html_source); |
| AddKerberosAddAccountDialogStrings(html_source); |
| AddLockScreenPageStrings(html_source); |
| AddFingerprintListStrings(html_source); |
| AddFingerprintStrings(html_source); |
| AddSetupFingerprintDialogStrings(html_source); |
| AddSetupPinDialogStrings(html_source); |
| AddSyncControlsStrings(html_source); |
| |
| ::settings::AddSyncControlsStrings(html_source); |
| ::settings::AddSyncAccountControlStrings(html_source); |
| ::settings::AddPasswordPromptDialogStrings(html_source); |
| ::settings::AddSyncPageStrings(html_source); |
| } |
| |
| void AddPageVisibilityStrings(content::WebUIDataSource* html_source) { |
| PrefService* local_state = g_browser_process->local_state(); |
| // Toggles the Chrome OS Kerberos Accounts submenu in the People section. |
| // Note that the handler is also dependent on this pref. |
| html_source->AddBoolean("isKerberosEnabled", |
| local_state->GetBoolean(prefs::kKerberosEnabled)); |
| } |
| |
| } // namespace |
| |
| OsSettingsLocalizedStringsProvider::OsSettingsLocalizedStringsProvider( |
| Profile* profile, |
| local_search_service::mojom::LocalSearchService* local_search_service) { |
| local_search_service->GetIndex( |
| local_search_service::mojom::LocalSearchService::IndexId::CROS_SETTINGS, |
| index_remote_.BindNewPipeAndPassReceiver()); |
| |
| // Add per-page string providers. |
| // TODO(khorimoto): Add providers for the remaining pages. |
| per_page_providers_.push_back( |
| std::make_unique<InternetStringsProvider>(profile, /*delegate=*/this)); |
| } |
| |
| OsSettingsLocalizedStringsProvider::~OsSettingsLocalizedStringsProvider() = |
| default; |
| |
| void OsSettingsLocalizedStringsProvider::AddOsLocalizedStrings( |
| content::WebUIDataSource* html_source, |
| Profile* profile) { |
| for (const auto& per_page_provider : per_page_providers_) |
| per_page_provider->AddUiStrings(html_source); |
| |
| // TODO(khorimoto): Migrate these to OsSettingsPerPageStringsProvider |
| // instances. |
| AddAboutStrings(html_source, profile); |
| AddA11yStrings(html_source); |
| AddAndroidAppStrings(html_source); |
| AddAppManagementStrings(html_source); |
| AddAppsStrings(html_source); |
| AddBluetoothStrings(html_source); |
| AddChromeOSUserStrings(html_source, profile); |
| AddCommonStrings(html_source, profile); |
| AddCrostiniStrings(html_source, profile); |
| AddDateTimeStrings(html_source); |
| AddDeviceStrings(html_source); |
| AddFilesStrings(html_source); |
| AddGoogleAssistantStrings(html_source, profile); |
| AddLanguagesStrings(html_source); |
| AddMultideviceStrings(html_source); |
| AddParentalControlStrings(html_source); |
| AddPageVisibilityStrings(html_source); |
| AddPeoplePageStrings(html_source, profile); |
| AddPersonalizationStrings(html_source); |
| AddPluginVmStrings(html_source, profile); |
| AddPrintingStrings(html_source); |
| AddPrivacyStrings(html_source); |
| AddResetStrings(html_source); |
| AddSearchInSettingsStrings(html_source); |
| AddSearchStrings(html_source, profile); |
| AddUsersStrings(html_source); |
| |
| policy_indicator::AddLocalizedStrings(html_source); |
| |
| html_source->UseStringsJs(); |
| } |
| |
| const SearchConcept* |
| OsSettingsLocalizedStringsProvider::GetCanonicalTagMetadata( |
| int canonical_message_id) const { |
| const auto it = canonical_id_to_metadata_map_.find(canonical_message_id); |
| if (it == canonical_id_to_metadata_map_.end()) |
| return nullptr; |
| return it->second; |
| } |
| |
| void OsSettingsLocalizedStringsProvider::Shutdown() { |
| index_remote_.reset(); |
| } |
| |
| void OsSettingsLocalizedStringsProvider::AddSearchTags( |
| const std::vector<SearchConcept>& tags_group) { |
| index_remote_->AddOrUpdate(ConceptVectorToDataPtrVector(tags_group), |
| /*callback=*/base::DoNothing()); |
| |
| // Add each concept to the map. Note that it is safe to take the address of |
| // each concept because all concepts are allocated via static |
| // base::NoDestructor objects in the Get*SearchConcepts() helper functions. |
| for (const auto& concept : tags_group) |
| canonical_id_to_metadata_map_[concept.canonical_message_id] = &concept; |
| } |
| |
| void OsSettingsLocalizedStringsProvider::RemoveSearchTags( |
| const std::vector<SearchConcept>& tags_group) { |
| std::vector<std::string> ids; |
| for (const auto& concept : tags_group) { |
| canonical_id_to_metadata_map_.erase(concept.canonical_message_id); |
| ids.push_back(base::NumberToString(concept.canonical_message_id)); |
| } |
| |
| index_remote_->Delete(ids, /*callback=*/base::DoNothing()); |
| } |
| |
| } // namespace settings |
| } // namespace chromeos |