#!/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