Запуск будь-якого токенайзера з єдиного файла

This post in English


Ситуація

Стягнув із інтернету і встановив токенайзери, щоб OmegaT краще шукала відповідності з урахуванням словоформ. У файлі Readme сказано, що можна створити декілька скриптів для тих мов, з яких перекладаєш (і для яких токенайзери є), і навіть наведені приклади. Зробив, усе запускається і працює, але хочеться більшої життєвої гармонії і меншої мороки.

Проблема

Потрібна можливість вибирати, з якої мови перекладаєш і яким саме токенайзером будеш користуватись, маючи єдиний скрипт — а відтак всього одну іконку для запуску на стільниці/панелі/стартовому меню чи єдину для всіх команду десь у $PATH (чи %PATH%).

Рішення

Рішення знайдено. Для його роботи під GNU/Linux потрібно мати bash, zenity та cat.
Нижче подано скрипт, який треба помістити у $HOME/bin або /usr/local/bin і назвати, як зручно (наприклад ottok — OmegaTTOKenizers)
Обрати мову оригіналу

#!/bin/bash
if [ ! -f $HOME/.omegat/ompath ]; then
	dirname `zenity --file-selection --title="Navigate to OT directory" \
	--text="Select OmegaT.jar from the folder where OmegaT is installed"` \
	> $HOME/.omegat/ompath
fi
OM_PATH=`cat $HOME/.omegat/ompath`
#Select the Tokenizer for your project
TokLang=`zenity --list --title="Source Language" \
--text="Select source language for the project" \
--radiolist --window-icon="$OM_PATH/OmegaT.png" \
--height="720" \
--column="" --column="Language" \
"" "Arabic" \
"" "Brazilian" \
"" "Chinese" \
"" "CJK" \
"" "Czech" \
"" "Danish" \
"" "Dutch" \
"" "English" \
"" "Finnish" \
"" "French" \
"" "German" \
"" "German2" \
"" "Greek" \
"" "Hungarian" \
"" "Italian" \
"" "Norwegian" \
"" "Persian" \
"" "Porter" \
"" "Portuguese" \
"" "Romanian" \
"" "Russian" \
"" "SmartChinese" \
"" "Spanish" \
"" "Swedish" \
"" "Thai" \
"" "Turkish" \
"" "Japanese" \
`
if [ $? -eq "1" ]; then
zenity --error --title="Canceled" --text="Canceled" --timeout=1
exit 0
fi
case "$TokLang" in
	Dutch|French|German|Russian)
		Analizer=`zenity --list --title="Analizer" \
 --text="Select the analizer for your language" --radiolist \
 --window-icon="$OM_PATH/OmegaT.png" \
 --column="" --column="Analyzer" "TRUE" "Snowball" "" "Lucene"`
	if [ $? -eq "1" ]; then
	zenity --error --title="Canceled" --text="Canceled" --timeout=1
	exit 0
	fi
	;;
	Japanese)
	Analizer="TinySegmenter"
	;;
	Arabic|Brazilian|Chinese|CJK|Czech|Greek|Persian|SmartChinese|Thai)
	Analizer="Lucene"
	;;
	Danish|English|Finnish|German2|Hungarian|Italian|Norwegian|Porter|\
	Portuguese|Romanian|Spanish|Swedish|Turkish)
	Analizer="Snowball"
esac
TOKENIZER=org.omegat.plugins.tokenizer."$Analizer""$TokLang"Tokenizer;
cd $OM_PATH
./OmegaT --ITokenizer=$TOKENIZER

ОНОВЛЕННЯ:
Новіша версія скрипта для нової версії плугіна можна знайти ось тут


Успіхів!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s