/*** 一键翻译*/@RequestMapping(value = "/filePostToTranslation",method = RequestMethod.POST)@ResponseBodypublic ModelMap filePostToTranslation(@RequestParam MultipartFile file1,@RequestParam MultipartFile file2,@RequestParam MultipartFile file3,@RequestParam MultipartFile file4,HttpServletRequest httpRequest) {Integer code = 0;ModelMap resultMap = new ModelMap();try {//转化要修改中文文件File file1_new = multipartfileTofile(file1);ArrayList<String> arrayList = toArrayByFileReader1(file1_new);//转化要修改英文文件File file2_new = multipartfileTofile(file2);ArrayList<String> arrayList2 = toArrayByFileReader1(file2_new);Map<String,Object> translationMap1 = new HashMap<>();for (int i = 0; i < arrayList.size(); i++) {if(StringUtils.isNotBlank(arrayList.get(i))){translationMap1.put(arrayList.get(i), arrayList2.get(i));}}//转化中文文件File file3_new = multipartfileTofile(file3);ArrayList<String> arrayList3 = toArrayByFileReader1(file3_new);Map<String,Object> arrayList3_mapArr = new HashMap<>();for( String arrayList3_str: arrayList3){if(StringUtils.isNotBlank(arrayList3_str)){Map<String,Object> arrayList3_map = new HashMap<>();String[] arrayList3_stringArr = arrayList3_str.split("=");arrayList3_map.put(arrayList3_stringArr[0], arrayList3_stringArr[1]);arrayList3_mapArr.put(arrayList3_stringArr[1], arrayList3_map);}}Map<String,Object> translationMap2 = new HashMap<>();for(String key : arrayList3_mapArr.keySet()){boolean flag=translationMap1.containsKey(key);if(flag){Map<String,Object> map1 = new HashMap<>();String zn_String = String.valueOf(arrayList3_mapArr.get(key));String zn_Key = zn_String.substring(1, zn_String.length()-1).split("=")[0];map1.put(zn_Key, translationMap1.get(key));translationMap2.put(zn_Key, map1.get(zn_Key));}}//转化英文文件File file4_new = multipartfileTofile(file4);ArrayList<String> arrayList4 = toArrayByFileReader1(file4_new);resultMap.put("arrayListMap", translationMap2);resultMap.put("arrayList4", arrayList4);ArrayList<String> reslutStringArray = new ArrayList<>();for( String arrayList4_str: arrayList4){if(StringUtils.isNotBlank(arrayList4_str)){String key =  arrayList4_str.split("=")[0];boolean flag = translationMap2.containsKey(key);if(flag){String newString = key +"="+ String.valueOf(translationMap2.get(key));reslutStringArray.add(newString);}else{reslutStringArray.add(arrayList4_str);}}else{reslutStringArray.add(arrayList4_str);}}String newPath = "C:\\Users\\Administrator\\Desktop\\web\\message_en_US.properties";writeFileContext(reslutStringArray, newPath);} catch (Exception e) {e.printStackTrace();code = 1;}resultMap.put("code", code);return resultMap;}

MultipartFile转File

public File multipartfileTofile(MultipartFile file1){//获得原来文件名(含后缀名)String originalFilename = file1.getOriginalFilename();int pos = originalFilename.lastIndexOf(".");//原文件后缀名String suffix = originalFilename.substring(pos);//保存文件String realPath = "C:\\Users\\Administrator\\Desktop\\web";//产生一个uuid随机文件名String uuid = UUID.randomUUID().toString();String fullPath = realPath + File.separator + uuid + suffix;File file=  new File(fullPath);try {file1.transferTo(file);} catch (IllegalStateException | IOException e) {e.printStackTrace();}return file;}

File按行读取数据,存于ArrayList

public static ArrayList<String> toArrayByFileReader1(File file) {// 使用ArrayList来存储每行读取到的字符串ArrayList<String> arrayList = new ArrayList<>();try {InputStreamReader inputReader = new InputStreamReader(new FileInputStream(file),"UTF-8");BufferedReader bf = new BufferedReader(inputReader);// 按行读取字符串String str;while ((str = bf.readLine()) != null) {arrayList.add(str);}bf.close();inputReader.close();} catch (IOException e) {e.printStackTrace();}// 返回数组return arrayList;}

将ArrayList<String>按行写入到文件中

public static void writeFileContext(List<String>  strings, String path) throws Exception {File file = new File(path);//如果没有文件就创建if (!file.isFile()) {file.createNewFile();}BufferedWriter writer = new BufferedWriter(new FileWriter(path));for (String l:strings){writer.write(l + "\r\n");}writer.close();}

测试文件链接:https://pan.baidu.com/s/1f1D8SglQIF9wJ9SGN0tEmw 
提取码:blup

根据中文修改英文翻译,重新生成英文翻译文件(保证原有文件的顺序不变)相关推荐

  1. 英文视频字幕生成和翻译工具、AI拟声工具

    文章目录 一.Autosub-ahk:英文视频字幕生成工具 二.VideoSrt:英文视频字幕生成和翻译工具 三.SubtitleEdit:字幕编辑工具 四.PotPlayer:视频播放器(可导入字幕 ...

  2. 案例:用python将中文翻译的和英文原文合成新的word文档

    案例:用python中文翻译的和英文原文合成新的word文档 一 问题的形成 需求的描述:一个英语翻译专业的研究生同学有一个期末作业.老师给了一个英文的文档,需要同学们翻译成中文.老师给的文档是格式如 ...

  3. woocommerce产品选项描述修改_简历修改服务:中文修改、英文修改、中英互译、简历定制,名师一对一指导修改!...

    简历,是你接触 HR 的第一步 如果你无法通过简历敲开大门 你面试能力再强,综合素质再高,都无用! 做了那么多网申,投了那么多简历.都是是石沉大海,渺无音讯.你就不想想,是简历有问题吗? 简历是找实习 ...

  4. 分享一款将中文网站源代码直接生成英文网站的工具

    背景 在网站开发初期,由于快速上线网站,没有考虑完善的国际化方案,直接将中文硬编码到代码中,当网站上线后,想再实现国际化,发现工程量太大,因此发现了一款工具,只需要输入一行命令,即可将中文网站快速生成 ...

  5. 是否为取变量名烦恼?中文生成英文变量的windows桌面端工具(vue+electron)

    觉得取变量名是个烦事,就写了个工具,转中文为英文变量 1.项目介绍 根据中文生成英文变量名(驼峰命名法),减轻取变量名的头疼 2.实现功能 调用百度翻译api翻译中文,将返回结果拼接为驼峰字符串,从而 ...

  6. 剪映英文字幕翻译成中文的最新方法(附字幕翻译工具2.0)

    点击上方"优派编程"选择"加入星标",第一时间关注原创干货 剪映英文字幕翻译成中文的最新方法(附字幕翻译工具2.0) https://www.fang1688. ...

  7. 有道翻译 excel webservice 失效_VBA实践+excel英文逐句自动有道翻译为中文

    VBA实践+excel英文逐句自动有道翻译为中文 有一个需求是这样的,如下图所示,在一个excel工作表中,B列是英文,每一个单元格一句英文,在C列要填英文对应的有道机译结果.为保证准确度,要求必须一 ...

  8. python英文文献翻译_科研神器(1)——python实现自动读取英文文献翻译并生成综述...

    经常看到公众号推什么"学姐一年发五篇SCI,原来是靠它"之类的文章,点进去全是Python的安利,然而跟着广告进去也不一定能学会.正好时值学校要求写文献阅读报告,然而至少一万字的报 ...

  9. 免费翻译英文文献自动生成PDF双语文档小技巧

    所需软件 有道词典(网页版即可) 印象笔记(浏览器插件+PC客户端) 看外文文献时,因为语言问题阅读缓慢,想要生成中文版论文,一段段手动翻译太麻烦,而且也懒得自己再排版,这里介绍一个快速翻译英文文献自 ...

最新文章

  1. 线性代数:04 特征值与特征向量 -- 特征值与特征向量
  2. 3. 机器学习中为什么需要梯度下降?梯度下降算法缺点?_浅谈随机梯度下降amp;小批量梯度下降...
  3. [HEOI2016/TJOI2016]字符串 (后缀数组+主席树+二分)
  4. python 合并excel 自动更新_手把手教你4种方法用Python批量实现多Excel多Sheet合并
  5. 资源不足的情况怎么设置sparkrdd并行度_监控录像机资源不足或达到上限的原因及解决方法!...
  6. 用户控件(UserControl)
  7. 6400万像素时代来了,小米首个入局
  8. 和华为杯_新闻|“华为杯”足球赛正式开展:我院女足小组赛拿下首胜
  9. 使用xadmin覆盖Django的admin
  10. python seo 外链_百度链接提交-主动推送程序Python版
  11. vb红绿灯交通灯小程序
  12. 修改 mysql 的默认端口号_mysql的默认端口号修改方法
  13. 好玩的C语言大全,好玩的c语言程序!
  14. 图像压缩相关内容简介
  15. matlab计算方差和平均值,matlab求平均值和方差
  16. 计算理论重点——Theory of Computation
  17. 克隆加密狗和原加密狗_遥控钥匙和加密狗有什么区别?
  18. 吕旭军:如何打造区块链数字资产交易?
  19. 大学计算机第四讲答案,大学职业生涯规划课第四讲答案
  20. warcraft 3 经典语句之月之女祭司(Priestess of the moon)

热门文章

  1. 精进:如何成为一个很厉害的人---书摘
  2. vs2010下载链接中国简体(中国含msdn)
  3. 【BZOJ】【3295】【CQOI2011】动态逆序对
  4. gridview合并单元格
  5. 四种方式话Equal
  6. 我会回来的!我很想念大家!
  7. JavaScript(八)—— PC 端网页特效
  8. Java 网络编程(超级详细)
  9. 入门机器学习(十七)--编程作业-K-means和PCA(Python实现)
  10. mysql中订单产品名,Ecshop后台订单列表增加”商品名”检索字段