// Copyright 2019 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.

#ifndef IOS_CHROME_BROWSER_UI_SETTINGS_LANGUAGE_LANGUAGE_SETTINGS_UI_CONSTANTS_H_
#define IOS_CHROME_BROWSER_UI_SETTINGS_LANGUAGE_LANGUAGE_SETTINGS_UI_CONSTANTS_H_

#import <Foundation/Foundation.h>

// Accessibility identifier of the search bar.
extern NSString* const kAddLanguageSearchControllerAccessibilityIdentifier;
// Accessibility identifier of the search bar's scrim over the table view.
extern NSString* const kAddLanguageSearchScrimAccessibilityIdentifier;
// Accessibility identifier of the Add Language page's table view.
extern NSString* const kAddLanguageTableViewAccessibilityIdentifier;
// Accessibility identifier of the Language Details page's table view.
extern NSString* const kLanguageDetailsTableViewAccessibilityIdentifier;
// Accessibility identifier of the Language Setting's main page's table view.
extern NSString* const kLanguageSettingsTableViewAccessibilityIdentifier;
// Accessibility identifier of the Translate switch.
extern NSString* const kTranslateSwitchAccessibilityIdentifier;
// Accessibility identifier of the Managed Translate UI.
extern NSString* const kTranslateManagedAccessibilityIdentifier;

#endif  // IOS_CHROME_BROWSER_UI_SETTINGS_LANGUAGE_LANGUAGE_SETTINGS_UI_CONSTANTS_H_
