Ejemplo n.º 1
0
        /// <summary>
        /// 选中文本翻译
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void TextMenu_Translate_Click(object sender, RoutedEventArgs e)
        {
            if (!NetworkHelper.Instance.ConnectionInformation.IsInternetAvailable)
            {
                new PopupToast(AppTools.GetReswLanguage("Tip_FailedWithoutInternet"), AppTools.GetThemeSolidColorBrush(ColorType.ErrorColor)).ShowPopup();
                return;
            }
            string language = (sender as MenuFlyoutItem).Name.Replace("SelectMenu_Translate_", "");
            string appId    = AppTools.GetRoamingSetting(AppSettings.Translate_BaiduAppId, "");
            string appKey   = AppTools.GetRoamingSetting(AppSettings.Translate_BaiduKey, "");

            if (string.IsNullOrEmpty(appId))
            {
                new PopupToast(AppTools.GetReswLanguage("Tip_NeedLinkTranslateService"), AppTools.GetThemeSolidColorBrush(ColorType.ErrorColor)).ShowPopup();
                return;
            }
            else
            {
                LoadingRing.IsActive = true;
                string output = await TranslateTools.Translate(_selectText, appId, appKey, "auto", language.ToLower());

                if (!string.IsNullOrEmpty(output))
                {
                    var pos = new Point();
                    if (_latestPoint == null)
                    {
                        pos = Window.Current.CoreWindow.PointerPosition;
                    }
                    else
                    {
                        pos = _latestPoint.Position;
                    }
                    double x = pos.X - Window.Current.Bounds.X;
                    double y = pos.Y - Window.Current.Bounds.Y;
                    if (_latestPoint == null)
                    {
                        x -= 30;
                        y -= 50;
                    }
                    var option = new FlyoutShowOptions();
                    option.Position       = new Point(x, y);
                    TranslateContent.Text = output;
                    TranslateFlyout.ShowAt(MainPage.Current.RootGrid, option);
                }
                else
                {
                    new PopupToast(AppTools.GetReswLanguage("Tip_TranslateFailed"), AppTools.GetThemeSolidColorBrush(ColorType.ErrorColor)).ShowPopup();
                }
                LoadingRing.IsActive = false;
            }
        }
Ejemplo n.º 2
0
        public async Task TranslateArticle(string language)
        {
            if (!NetworkHelper.Instance.ConnectionInformation.IsInternetAvailable)
            {
                new PopupToast(AppTools.GetReswLanguage("Tip_FailedWithoutInternet"), AppTools.GetThemeSolidColorBrush(ColorType.ErrorColor)).ShowPopup();
                return;
            }
            string appId = AppTools.GetRoamingSetting(AppSettings.Translate_BaiduAppId, "");

            if (string.IsNullOrEmpty(appId))
            {
                var dialog = new Dialog.BaiduTranslateDialog();
                await dialog.ShowAsync();
            }
            appId = AppTools.GetRoamingSetting(AppSettings.Translate_BaiduAppId, "");
            string appKey = AppTools.GetRoamingSetting(AppSettings.Translate_BaiduKey, "");

            if (string.IsNullOrEmpty(appId) || string.IsNullOrEmpty(appKey))
            {
                return;
            }
            else
            {
                LoadingRing.IsActive = true;
                string output = await TranslateTools.Translate(_sourceFeed.Content, appId, appKey, "auto", language.ToLower());

                if (!string.IsNullOrEmpty(output))
                {
                    string html = await PackageHTML(output);

                    DetailWebView.NavigateToString(html);
                }
                else
                {
                    new PopupToast(AppTools.GetReswLanguage("Tip_TranslateFailed"), AppTools.GetThemeSolidColorBrush(ColorType.ErrorColor)).ShowPopup();
                }
                LoadingRing.IsActive = false;
            }
        }