Доброго времени суток!Данный пост я скопипастил из своих старых заметок, столкнувшись с проблемой выбора хорошего словаря под linux много лет назад. Надеюсь, он будет полезен новичкам.
Умудренные опытом админы могут не читать, или добавить что-то полезное из от себя. :)
*****
Бесплатный словарь StarDict с открытым кодом позволит обойтись без платных аналогов и рассчитан на разные языки. Кроме этого, файлы словарей из платных аналогов можно перекомпилировать в формат StarDict и запустить в его оболочке. Так же есть "голосовая читалка".
1. Скачать программу можно тут.
http://stardict-4.sourceforge.net/
http://www.huzheng.org/stardict
http://stardict.sourceforge.net
http://stardict-4.sourceforge.net
https://code.google.com/archive/p/stardict-3
2. Словари для StarDict можно скачать тут:
https://sites.google.com/site/gtonguedict/home/stardict-dict...
http://www.babylon-software.com/free-dictionaries/
http://download.huzheng.org
https://sites.google.com/site/gtonguedict/home/stardict-dict...
https://tuxor1337.github.io/firedict/dictionaries.html
http://download.huzheng.org/dict.org
http://download.huzheng.org/freedict.de
http://download.huzheng.org/mova.org
http://download.huzheng.org/Quick
https://archive.org/details/stardict_collections
3. Другие источники и онлайн словари:
https://en.wiktionary.org/wiki/Wiktionary:Public_domain_sources
https://en.wiktionary.org/wiki/Wiktionary:Other_dictionaries...
https://freedict.org
Установка для Linux:
1) http://ubuntuhandbook.org/index.php/2013/07/install-stardict.../
2) http://www.ubuntubuzz.com/2018/05/ubuntu-1804-install-stardi...
Напимер, для Ubuntu и Debian:
1) sudo apt-get install stardict ( если нет - добавляем репозиторий проекта или качаем пакет *.deb, устанавливаем sudo dpkg -i имя_пакета.deb если вы находитесь в папке, где лежит пакет. Или:
sudo dpkg -i /home/user_name/Downloads/имя_пакета.deb
2) Загружаем файлы словарей, например:
Indonesia-English: wget http://download.huzheng.org/Quick/stardict-quick_ind-eng-2.4...
English-Indonesia: wget http://download.huzheng.org/Quick/stardict-quick_eng-ind-2.4...
Выкачать все архивы с сайта http://download.huzheng.org можно так:
wget -r http://download.huzheng.org или, что удобнее:
wget -r -np -l10 -A '*.tar.bz2' http://download.huzheng.org
- эта команда выкачает все каталоги и архивы в них, и ничего лишнего. Я рекомендую качать с этого сайта, там наиболее полная коллекция.
3) Распаковываем в папку ~/Downloads/ В результате вы имеете две папки, содержащие файлы .idx, .ifo, .dict.dz
Распаковать все архивы в данной папке можно командами, например:
cat *.tar.gz | tar zxvf - -i
cat *.tgz | tar zxvf - -i
cat *.tar.xz | tar Jxvf - -i
cat *.tar.bz2 | tar jxvf - -i
4). Установка файлов словарей
Для того, чтобы словари работали, их нужно переместить в папку /usr/share/stardict/dic/
5) Необходимо перейти в папку, куда были загружены и разархивированы словари:
cd ~/Downloads/
или cd /home/user_name/folder_name/subfolder_name если вы разархивировали словари в другую папку.
6) Перемещаем словари:
sudo mv -v stardict-quick_ind-eng-2.4.2/ /usr/share/stardict/dic/
sudo mv -v stardict-quick_eng-ind-2.4.2/ /usr/share/stardict/dic/
можно перемещать при помощи менеджера файлов mc
sudo mc
7) Запускаем словарь и пользуемся.
P.S.:
Словарь позволяет работать с несколькими языками (больше 3-х точно), азиатскими языками (такими как китайский и японский), но нужно немного поднастроить шрифты.
Не рекомендую "запихивать" в /usr/share/stardict/dic/ словарей больше 2 Гб, StarDict может не запускаться или тормозить.
Файлы словарей в /usr/share/stardict/dic/ могут лежать в субдиректориях, можно их оттуда вытянуть, но работать будет и так и так.
Если вам охота перемещать все файлы словарей в одну папку - сделайте .sh скрипт с таким содержимым (нашел где-то очень давно):
*******
#!/bin/bash
cd "$HOME"
SRC_DIR="$(zenity --file-selection --title="Выберите директорию из которой будут перемещены файлы" --directory)"
[ -z "$SRC_DIR" ] && exit 0
[ -d "$SRC_DIR" ] || { zenity --error --title="Перемещение файлов" --text="Директория $SRC_DIR не найдена."; exit; }
NOT_WRTBL_FLS="$(find "$SRC_DIR" ! -writable 2>/dev/null)"
[ -z "$NOT_WRTBL_FLS" ] || { zenity --error --title="Перемещение файлов" --text="В директории $SRC_DIR есть не доступные для записи файлы:\n$NOT_WRTBL_FLS"; exit; }
DEST_DIR="$(zenity --file-selection --title="Выберите директорию куда будут перемещены файлы" --directory)"
[ -z "$DEST_DIR" ] && exit 0
[ -d "$DEST_DIR" ] || { zenity --error --title="Перемещение файлов" --text="Директория $DEST_DIR не найдена."; exit; }
[ -w "$DEST_DIR" ] || { zenity --error --title="Перемещение файлов" --text="Директория $DEST_DIR не доступна для записи."; exit; }
CHAR="_"
ALL_SRC_FILES="$(find "$SRC_DIR" -type f | sort)"
ALL_SRC_FILES_CNT=$(echo "$ALL_SRC_FILES" | wc -l)
{
echo "Перемещение файлов..."
IFS=$'\n'
for SRC_FILE in $ALL_SRC_FILES; do
DEST_FILE="$DEST_DIR/$(basename -z "$SRC_FILE")"
while [ -f "$DEST_FILE" ]; do
echo -n "Переименован файл \"$DEST_FILE\" в "
DEST_FILE="$(echo -n "$DEST_FILE" | sed 's/^\([^.]*\)/\1'$CHAR'/')"
echo "\"$DEST_FILE\""
done
mv "$SRC_FILE" "$DEST_FILE" && let N+=1 || echo "Ошибка при перемещении файла $SRC_FILE"
done
echo "Перемещено $N файлов из $ALL_SRC_FILES_CNT."
} | zenity --text-info --width=750 --height=450 --title="Перемещение файлов"
*********
Затем сделайте его исполнимым (через свойства файла или через mc например). При запуске не забываем sudo.
Start: sudo ./script.sh
Script copies files from subfolders DIR1 to DIR2.
Где-то так.
Но можно не заморачиваться "вытаскиванием" словарей из субдиректорий, должно работать и так.