|
#!/usr/bin/bash |
|
|
|
if [[ $LANG =~ zh_CN ]]; then |
|
langCloneFailed="错误:克隆失败…" |
|
langBuilding="正在编译" |
|
langBuildingto="至" |
|
langDoneA="完成!你现在可以删除文件夹" |
|
langDoneB="了。" |
|
langUsingCustomRepo="使用自定义远程仓库:" |
|
langCDTo="更换目录至:" |
|
langBranchNotCompareA="错误:该存储库的分支与您的 git 版本不相符!" |
|
langBranchNotCompareB="请删除现有文件夹并重试。" |
|
langBuildFailed="错误:编译失败!" |
|
langBuildError="编译出现错误!请检查相关日志输出。" |
|
langPause="按任意键继续…" |
|
elif [[ $LANG =~ zh_TW ]]; then |
|
langCloneFailed="錯誤:複製失敗…" |
|
langBuilding="正在編譯" |
|
langBuildingto="至" |
|
langDoneA="完成!你現在可以刪除資料夾" |
|
langDoneB="了。" |
|
langUsingCustomRepo="使用自訂遠端倉庫:" |
|
langCDTo="更換目錄至:" |
|
langBranchNotCompareA="錯誤:該儲存庫的分支與您的 git 版本不相符!" |
|
langBranchNotCompareB="請刪除現有資料夾並重試。" |
|
langBuildFailed="錯誤:編譯失敗…" |
|
langBuildError="編譯出現錯誤!請檢查相關日誌輸出。" |
|
langPause="按任意鍵繼續…" |
|
else |
|
langCloneFailed="Error: Cloning failed..." |
|
langBuilding="Building" |
|
langBuildingto="to" |
|
langDoneA="Done! You can remove the folder" |
|
langDoneB="now." |
|
langUsingCustomRepo="Using custom repository: " |
|
langCDTo="Change directory to " |
|
langBranchNotCompareA="Error: This repository's branch not compare with your git version!" |
|
langBranchNotCompareB='Please remove the existing folder and retry.' |
|
langBuildFailed="Error: Build failed!" |
|
langBuildError="Build locale file failed! Please check the log of output." |
|
langPause="Press any key to continue..." |
|
fi |
|
|
|
if [ ! -d "git" ]; then |
|
if [ $1 ]; then |
|
echo "$langUsingCustomRepo$1" |
|
{ |
|
git clone $1 --depth=1 -b v$(git --version | cut -d ' ' -f3) git |
|
echo "" |
|
} || { |
|
echo "" |
|
echo "$langCloneFailed" |
|
exit 1 |
|
} |
|
else |
|
{ |
|
git clone https://github.com/git-for-windows/git.git --depth=1 -b v$(git --version | cut -d ' ' -f3) git |
|
echo "" |
|
} || { |
|
echo "" |
|
echo "$langCloneFailed" |
|
exit 1 |
|
} |
|
fi |
|
fi |
|
|
|
echo "$langCDTo$(readlink -f git)" |
|
cd git |
|
echo "" |
|
|
|
if [ "v$(git --version | cut -d ' ' -f3)" == "$(git tag)" ]; then |
|
buildError=0 |
|
for poFiles in $(ls po | grep ".po$" | sed 's/\.[^.]*$//'); do |
|
{ |
|
echo "$langBuilding po/$poFiles.po $langBuildingto /mingw64/share/locale/$poFiles/LC_MESSAGES/git.mo..." |
|
mkdir -p /mingw64/share/locale/$poFiles/LC_MESSAGES |
|
msgfmt po/$poFiles.po -o /mingw64/share/locale/$poFiles/LC_MESSAGES/git.mo |
|
} || { |
|
echo "$langBuildError" |
|
buildError=1 |
|
read -s -n1 -p "$langPause" |
|
echo "" |
|
} |
|
done |
|
echo "" |
|
for guiPoFIles in $(ls git-gui/po | grep ".po$" | sed 's/\.[^.]*$//'); do |
|
{ |
|
echo "$langBuilding git-gui/po/$guiPoFIles.po $langBuildingto /mingw64/share/git-gui/lib/msgs/$guiPoFIles.msg..." |
|
mkdir -p /mingw64/share/git-gui/lib/msgs |
|
msgfmt --statistics --tcl -l $guiPoFIles git-gui/po/$guiPoFIles.po -d /mingw64/share/git-gui/lib/msgs |
|
} || { |
|
echo "$langBuildError" |
|
buildError=1 |
|
read -s -n1 -p "$langPause" |
|
echo "" |
|
} |
|
done |
|
echo "" |
|
if [ $buildError == 1 ]; then |
|
echo "$langBuildFailed" |
|
else |
|
echo "$langDoneA \"$(pwd -W | sed 's/[^.*]po$//')\" $langDoneB" |
|
fi |
|
else |
|
echo "" |
|
echo $langBranchNotCompareA |
|
echo $langBranchNotCompareB |
|
exit 1 |
|
fi |