1

Windows azure マーケット プレイスに正常に登録し、clientID とクライアント シークレットを持っていますが、aspx ページでそれらを使用してテキスト ボックスのテキストを目的の言語に翻訳する方法がわかりません。私はこのコードを持っていますが、それを使用する方法がわかりません。以下のコードを webservice に記述する必要がありますか? はいの場合、 webservice に書き込むと、エラーが反映されAdmAccessTokenAdmAccessToken

 [System.Web.Services.WebMethod]
    public static AdmAccessToken GetAccessToken()
    {
        AdmAccessToken admToken;
        string headerValue;
        //Get Client Id and Client Secret from https://datamarket.azure.com/developer/applications/
        AdmAuthentication admAuth = new AdmAuthentication("clientid", "clientsecret");

        admToken = admAuth.GetAccessToken();
        // Create a header with the access_token property of the returned token
        headerValue = "Bearer" + " " + HttpUtility.UrlEncode(admToken.access_token);

        return admToken;
    } 

これはページ上のコードです

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript">
        var languageFrom = "en";
        var languageTo = "de";
        var text = "Use pixels to express measurements for padding and margins.";
        function translate() {
            PageMethods.GetAccessToken(OnSucceeded, OnFailed);

        }
        function OnSucceeded(result, usercontext, methodName) {

            window.mycallback = function (response) {
                document.getElementById('<%= lblResult.ClientID %>').innerHTML = "Translation for <br />source text: '" + text + "'<br /> from en to de <br /> " + response;
            }

            var s = document.createElement("script");
            s.src = "http://api.microsofttranslator.com/V2/Ajax.svc/Translate?oncomplete=mycallback&appId=Bearer " + encodeURIComponent(result.access_token) + "&from=" + languageFrom + "&to=" + languageTo + "&text=" + text;
            document.getElementsByTagName("head")[0].appendChild(s);
        }
        function OnFailed(error, userContext, methodName) {
            alert("Error");
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:ScriptManager ID="ScriptManager" runat="server" EnablePageMethods="true" />
        <asp:Button ID="buttonTranslate" runat="server" Text="Translate" OnClientClick="translate();return false;" />
        <br />
        <asp:Label ID="lblResult" runat="server"></asp:Label>
    </div>
    </form>
</body>
</html>

テキストボックスのテキストを他の言語に翻訳できるように、誰かを助けてください。

4

1 に答える 1

0

まず、サービス参照を Microsoft Translator に追加します。

MS Translator 参照の追加

References -> Add Service Reference を右クリックし、http://api.microsofttranslator.com/V2/soap.svcAddressフィールドに入力して、 Goボタンをクリックします。サービスにMsTranslatorServiceという名前を付けます。

次に、次のコードを Defaults.aspx に追加します。[YOUR_APP_NAMESPACE] (既定ではソリューション名と一致する場合があります。または、"Inherits" ページ属性で確認できます) と[YOUR_APP_ID]に注意してください。

<script language="C#" runat="server">

      void SubmitBtn_Click(object sender, EventArgs e) 
      {
         var ms = new [YOUR_APP_NAMESPACE].MsTranslatorService.LanguageServiceClient();
         ms.Open();
         var appId = "[YOUR_APP_ID]";
         var str = "Use pixels to express measurements for padding and margins.";
         var tar = ms.Translate(appId, str, "en", "de", null, "General");
         lblResult.Text = "Translation: " + tar; 
         ms.Close();
         ms = null;
      }

   </script>

次に、ボタン コードに適切な OnClick 属性があることを確認します。

<asp:Button ID="buttonTranslate" runat="server" Text="Translate" OnClick="SubmitBtn_Click" runat="server"/>

そして、ページを作成してお楽しみください!

編集: http://blogs.msdn.com/b/translation/p/gettingstarted2.aspxで 説明されている別の方法がありますが、私はこれを確認していません。あなたが言及したAjaxではなく、http://api.microsofttranslator.com/v2/Http.svc/Translateメソッドを使用していることに注意してください。

于 2015-02-17T11:03:20.193 に答える