文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

C#如何实现文件筛选读取并翻译的自动化工具

2023-07-05 13:07

关注

这篇文章主要介绍了C#如何实现文件筛选读取并翻译的自动化工具的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C#如何实现文件筛选读取并翻译的自动化工具文章都会有所收获,下面我们一起来看看吧。

思路

准备工作

1,百度智能云领取免费的api接口

C#如何实现文件筛选读取并翻译的自动化工具

2,创建应用

C#如何实现文件筛选读取并翻译的自动化工具

3,调试api

C#如何实现文件筛选读取并翻译的自动化工具

代码实现

以上准备工作就绪后,代码就比较容易实现了,完整控制台代码如下:

Program.cs

using Batch_translation;using System.Text.RegularExpressions;Console.WriteLine("请按下任意键进行批量翻译!");Console.ReadLine();string strFolderPath = "you FolderPath";//你的项目文件夹路径string[] files = Directory.GetFiles(strFolderPath, "*", SearchOption.AllDirectories); // 获取文件夹下所有文件路径,包括子文件夹string[] subFolders = Directory.GetDirectories(strFolderPath, "*", SearchOption.AllDirectories); // 获取所有子文件夹路径foreach (var filePath in files){    //业务逻辑    if (filePath.EndsWith(".cs"))    {        BatchTran(filePath);//获取文件内容并进行转换操作    }}foreach (var folder in subFolders){    foreach (var filePath in Directory.GetFiles(folder))    {        //业务逻辑        if (filePath.EndsWith(".cs"))        {            BatchTran(filePath);//获取文件内容并进行转换操作        }    }}Console.WriteLine("转化完成");void BatchTran(string filePath){        BaiDuApi baiDuApi = new BaiDuApi("you apikey", "you secretKey");//百度api 初始化    string content = File.ReadAllText(filePath);//读取文本    string pattern = @"("".*[\u4E00-\u9FA5]+.*[\u4E00-\u9FA5]+.*"")";//定义所需要的正则表达式(ps:此正则表示查询英文双引号下的中文)    Regex myRegex = new Regex(pattern);    MatchCollection collection = myRegex.Matches(content);    foreach (Match match in collection)    {        var oldStr = "";        oldStr = match.Value;//.Substring(0, match.Value.Length - 1)        var newStr = baiDuApi.Translate(oldStr);        if (!string.IsNullOrEmpty(newStr))            content = content.Replace(oldStr, newStr);    }    if (collection.Count > 0)        // 将修改后的内容写入到文件中        File.WriteAllText(filePath, content);}

BaiDuApi.cs

using System;using System.IO;using Newtonsoft.Json;using RestSharp; namespace Batch_translation{    public class BaiDuApi    {         private readonly string apiKey;        private readonly string secretKey;        public BaiDuApi(string apiKey, string secretKey)        {            this.apiKey = apiKey;            this.secretKey = secretKey;        }         public string Translate(string sourceText)        {            var token = GetAccessToken(apiKey, secretKey);            if (token == "")                return "";            var client = new RestClient($"https://aip.baidubce.com/rpc/2.0/mt/texttrans/v1?access_token={token}");            var request = new RestRequest("", Method.Post);            request.AddHeader("Content-Type", "application/json");            request.AddHeader("Accept", "application/json");             // 定义一个匿名类型对象            var data = new { from = "zh", to = "en", q = sourceText };            // 将对象序列化成 JSON 字符串            string body = JsonConvert.SerializeObject(data);            request.AddParameter("application/json", body, ParameterType.RequestBody);            var response = client.Execute(request);            if (response.Content == null)            {                return "";            }            var dataResult = JsonConvert.DeserializeObject<BaiDuMode>(response.Content);            if (dataResult.result != null)            {                if (dataResult.result.trans_result != null && dataResult.result.trans_result.Count > 0)                {                    return dataResult.result.trans_result[0].dst;                }            }            return sourceText;        }                  static string GetAccessToken(string API_KEY, string SECRET_KEY)        {            var client = new RestClient($"https://aip.baidubce.com/oauth/2.0/token");            var request = new RestRequest("", Method.Post);            request.AddParameter("grant_type", "client_credentials");            request.AddParameter("client_id", API_KEY);            request.AddParameter("client_secret", SECRET_KEY);            var response = client.Execute(request);            Console.WriteLine(response.Content);            if (response.Content == null)                return "";            var result = JsonConvert.DeserializeObject<dynamic>(response.Content);            return result.access_token.ToString();        }      }}

关于“C#如何实现文件筛选读取并翻译的自动化工具”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“C#如何实现文件筛选读取并翻译的自动化工具”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯