| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- #!/bin/bash
- DIR="./zh-Hans"
- TDIR="./zh-Hant"
- TWDIR="./zh-Hant-TW"
- HKDIR="./zh-Hant-HK"
- # 检查 opencc 是否安装
- if ! command -v opencc &> /dev/null; then
- echo "❌ opencc 命令未找到,请先安装 OpenCC。"
- exit 1
- fi
- # 检查 $DIR 中是否有 srt 文件
- if [ ! -d "$DIR" ]; then
- echo "❌ 目录 $DIR 不存在,请检查路径。"
- exit 1
- fi
- if [ -z "$(ls -A "$DIR"/*.srt 2>/dev/null)" ]; then
- echo "❌ 目录 $DIR 中没有找到任何 .srt 文件。"
- exit 1
- fi
- # 如果 TDIR、TWDIR 和 HKDIR 目录不存在,则创建它们,如果已存在则清空目录里的所有文件
- if [ -d "$TDIR" ]; then
- rm -rf "$TDIR"/*
- fi
- if [ -d "$TWDIR" ]; then
- rm -rf "$TWDIR"/*
- fi
- if [ -d "$HKDIR" ]; then
- rm -rf "$HKDIR"/*
- fi
- # 如果目标目录不存在,则创建它们
- if [ ! -d "$TDIR" ]; then
- mkdir -p "$TDIR"
- fi
- if [ ! -d "$TWDIR" ]; then
- mkdir -p "$TWDIR"
- fi
- if [ ! -d "$HKDIR" ]; then
- mkdir -p "$HKDIR"
- fi
- total_files=$(ls -1q "$DIR"/*.srt | wc -l)
- current_file=0
- echo "🔄 开始转换 $total_files 个 .srt 文件..."
- # 遍历 $DIR 中的所有 .srt 文件并转换
- for file in "$DIR"/*.srt; do
- if [[ -f "$file" ]]; then
- out="${file##*/}"
- out="${out%.srt}.srt" # 从 out 中取出文件名部分并替换扩展名为 .srt
- # 增加显示循环百分比的功能
- current_file=$((current_file + 1))
- percent=$((current_file * 100 / total_files))
- echo "🔄 转换中: $current_file/$total_files ($percent%) - $file"
- opencc -i "$file" -o "$TDIR/$out" -c s2t.json
- if [ $? -ne 0 ]; then
- echo "❌ 转换失败: $file by s2t.json"
- continue
- fi
- opencc -i "$file" -o "$TWDIR/$out" -c s2tw.json
- if [ $? -ne 0 ]; then
- echo "❌ 转换失败: $file by s2tw.json"
- continue
- fi
- opencc -i "$file" -o "$HKDIR/$out" -c s2hk.json
- if [ $? -ne 0 ]; then
- echo "❌ 转换失败: $file by s2hk.json"
- continue
- fi
- echo "✅ 转换成功: $file"
- fi
- done
|