#!/usr/bin/env bash # Clear the clipboard so you don't accidently send personal info to the translator. echo "" | xclip -d "${DISPLAY:-:0}" -selection clipboard export dictionaryFile="${XDG_CONFIG_HOME:-$HOME/.config}/storm-games/audiogame-manager/translations.txt" if [[ ! -r "$dictionaryFile" ]]; then touch "$dictionaryFile" fi newText="" oldText="" oldTranslatedText="" while : ; do newText="$(xclip -d "${DISPLAY:-:0}" -selection clipboard -o)" sleep 0.01 if [[ "$oldText" == "$newText" ]] || [[ "$newText" == "" ]]; then continue fi export newText translatedText="$(awk -v originalText="${newText}" 'BEGIN { exitCode = 1; FS = "\\)==:\\[" } $1~originalText { print $2; exitCode = 0; exit} END { exit exitCode }' "$dictionaryFile")" if [[ "${#translatedText}" -ge 1 ]]; then if [[ "${translatedText}" != "${oldTranslatedText}" ]]; then spd-say "$translatedText" fi oldTranslatedText="$translatedText" continue fi translatedText="$(trans -b -- "$newText")" echo "${newText})==:[${translatedText}" >> "$dictionaryFile" sort -uo "$dictionaryFile" "$dictionaryFile" spd-say "$translatedText" oldText="$newText" done