如何使用C#客户端阻止Google Translate V2更改日期格式
解决Google.Cloud.Translation.V2翻译时日期格式自动转换的问题
要阻止翻译过程中日期格式从dd/MM/yyyy被自动转换为目标语言的本地化格式(如英语的MM/dd/yyyy),可以通过以下直接高效的方法实现:
方法:使用translate="no"标记锁定日期内容
通过将日期部分包裹在带有translate="no"属性的HTML标签中,同时告知翻译API按HTML格式处理文本,就能让API跳过该部分的翻译和格式转换,完全保留原始日期格式。
修改后的代码示例
var client = TranslationClient.Create(Google.Apis.Auth.OAuth2.GoogleCredential.FromFile(@"keyFile.json")); // 用span标签包裹日期,添加translate="no"属性标记不翻译该部分 string textToTranslate = @"نود إفادتكم بأننا حضرنا جلسة اليوم وحضر المدعى عليه وطلبت من المحكمة أجل أخير للتسوية ووافقت المحكمة على تأجيل الدعوى كأجل أخير لتاريخ <span translate=""no"">12/10/2023م</span> للتسوية أو الرد"; string textToLang = @"en"; string textFromLang = @"ar"; string translatedTextReturn = string.Empty; // 设置翻译选项为HTML格式,确保API识别标签规则 var options = new TranslateTextOptions { Format = TranslationFormat.Html, PreserveFormatting = true }; TranslationResult translationResult = client.TranslateText(textToTranslate, textToLang, textFromLang, options); translatedTextReturn = translationResult.TranslatedText; // 可选:移除HTML标签,仅保留纯文本日期 translatedTextReturn = System.Text.RegularExpressions.Regex.Replace(translatedTextReturn, @"<span translate=""no"">(.*?)</span>", "$1"); Console.WriteLine(translatedTextReturn); Console.ReadLine();
效果说明
修改后翻译结果中的日期会保留原始的12/10/2023م格式(若不需要末尾的阿拉伯语公历标记“م”,可提前在原文本中移除或在后期处理时删除)。
内容的提问来源于stack exchange,提问作者Ali Adnan
相关产品推荐
相关产品推荐

