首页 > 解决方案 > Sublime Text & Source Tree 在 Excel VBA 中使用 xml.File 和 fsObject 生成的文件中看不到 FileDiff

问题描述

我们正在查看某些存储 Rails 应用程序翻译的 .yml 文件。例如en.yml的结构如下:

en:
  blog:
    left_navigation:
      list_topic: "Blog topics blah blah"
    articles:
      show:
        by_author: "By %{author}"
  number:
    currency:
      format:
        separator: "."
        delimiter: ","
        format: "%u%n"
  admin:
    blog:
      topics:
        form:
          topic_name: "Topic name"
          topic_parent: "Parent topic"
          save: "Save"
          cancel: "Cancel"

作为我们团队翻译程序的一部分,我们让翻译人员翻译 Excel 中的更改,然后通过宏重新导出新的 .yml 文件。相关代码为:

...
FilePathAndName = ExportFolder & ExportLang & ".yml"
...
Set xmlFile = fsObject.createtextfile(FilePathAndName, True, True)
maxline = TargetRange.Rows.Count
i = 1
For Each mCell In TargetRange
    line = mCell.Value
    xmlFile.write line & IIf(i = TargetRange.Rows.Count, vbNullString, vbCrLf)
    i = i + 1
Next mCell
xmlFile.Close
...

但是,在“打开文件夹”界面下同时查看两个文件时,SublimeText 看不到 FileDiff。类似地,当加载到 Source Tree 时,它​​说 2 个文件不相同,但无法显示文件差异。

我们需要这个文件差异来验证翻译是否使用正确的语法完成。有人可以帮助我们吗?

标签: ruby-on-railsexcelvbasublimetext3atlassian-sourcetree

解决方案


感谢您的想法@Odatnurd 和@barrowc 问题来自第二个(目标文件)的编码。显然它需要是 UTF-8。所以我只是在 Sublime Text 中使用 Encoding = UTF-8 重新保存了这个文件,并且 FileDiff 再次工作。 在此处输入图像描述

所以最后一个问题是,如何让 Excel VBA 中的 xml.File 和 fsObject 以 UTF-8 格式保存文件?


推荐阅读