0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Qiita100万記事感謝祭!記事投稿キャンペーン開催のお知らせ

コマンドラインで翻訳するやつ Windows WSL2 Linux Shell

Last updated at Posted at 2025-01-14

概要

コマンド(sh実行)で翻訳を可能にする(Shellはbashを使用)
OSはWindows(WSL2 OracleLinux)
日本語と英語、引数を自動判定して相互翻訳したい

インストール

まずtransコマンドを使えるようにします

wgetでDirect_Download
wget git.io/trans
chmod +x ./trans
mv ./trans $HOME/.local/bin

.bashrc にPATH($HOME/.local/bin)を記載
※記載済みならここは飛ばす

.bashrc
 PATH="$HOME/.local/bin:$HOME/bin:$PATH"


 PATH="省略..
.bashrcを再読み込みして反映
source ~/.bashrc

transコマンドが使えればおk

動作確認
trans

スクリプトサンプル

translate.sh
#!/bin/bash

# 文字列が日本語文字を含むかチェックする関数
has_japanese() {
    local text="$1"
    # Unicode範囲で日本語文字(ひらがな、カタカナ、漢字)をチェック
    echo "$text" | grep -q '[ぁ-んァ-ン一-龥]'
    return $?
}

# 文字列が英語のみで構成されているかチェックする関数
is_english_only() {
    local text="$1"
    # 英字のみ(空白を除く)かチェック
    echo "$text" | grep -q '^[A-Za-z[:space:]]*$'
    return $?
}

# 言語を判定する関数
detect_language() {
    local text="$1"
    
    # 空文字チェック
    if [ -z "$text" ]; then
        echo "void?"
        return
    fi
    
    # 日本語文字が含まれているかチェック
    if has_japanese "$text"; then
        trans ja:en "$text" # echo "japanese"
    else
        # 日本語文字を含まない場合は英語として判定
        if is_english_only "$text"; then
            trans en:ja "$text" # echo "english"
        else
            # その他の文字(記号など)が含まれる場合も英語として判定
            trans en:ja "$text" # echo "english"
        fi
    fi
}

# 出力内容
output() {
    local result="$1"
    echo -e "\n$result\n"
    echo "---------------------------"
    return $?
}

# メイン処理
if [ "$#" -eq 0 ]; then
    # 引数がない場合は対話モード
    while true; do
        echo -n "翻訳したい文字列を入力してください(終了はCtrl+C): "
        read -r input
        result=$(detect_language "$input")
        output "$result"
    done
else
    # 引数がある場合はその文字列を判定
    full_text="$*"
    result=$(detect_language "$full_text")
    output "$result"
fi

使い方

引数に翻訳したい言葉を指定

単語
# 英→日
translate.sh english

# 日→英
translate.sh 日本語
文章もいける
translate.sh Are you mad?

translate.sh おこなの? 激おこ?

なお翻訳精度は google翻訳レベルなのであしからず。。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?