chromium/ios/web_view/public/cwv_translation_controller_delegate.h

// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef IOS_WEB_VIEW_PUBLIC_CWV_TRANSLATION_CONTROLLER_DELEGATE_H_
#define IOS_WEB_VIEW_PUBLIC_CWV_TRANSLATION_CONTROLLER_DELEGATE_H_

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@class CWVTranslationController;
@class CWVTranslationLanguage;

// Updates delegate on translation progress.
@protocol CWVTranslationControllerDelegate<NSObject>

@optional

// Called if the current page is not automatically translated, but may need
// translation according to its language and the user's locale.
// |pageLanguage| is given as the detected language of the page and
// |userLanguage| is given as the best guess for the preferred native language.
- (void)translationController:(CWVTranslationController*)controller
    canOfferTranslationFromLanguage:(CWVTranslationLanguage*)pageLanguage
                         toLanguage:(CWVTranslationLanguage*)userLanguage;

// Called when a translation has started. |userInitiated| is YES if this
// translation was started explicitly by user action, and NO if it was started
// automatically because of a translation policy with CWVTranslationPolicyAuto.
// If translation was started by a call to CWVTranslationController's
// |translatePageFromLanguage:toLanguage:userInitiated:| method, |userInitiated|
// will be the same as the value passed to that method.
- (void)translationController:(CWVTranslationController*)controller
    didStartTranslationFromLanguage:(CWVTranslationLanguage*)sourceLanguage
                         toLanguage:(CWVTranslationLanguage*)targetLanguage
                      userInitiated:(BOOL)userInitiated;

// Called when translation finishes. |error| will be nonnull if it failed.
- (void)translationController:(CWVTranslationController*)controller
    didFinishTranslationFromLanguage:(CWVTranslationLanguage*)sourceLanguage
                          toLanguage:(CWVTranslationLanguage*)targetLanguage
                               error:(nullable NSError*)error;

@end

NS_ASSUME_NONNULL_END

#endif  // IOS_WEB_VIEW_PUBLIC_CWV_TRANSLATION_CONTROLLER_DELEGATE_H_