First pass at a script to translate the text in the clipboard. Not ready for prime time, unless you are working on the script, do not use yet.
This commit is contained in:
		
							
								
								
									
										34
									
								
								speech/clipboard_translator.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										34
									
								
								speech/clipboard_translator.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,34 @@ | ||||
| #!/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 | ||||
		Reference in New Issue
	
	Block a user