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

配置

最近更新时间2023.09.07 17:04:02

首次发布时间2023.09.07 17:04:02

简介

Starling Client CLI 使用的配置文件,其中包含要管理的资源的描述:要上传到国际化翻译平台的文件以及对应翻译的位置。

使用 Starling Client CLI 前,您应该预先生成配置文件,然后运行该工具,默认情况下,Starling Client CLI 会查找当前目录下名为 starling.yml 的配置文件。

创建配置文件,请执行以下命令:

$ starling client init
配置文件结构

有效的 Starling Client CLI 配置文件应该包含以下结构,因此请确保所有需要的信息填写完成:

  • 包含访问火山引擎API的密钥
  • 当前账号可操作的项目Id
  • 资源文件下载配置,该配置可以直接在 files 数组中配置
    • download 中的必填字段:namespaceId 或 taskId
  • 一个文件的数组配置,描述您将管理的一组源文件和翻译文件
    • files 数组中必填字段:source 定义了源文件地址,translation 定义了翻译文件需要存放于何处
编写一个简单的配置文件

一个基础的配置文件需要包含以下内容:

"ak": "Access Key"
"sk": "Secret Key"
"basePath": "/project-base-path"
"projectId": "ProjectId"

# 下载设置同样可以直接在files中设置,这样只会对某一组文件生效
"download": {
	"namespaceId": "NamespaceId",
  "taskId": "TaskId"
}

"files": [
	{
  	"source": "/locale/zh/folder/*.xml",
    "translation": "/locale/%locale%/folder/%original_file_name%"
  }
]

根据上面的配置将源文件上传至国际化翻译平台

$ starling client upload

国际化翻译平台获取翻译结果,并按照配置存放:

$ starling client download
文件下载配置
字段名称必填类型默认值说明
namespaceIdnumber[]-项目空间Id,namespaceId与taskId只需配置一项,如果同时配置,以namespaceId为准
taskIdnumber[]-项目任务Id,taskId与namespaceId只需配置一项
downloadAllSpacesbooleanfalse下载全部空间下的文案,开启后会忽略 namespaceId 与 taskId 的字段配置
replacePlaceholderboolean | [string,string][]false替换占位符,设置为true时,按照namespaceId对应空间配置的占位符进行替换;同时支持自定义占位符替换,如:[["%d","$d"]],会将翻译文案中 %d 替换为 $d
removeDeletedStringsbooleanfalse从本地文件中删除此次下载中不包含的key
downloadOnlySourcebooleanfalse仅下载源文案
targetLanguagesstring[]-下载翻译语言配置
stringStatusstring[]-语言状态,untranslated - 未翻译;translated - 已翻译;released - 已发布;unreleased - 未发布;
notAddingNewKeysbooleanfalse国际化翻译平台添加的新key,不在本地文件同步新增
keySuffixstring-下载文案时,自定义 key 后缀
keyPrefixstring-下载文件时,自定义 key 前缀
cleanUntranslatedStringsbooleanfalse下载文件时,自动清理 translation 中未翻译 key,v1.1.4 版本以上可用。

同时,download支持在files每一项中进行配置,对单独文件或目录生效。

download: {
	"namespaceId": [62061],
	"taskId": [10920981],
  "replacePlaceholder": false,
  "removeDeletedStrings": false,
  "downloadOnlySource": false,
  "targetLanguages": [],
  "stringStatus": ["untranslated","translated","released","unreleased"]
}

# files中的配置
"files": [
	{
  	"source": "",
    "translation": "",
    "download": {
    	# 与全局download配置项一致
    }
  }
]
文件上传配置
字段名称必填类型默认值说明
taskIdnumber-本地新增key上传至平台时,需要添加到哪个任务
uploadTranslationboolean-同时上传翻译文案
targetLanguagesstring[]-上传翻译文案时,语言配置

同时,upload支持在files每一项中进行配置,对单独文件或目录生效。

"upload": {
  "taskId": "",
  "uploadTranslation": true,
  "targetLanguages": ["en","zh"]
}

# files 中的配置
"files": [
	{
  	"source": "",
    "translation": "",
    "upload": {
    	# 与全局upload配置项一致
    }
  }
]
常规配置

上面提供的源文案和翻译文案配置示例中包含标准通配符(也称为通配符),可以更方便的处理多个文件。
以下是你可以使用的通配符:

*(星号)
表示文件或目录名称中的任何字符。如果您指定“*.xml”,它将包括所有xml文件,如“en.xml”、“strings.xml”以及其他任何以".xml"结尾的文件。

*(双星号)
递归匹配任何目录(包括子目录)。例如,您可以使用source: "/src/*
/*.xml" 递归查找/src目录下所有的xml文件。

?(问号)
匹配任何单个字符。

更多配置请参考

占位符

Strling Client CLI 翻译文件配置对于以下占位符会自动替换:

占位符名称描述
%original_file_name%源文案文件名称+扩展名
%file_name%源文案文件名称
%file_extension%源文案文件扩展名
%locale%语言名称
%locale_with_underscore%语言名称 - 使用 _ 替代,例如:zh_CN
%android_code%Android相关的“values-”目录,例如:values-zh
%osx_code%osx相关的“.lproj”目录,例如:zh.lproj
忽略文件和目录

有时,有些文件和目录不需要在国际化翻译平台中进行翻译。这种情况下,可以将本地每个文件规则添加到项目的配置文件中。

"files":[
	{
  	"source": "/app/**/values/strings.xml",
    "translation": "/app/**/%android_code%/%original_file_name%",
    # 忽略internal目录下所有文件
    "ignore": ['**/internal/**'], 
  }
]