You need to enable JavaScript to run this app.
导航

导入和导出文件

最近更新时间2022.10.12 15:55:57

首次发布时间2021.07.05 14:49:13

导入文件

Starling 支持通过文件批量导入源文案和翻译文案。
支持的文件格式包括 excel 和开发常用的 json 和 xml 等。下面列举了不同文件的内容格式说明以及所具备的能力。

alt
image

任务和空间下均有导入文案按钮,点击唤起导入窗口

  1. 准备待导入文件(点击图中区域6下载导入模板后填写),拖拽待导入文件到图中1区域内(或者点击图中1区域,选择待导入文件),等待校验结果
  2. 下载校验结果
  3. 检查校验结果:如果需要修改,在本地修改待导入文件后,重新执行步骤1(需要先取消当前导入任务,点击图中区域4);如果不需要修改,则直接点击导入按钮(图中区域3)。系统将在后台异步执行导入任务
  4. 等待导入结果:导入过程中,文案列表会定时刷新,展示已成功导入的文案;导入完成后,页面右上角将展示通知

⚠️ 注意: 系统会对 excel 文件表头、json/xml 等代码文件的层级信息进行校验,对拼写错误或不在支持范围内的各项名称,会给出如下提示,需手动修改文件中相应的问题项后重新导入。

问题项示例解决办法备注
语言代码与项目设置不一致image.png对照项目设置的语言代码修改文件,如将“es”改为项目设置中的“es-ES”如何查看项目设置中的语言代码? image.png
excel 表头 keys 拼写错误image.png将文件中的“key”修改为“keys”
excel 表头或 json/xml 等代码文件名称中 source/length limit/context 拼写错误image.png将表头或文件名称中的“soruce”修改为“source”length limit 和 context 为选填内容,如不需要,可从文件中移除

1. 空间、任务下导入文件

您可选择将新增文案倒入确定的空间、任务下,请首先进入相应的空间、任务下,再点击【倒入文案】按钮进行文案倒入。

2. 文案列表中导入文件

在一些情况下,用户无法自行高效判断在文件中的文案属于以下哪个场景,此类情况请用户在【文案列表】中进行文件导入:

  1. 文案已存在项目中,本次需要对文案的内容(源文案/翻译文案)进行修改;
  2. 文案不存在项目中,本次需要对文案内容进行新增翻译;
  3. 上述两种情况的文案存在同一文件中。

在【文案列表】中操作文件导入时,若文件中某条文案已存在项目中(一般存在一个任务中),此类文案会被判定为【修改】类型。若文案不存在项目中,用户自行选择所属任务或者创建新任务容纳新增文案。
Screen Shot 2022-03-13 at 6.22.45 PM.png

导入文件格式说明

.xlsx

excel 文件,可以同时承载源文案和翻译文案。

能力

源文案长度限制注释翻译文案翻译文案和源文案在同一文件复数
✅(ICU 格式)

例子

  • keys: 文案的key
  • source: 源文案(新增是必填,更新时选填)
  • length limit: 翻译文案长度限制(选填)
  • context: 文案的注释说明(选填)
  • 表头其他列: 填入项目的语言代码(⚠️注意:语言代码需要完全一致)(选填)
sourcelength limiten...context
hello100hello这是一个可以点击的按钮

.zip

只是用于打包其他格式文件。

几点说明:

  • 可同时添加源文案和翻译文案;如果文案是首次添加,那么source文件夹必须存在。
  • 无论什么格式文件,源文案的length limit(长度限制)和context(注释说明)字段都是选填。

zip解压后文件夹路径说明:

- xxx.zip
    - source // 存源文案
        - xxx.(json|xml|strings|stringsdict)
    - en // 存相应语种的翻译文案
        - xxx.(json|xml|strings|stringsdict)
    - fr
        - xxx.(json|xml|strings|stringsdict)
    - ...
        - xxx.(json|xml|strings|stringsdict)
return (<Tip type={"warning"} title={"注意"} description={"注意语言代码和项目语言代码一定要保持一致"} />
)

.xml

能力

源文案长度限制注释翻译文案翻译文案和源文案在同一文件复数

例子

源文案

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<resources>
    <string name="single" lengthLimit="10" context="comment">source/target text</string>
    <plurals name="plural">
        <item quantity="other">other</item>
    </plurals>
</resources>

翻译文案

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<resources>
    <string name="single">source/target text</string>
    <plurals name="plural">
        <item quantity="one">one</item>
        <item quantity="other">other</item>
    </plurals>
</resources>

.json

能力

源文案长度限制注释翻译文案翻译文案和源文案在同一文件复数

例子

源文案

为了兼容平台导出的源文案的json文件,以下两种格式都可以解析。
⚠️注意:json文件导入后,如希望文案顺序与文件中文案顺序一致,需通过"number": 1/2/3......在文件中定义。

// 包含源文案和其他属性
{
    "single": {
        "source": "source/target text",
        "lengthLimit": 10,
        "context": "comment"
        "number": 1 // number为可选参数,仅作用于源文案,用于定义当次导入的文案的相对顺序
    }
}
// 仅源文案
{
    "single": "source/target text"
}

翻译文案

{
    "single": "source/target text"
}

.strings

能力

源文案长度限制注释翻译文案翻译文案和源文案在同一文件复数

例子

源文案

"single" = "source/target text";

翻译文案

"single" = "source/target text";
return (<Tip type={"warning"} title={"注意"} description={"行末的分号不可省略,否则会解析出错。key=value; 中的 value 不能是纯数字,否则会解析出错"} />
)

.stringsdict

.stringsdict只承载复数文案

能力

源文案长度限制注释翻译文案翻译文案和源文案在同一文件复数

例子

源文案

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>plural</key>
    <dict>
      <key>NSStringLocalizedFormatKey</key>
      <string>%#@format_key@</string>
      <key>format_key</key>
      <dict>
        <key>NSStringFormatSpecTypeKey</key>
        <string>NSStringPluralRuleType</string>
        <key>other</key>
        <string>other</string>
      </dict>
    </dict>
  </dict>
</plist>

翻译文案

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>plural</key>
    <dict>
      <key>NSStringLocalizedFormatKey</key>
      <string>%#@format_key@</string>
      <key>format_key</key>
      <dict>
        <key>NSStringFormatSpecTypeKey</key>
        <string>NSStringPluralRuleType</string>
        <key>zero</key>
        <string>zero</string>
        <key>one</key>
        <string>one</string>
        <key>two</key>
        <string>two</string>
        <key>few</key>
        <string>few</string>
        <key>many</key>
        <string>many</string>
        <key>other</key>
        <string>other</string>
      </dict>
    </dict>
  </dict>
</plist>

更多文件格式说明请见支持文件类型

导入记录及回滚

点击项目 > 操作记录,查看或回滚文案导入历史,更多操作记录请阅读[操作记录及操作回滚]

导出文件

在任务、空间下导出源文案、翻译文案,支持导出多种格式的文件
在任务列表导出某段时间创建的任务所包含的文案

1. 任务、空间下导出

一键导出(全局)

image.pngimage.png

1. 导出内容:仅源文案或源文案+翻译文案
2. 导出格式:Excel、Json、Xml、Strings、Xliff、Qt.ts、Po

勾选导出

image.pngScreen Shot 2022-05-17 at 9.06.44 PM.png

1. 勾选需要的文案
2. 导出内容:仅源文案或源文案+翻译文案
3. 导出格式:Excel、Json、Xml、Strings、Xliff、Qt.ts、Po

筛选导出

image.pngScreen Shot 2022-05-17 at 9.01.23 PM.png

1. 使用筛选条件,筛选并勾选需要的文案
2. 导出内容:仅源文案或源文案+翻译文案
3. 导出格式:Excel、Json、Xml、Strings、Xliff、Qt.ts、Po
4. 用户导出时,可选择“按当前Key导出”或“按筛选条件导出”:若用户选择“按当前Key导出”,可导出当前文案的所选翻译语种文案;若用户选择“按筛选条件导出”,可导出所选语言下符合当前筛选条件的文案。

2. 任务列表下导出

image.pngimage.png

1. 在翻译任务下使用筛选条件筛选任务
2. 勾选任务后,点击导出任务
3. 导出内容:仅源文案或源文案+翻译文案
4. 导出格式:Excel、Json、Xml、Strings、Xliff、Qt.ts、Po

3. 文案列表下导出

Screen Shot 2022-03-13 at 6.30.09 PM.png

1. 在翻译任务下勾选文案进行准备(可全选)

2. 确认勾选想导出的文案后,点击导出任务

3. 导出内容:仅源文案或源文案+翻译文案

4. 导出格式:Excel、Json、Xml、Strings、Xliff、Qt.ts、Po

Open API 导入和导出

详情可以阅读 API 接口文档