Как я могу сделать мини-англо-китайский словарь для Ubuntu?
Когда вы открываете Ubuntu, используется много английских слов. Например, аксессуары, образование, графика, интернет, офис, другое, звук, видео, системные инструменты, настройки, запуск и выход из системы будут отображаться в графическом интерфейсе.
Как я могу получить список всех английских слов, используемых в графическом интерфейсе Ubuntu?
Мне нужен список всех английских слов, чтобы я мог перевести их на китайский, чтобы создать глоссарий для Ubuntu: руководство на китайском языке по терминологии Ubuntu на английском языке. Это будет работать как мини-словарь: файл из двух столбцов с английским слева и китайским справа.
Это шутка, чтобы написать все это, просто посмотрев на слова в графическом интерфейсе. Я хочу умный способ сделать задачу. Есть ли список всех слов, используемых Ubuntu?
Печатание вручную, когда я сталкиваюсь со словами в GUI, является глупым способом выполнить задачу.
- Скопируйте все английские слова одно за другим из графического интерфейса, когда локаль установлена на
en_us
, - Скопируйте все китайские слова один за другим из графического интерфейса, если для локали задано значение
zh
, - Сложите их в один файл, с английским слева и китайским справа.
Есть ли более умный способ сделать это?
Какой символ в моем /usr/lib/locale/locale-archive?
5 ответов
Существует много способов хранения интернационализированных строк в зависимости от наборов инструментов GUI или спецификаций.
Те, что показаны на скриншоте, из меню
.directory
файлы. Используйте тот же стандарт, что и.desktop
из проекта freedesktop. См. Спецификация записи рабочего стола: Локализованные значения для ключейВот скрипт для их извлечения
Создать файл оболочки
nano extract_zh_translation.sh
добавлять
#!/bin/bash for f in $(ls $1) do name_en=`sed -n -e '0,/Name/{s/^\s*Name\s*=\s*//p}' $f` name_zh=`sed -n -e '0,/Name\[zh_CN\]/{s/^\s*Name\[zh_CN\]\s*=\s*//p}' $f` case `echo ${#name_en}/8 | bc` in 3|2) echo -e $name_en'\t'$name_zh ;; 1) echo -e $name_en'\t\t'$name_zh ;; 0) echo -e $name_en'\t\t\t'$name_zh ;; esac done
Сделайте это исполняемым
chmod +x extract_zh_translation.sh
Запустите его в записях каталога меню
./extract_zh_translation.sh "/usr/share/desktop-directories/*.directory"
Вот пример вывода
Если вы хотите, чтобы пункты меню приложения тоже
./extract_zh_translation.sh "/usr/share/applications/*.desktop"
Вот пример вывода
Другие переводы Unity GUI использует
gettext
,Файлы, имеющие
.gmo
или же.mo
расширение, являются окончательным двоичным форматом. Проверьте:locate -br .mo$ | grep zh_CN
Исходные файлы имеют
.po
расширение, вы можете скачать их с https://translations.launchpad.net/ или загрузив полный исходный код, например:apt-get source unity
Другие наборы инструментов GUI, такие как Qt & Java, используют другие форматы.
Поиск переводов Ubuntu https://wiki.ubuntu.com/Translations/
Вы можете получить выражения и переводы там.
Я думаю, что он имеет в виду другую проблему. На моем Ubuntu я установил английский, иврит и французский. Вы должны зайти в "Настройки системы", "Языковая поддержка" и добавить дополнительные языки.
Чтобы загрузить его на другом языке, вы перетащите нужный язык в верхнюю часть списка. Для меня это работает как шарм.
Запустите его на виртуальной машине, сделайте скриншоты, запустите инструмент OCR на изображениях. Это только немного лучше, чем делать это вручную. Было бы здорово, если бы вы могли просто передать текст в файл, но ОС, которая сделает это, еще не проснулась.
Доступна и поддерживается китайская версия Ubuntu: Ubuntu Kylin
Наряду с различными функциями, я думаю, что тип этого на английском языке, но без удаленных функций будет на самом деле довольно хорошо.