@@ -41,6 +41,10 @@ namespace Google.Cloud.Translation.V2
41
41
/// </remarks>
42
42
public sealed class TranslationClientImpl : TranslationClient
43
43
{
44
+ // The Translate method doesn't use the format enum. While we could switch on it, it's simpler to hard-code the values it expects.
45
+ private const string HtmlFormat = "html" ;
46
+ private const string TextFormat = "text" ;
47
+
44
48
private static readonly object _applicationNameLock = new object ( ) ;
45
49
private static string _applicationName = UserAgentHelper . GetDefaultUserAgent ( typeof ( TranslationClient ) ) ;
46
50
private static Action < HttpRequestMessage > _versionHeaderAction = UserAgentHelper . CreateRequestModifier ( typeof ( TranslationClient ) ) ;
@@ -95,8 +99,9 @@ public override IList<TranslationResult> TranslateText(IEnumerable<string> textI
95
99
{
96
100
var items = ConvertToListAndCheckNoNullElements ( textItems , nameof ( textItems ) ) ;
97
101
GaxPreconditions . CheckNotNull ( targetLanguage , nameof ( targetLanguage ) ) ;
98
- var request = Service . Translations . List ( new Repeatable < string > ( items ) , targetLanguage ) ;
99
- ModifyRequest ( request , sourceLanguage , FormatEnum . Text , model ) ;
102
+ var translateRequest = new TranslateTextRequest { Q = items , Target = targetLanguage } ;
103
+ var request = Service . Translations . Translate ( translateRequest ) ;
104
+ ModifyRequest ( request , translateRequest , sourceLanguage , TextFormat , model ) ;
100
105
return UnpackTranslationResponse ( items , sourceLanguage , targetLanguage , request . Execute ( ) ) ;
101
106
}
102
107
@@ -105,8 +110,9 @@ public override IList<TranslationResult> TranslateHtml(IEnumerable<string> htmlI
105
110
{
106
111
var items = ConvertToListAndCheckNoNullElements ( htmlItems , nameof ( htmlItems ) ) ;
107
112
GaxPreconditions . CheckNotNull ( targetLanguage , nameof ( targetLanguage ) ) ;
108
- var request = Service . Translations . List ( new Repeatable < string > ( items ) , targetLanguage ) ;
109
- ModifyRequest ( request , sourceLanguage , FormatEnum . Html , model ) ;
113
+ var translateRequest = new TranslateTextRequest { Q = items , Target = targetLanguage } ;
114
+ var request = Service . Translations . Translate ( translateRequest ) ;
115
+ ModifyRequest ( request , translateRequest , sourceLanguage , HtmlFormat , model ) ;
110
116
return UnpackTranslationResponse ( items , sourceLanguage , targetLanguage , request . Execute ( ) ) ;
111
117
}
112
118
@@ -135,8 +141,9 @@ public override async Task<IList<TranslationResult>> TranslateTextAsync(IEnumera
135
141
{
136
142
var items = ConvertToListAndCheckNoNullElements ( textItems , nameof ( textItems ) ) ;
137
143
GaxPreconditions . CheckNotNull ( targetLanguage , nameof ( targetLanguage ) ) ;
138
- var request = Service . Translations . List ( new Repeatable < string > ( items ) , targetLanguage ) ;
139
- ModifyRequest ( request , sourceLanguage , FormatEnum . Text , model ) ;
144
+ var translateRequest = new TranslateTextRequest { Q = items , Target = targetLanguage } ;
145
+ var request = Service . Translations . Translate ( translateRequest ) ;
146
+ ModifyRequest ( request , translateRequest , sourceLanguage , TextFormat , model ) ;
140
147
var response = await request . ExecuteAsync ( cancellationToken ) . ConfigureAwait ( false ) ;
141
148
return UnpackTranslationResponse ( items , sourceLanguage , targetLanguage , response ) ;
142
149
}
@@ -147,8 +154,9 @@ public override async Task<IList<TranslationResult>> TranslateHtmlAsync(IEnumera
147
154
{
148
155
var items = ConvertToListAndCheckNoNullElements ( htmlItems , nameof ( htmlItems ) ) ;
149
156
GaxPreconditions . CheckNotNull ( targetLanguage , nameof ( targetLanguage ) ) ;
150
- var request = Service . Translations . List ( new Repeatable < string > ( items ) , targetLanguage ) ;
151
- ModifyRequest ( request , sourceLanguage , FormatEnum . Html , model ) ;
157
+ var translateRequest = new TranslateTextRequest { Q = items , Target = targetLanguage } ;
158
+ var request = Service . Translations . Translate ( translateRequest ) ;
159
+ ModifyRequest ( request , translateRequest , sourceLanguage , HtmlFormat , model ) ;
152
160
var response = await request . ExecuteAsync ( cancellationToken ) . ConfigureAwait ( false ) ;
153
161
return UnpackTranslationResponse ( items , sourceLanguage , targetLanguage , response ) ;
154
162
}
@@ -209,12 +217,12 @@ private static IList<Detection> UnpackDetectResponse(List<string> inputs, Detect
209
217
. ToList ( ) ;
210
218
}
211
219
212
- private void ModifyRequest ( ListRequest request , string sourceLanguage , FormatEnum format , TranslationModel ? model )
220
+ private void ModifyRequest ( TranslateRequest request , TranslateTextRequest body , string sourceLanguage , string format , TranslationModel ? model )
213
221
{
214
222
request . ModifyRequest += _versionHeaderAction ;
215
- request . Source = sourceLanguage ;
216
- request . Format = format ;
217
- request . Model = GetEffectiveModelName ( model ) ;
223
+ body . Source = sourceLanguage ;
224
+ body . Format = format ;
225
+ body . Model = GetEffectiveModelName ( model ) ;
218
226
}
219
227
220
228
private string GetEffectiveModelName ( TranslationModel ? model )
0 commit comments