需求
翻译 SourceTree for Mac
与 SourceTree for Windows
软件。
修正 衍合
为 变基
,衍合
一词为临时翻译,现已修正为 变基
,参见:
progit2-zh/TRANSLATION_NOTES.asc at master · progit/progit2-zh
安装客户端
1
|
sudo pip install transifex-client
|
SourceTree for Mac
SourceTree For Mac localization
下载翻译
注意:翻译的地址不是默认的 URL,而是 https://www.transifex.com/projects/p/
+ 项目名字
1
2
3
|
tx init
tx set --auto-remote https://www.transifex.com/projects/p/sourcetree-for-mac/
tx pull -l zh_CN
|
转换编码
因为下载下来的翻译文件使用的是 UTF-16LE 编码,sed 默认使用 OS X 的 shell 的 UTF-8 编码,所以需要先转换编码,修改完后再转换回来推送上去。
将以下内容保存为 to-utf8.sh
,放在翻译目录下:
1
2
3
4
5
6
7
8
9
10
|
#!/bin/bash
FROM=UTF-16LE
TO=UTF-8
ICONV="iconv -f $FROM -t $TO"
# Convert
find . -type f -name "*.strings" | while read fn; do
cp ${fn} ${fn}.bak
$ICONV < ${fn}.bak > ${fn}
rm ${fn}.bak
done
|
执行以下命令转换编码为 UTF-8
修改翻译
1
|
find . -name "*.strings" -type f | xargs -t -n1 sed -i "" "s/衍合/变基/g"
|
转换编码
将以下内容保存为 to-utf16.sh
,放在翻译目录下:
1
2
3
4
5
6
7
8
9
10
|
#!/bin/bash
FROM=UTF-8
TO=UTF-16LE
ICONV="iconv -f $FROM -t $TO"
# Convert
find . -type f -name "*.strings" | while read fn; do
cp ${fn} ${fn}.bak
$ICONV < ${fn}.bak > ${fn}
rm ${fn}.bak
done
|
执行以下命令转换编码为 UTF-16
推送
SourceTree for Windows
SourceTree For Windows localization
因为翻译的编码默认就是 UTF-8,所以无需转换编码
1
2
3
4
5
|
tx init
tx set --auto-remote https://www.transifex.com/projects/p/sourcetree-for-windows/
tx pull -l zh_CN
find . -name "*.resx" -type f | xargs -t -n1 sed -i "" "s/衍合/变基/g"
tx push -l zh_CN -t
|
参考资料