Liunx中使用OpenCC转换字体

241 阅读2分钟

安装OpenCC

在Linux系统中安装OpenCC有多种方式,本文将介绍源码安装。 OpenCC 在 GitHub 上有一个最新的代码库,支持 ocd2 字典格式。我们可以从源代码安装最新版本。

  1. 安装编译依赖: 执行以下命令来安装这些依赖项:
    sudo apt update
    
    sudo apt install git
    
    sudo apt install cmake build-essential
    
    sudo apt install libboost-all-dev
    
  2. 克隆 OpenCC 仓库: 从 GitHub 克隆 OpenCC 的源代码:
    git clone https://github.com/BYVoid/OpenCC.git
    cd OpenCC
    
  3. 编译 OpenCC: 创建一个构建目录并编译 OpenCC:
    mkdir build
    cd build
    cmake ..
    make
    sudo make install
    
  4. 验证安装: 完成安装后,检查 OpenCC 是否成功安装并确认版本:
    opencc -v
    

可能出现的问题 opencc: error while loading shared libraries: libopencc.so.1.1: cannot open shared object file: No such file or directory 解决方案:

  1. 重新配置动态库路径 在编译安装 OpenCC 后,有时系统无法自动找到新的库文件。可以通过以下步骤解决这个问题: 确定库文件位置:找到 libopencc.so.1.1 文件的位置。通常它会位于 /usr/local/lib/ 目录或类似的路径下。可以使用 find 命令查找它:

    sudo find / -name libopencc.so.1.1
    

    假设你找到的文件路径为 /usr/local/lib/libopencc.so.1.1。

  2. 将库路径添加到动态链接器配置文件中: 将库文件路径添加到 /etc/ld.so.conf.d/ 目录下的配置文件中,或直接修改 LD_LIBRARY_PATH 环境变量。

    创建一个新的配置文件,告诉系统去哪里查找 OpenCC 的共享库:

    echo "/usr/local/lib" | sudo tee /etc/ld.so.conf.d/opencc.conf
    

    这会将 /usr/local/lib 添加到动态库搜索路径中。

  3. 更新动态链接器缓存: 使用以下命令更新库文件缓存,使其生效:

    sudo ldconfig
    

    ldconfig 会更新系统的共享库缓存,以确保新的库可以被系统识别。

  4. 验证 OpenCC: 更新缓存后,重新运行 OpenCC 查看是否解决了问题:

    opencc -v
    

使用OpenCC

安装完成后oepenc的配置文件在/usr/local/share/opencc目录下

简体中文转繁体中文

echo "简体中文示例" | opencc -c s2t.json

繁体中文转简体中文

echo "簡體中文示例" | opencc -c t2s.json

批量处理文件

config_file="s2t.json"  # 简体转繁体配置文件路径

# 把 input_array 中的目录替换为自己的目录
input_array=()
input_array[0]="/views"
input_array[1]="dome"
input_array[2]="test/src"
for input_directory in "${input_array[@]}"; do
    echo "*********** input_directory $input_directory ***********"
    find "$input_directory" -type f \( -name "*.java" -o -name "*.xml" -o -name "*.js" -o -name "*.vue"  -o -name "*.html"  -o -name "*.json" -o -name "*.sql" -o -name "*.php" \) -print0 | while IFS= read -r -d $'\0' file; do
        # 使用OpenCC进行简体到繁体的转换,并直接覆盖原文件
        opencc -i "$file" -o "$file" -c "$config_file"
        echo "Converted $file in-place"
    done
done