Удалите отдельные языковые файлы, если они не нужны на help.ubuntu.com
Справочная документация по Ubuntu для настольных компьютеров и руководство по Ubuntu Server опубликованы на веб-сайте https://help.ubuntu.com/ примерно на 60 языках (хотя многие переводы очень неполны). Рабочий процесс компиляции документа несколько расточителен, потому что он создает версии на каждом языке для каждого файла, даже если они идентичны для всех языков. Например:
doug@s15:~/docs-trunk/z/html/ubuntu-docs$ ls -l *yelp-note-warning*
-rw-r--r-- 1 doug doug 1088 Mar 13 23:55 yelp-note-warning.png.am
-rw-r--r-- 1 doug doug 1088 Mar 13 23:55 yelp-note-warning.png.ar
-rw-r--r-- 1 doug doug 1088 Mar 13 23:55 yelp-note-warning.png.ast
-rw-r--r-- 1 doug doug 1088 Mar 13 23:55 yelp-note-warning.png.az
...
-rw-r--r-- 1 doug doug 1088 Mar 13 23:55 yelp-note-warning.png.ur
-rw-r--r-- 1 doug doug 1088 Mar 13 23:55 yelp-note-warning.png.uz
-rw-r--r-- 1 doug doug 1088 Mar 13 23:55 yelp-note-warning.png.zh-CN
-rw-r--r-- 1 doug doug 1088 Mar 13 23:55 yelp-note-warning.png.zh-HK
-rw-r--r-- 1 doug doug 1088 Mar 13 23:55 yelp-note-warning.png.zh-TW
Для такого файла было бы достаточно иметь только один файл с именем yelp-note-warning.png
Для полноты, пример, где мы не сможем создать только один файл:
doug@s15:~/docs-trunk/z/html/ubuntu-docs$ ls -l figures/unity-workspace-intro*
-rw-r--r-- 1 doug doug 48077 Mar 13 23:55 figures/unity-workspace-intro.png.am
-rw-r--r-- 1 doug doug 48077 Mar 13 23:55 figures/unity-workspace-intro.png.ar
-rw-r--r-- 1 doug doug 48077 Mar 13 23:55 figures/unity-workspace-intro.png.ast
...
-rw-r--r-- 1 doug doug 48077 Mar 13 23:55 figures/unity-workspace-intro.png.da
-rw-r--r-- 1 doug doug 64335 Mar 13 23:55 figures/unity-workspace-intro.png.de
-rw-r--r-- 1 doug doug 48077 Mar 13 23:55 figures/unity-workspace-intro.png.el
...
-rw-r--r-- 1 doug doug 48077 Mar 13 23:55 figures/unity-workspace-intro.png.id
-rw-r--r-- 1 doug doug 47152 Mar 13 23:55 figures/unity-workspace-intro.png.it
-rw-r--r-- 1 doug doug 48077 Mar 13 23:55 figures/unity-workspace-intro.png.ja
...
-rw-r--r-- 1 doug doug 48077 Mar 13 23:55 figures/unity-workspace-intro.png.zh-HK
-rw-r--r-- 1 doug doug 48077 Mar 13 23:55 figures/unity-workspace-intro.png.zh-TW
У меня вопрос: как мы можем определить, что все файлы идентичны, и если это так, заменить их одним файлом без суффикса для конкретного языка?
Псевдокод:
For all files, including sub-folders{
If all language specific versions of the file are identical{
Replace the language specific versions with one non-language specific version.
}
}
В настоящее время нас интересуют только справочные документы для настольных компьютеров, хотя, если что-то выяснится, мы также сделаем это для Serverguide.
Это может быть сделано в Makefile, если это возможно (и предпочтительно). Или как отдельный скрипт (который, я полагаю, может быть вызван из Makefile). Я беспокоюсь о написании программы для него, потому что не все члены команды по документации Ubuntu также являются программистами, что вызывает потенциальную проблему с обслуживанием в будущем.
Предполагается, но не обязательно, чтобы новый код, согласно псевдокоду выше, был добавлен в самом конце раздела install Makefile:
# Installs all HTML files to a single multilingual directory for subsequent copying to
# the web server document structure (e.g. to run with Apache and MultiViews enabled)
install:
rm -Rf "$(INSTALLDIR)"/*; \
mkdir -p "$(INSTALLDIR)"; \
cp -R "$(HTMLDESTDIR)/"* "$(INSTALLDIR)"; \
for lc in C $(help_linguas); do \
lang=`echo $$lc | $(SED) -e 's/[@_]/-/'`; \
if test "$$lang" = "C"; then lang=en; fi; \
if test "$$lang" = "gl"; then lang=gl-GL; fi; \
if test "$$lang" = "ms"; then lang=ms-MS; fi; \
if test "$$lang" = "pl"; then lang=pl-PL; fi; \
cp -af "$(INSTALLDIR)/$$lang"/*.css "$(INSTALLDIR)"; \
rm -Rf "$(INSTALLDIR)/$$lang"/*.css ; \
find "$(INSTALLDIR)/$$lang" -type f -exec mv {} {}.$$lang \; ; \
cp -af "$(INSTALLDIR)/$$lang"/* "$(INSTALLDIR)"; \
rm -Rf "$(INSTALLDIR)/$$lang" ; \
done
... new code, per this question, goes here ...
РЕДАКТИРОВАТЬ: решение Гуннар это здорово, но есть и другие файлы, которые являются избыточными. Например, все.js-файлы, и еще несколько.png-файлов в главном каталоге.
РЕДАКТИРОВАТЬ: пересмотренное решение Gunnar решает все проблемы, для чистой экономии на 3326 файлов меньше только для веб-страниц настольных документов 17.04.
Рекомендации:
HTML-компиляция Makefile. (см. install
сегмент в конце.)
Весь код проекта.
Процедура сборки.
Файл веб-сайта.htaccess. Ответ Гуннара опирается на запасной язык.
1 ответ
Я попытался исправить это:
http://bazaar.launchpad.net/~ubuntu-core-doc/ubuntu-docs/trunk/revision/607?compare_revid=605
Он сохраняет расширение.en и использует резервный файл.htaccess.
Первая попытка всегда приводила к получению версии файла.png, не имеющей языкового расширения, независимо от того, какой язык запрашивался. Вторая попытка имеет расширение.png.en в качестве общего расширения файла и опирается на файл.htaccess веб-сайта. LanguagePriority fallabck директива для предоставления этого файла в ситуациях, когда нет одного конкретного языка.
Пример:
-rw-rw-r-- 1 doug doug 64335 Mar 14 19:50 unity-workspace-intro.png.de
-rw-r--r-- 1 doug doug 48077 Mar 14 19:50 unity-workspace-intro.png.en
-rw-rw-r-- 1 doug doug 47152 Mar 14 19:50 unity-workspace-intro.png.it
Немецкий получит файл.png.de, итальянский - файл.png.it, а любой запрос на другом языке получит файл.png.en.