PERKAMON_DIR = perkamon
LANGS = ja
-THRESH = 100
+THRESH = 80
THRESH_REL = 80
FLAGS ?=
PO4AFLAGS ?= -k $(THRESH) $(FLAGS)
-all: translate
+PO4A_SUBDIRS = $(notdir $(wildcard po4a/*))
-translate: jm-setup
- LC_ALL=C $(MAKE) translate \
- PO4AFLAGS="$(PO4AFLAGS)" LANGS="$(LANGS)" -C $(PERKAMON_DIR) \
- | tee untrans.txt
- ./untrans-list.pl < untrans.txt > untrans.html
- $(RM) untrans.txt
+all: translate update-stats
+
+translate: $(patsubst %, stamp/%, $(PO4A_SUBDIRS))
+stamp/%: stamp-jm-setup po4a/%/po/ja.po
+ @echo "*************** translate: $* ***************"
+ mkdir -p stamp
+ LC_ALL=C $(MAKE) process-$* \
+ PO4AFLAGS="$(PO4AFLAGS)" LANGS="$(LANGS)" -C $(PERKAMON_DIR)
+ touch $@
-translate-%: jm-setup
- LC_ALL=C $(MAKE) translate-$* \
+translate-all: $(patsubst %, _translate-%, $(PO4A_SUBDIRS))
+_translate-%: jm-setup
+ LC_ALL=C $(MAKE) process-$* \
PO4AFLAGS="$(PO4AFLAGS)" LANGS="$(LANGS)" -C $(PERKAMON_DIR)
-release: jm-setup
+release: $(patsubst %, _release-%, $(PO4A_SUBDIRS))
+
+_release-%: jm-setup
rm -f $(PERKAMON_DIR)/build/ja
ln -s ../../release $(PERKAMON_DIR)/build/ja
- LC_ALL=C $(MAKE) translate \
+ LC_ALL=C $(MAKE) process-$* \
PO4AFLAGS="-k $(THRESH_REL) $(FLAGS)" LANGS="$(LANGS)" -C $(PERKAMON_DIR)
- rm -f $(PERKAMON_DIR)/build/ja
+ $(RM) $(PERKAMON_DIR)/build/ja
ln -s ../../draft $(PERKAMON_DIR)/build/ja
- # Do not remove unreleased pages
+ @# Do not remove unreleased pages
@sleep 1
set -e; if git status release | grep deleted >/dev/null; then \
- git status release | grep 'deleted:' | awk '{print $3;}' | xargs -n1 echo; \
- git status release | grep 'deleted:' | awk '{print $3;}' | xargs -n1 git checkout; \
+ git status release | grep deleted | awk '{print $$3;}' | xargs -n1 echo; \
+ git status release | grep deleted | awk '{print $$3;}' | xargs -n1 git checkout; \
fi
- # I don't know why untrans.txt is generated in release target
- $(RM) untrans.txt
+
+update-stats: untrans.html
+
+untrans.html: $(patsubst %, stats/%, $(PO4A_SUBDIRS))
+ @echo "*************** Updating translation statistics ***************"
+ ./tools/generate-list.pl $^ > $@
+
+stats/%: stamp-jm-setup po4a/%/po/ja.po
+ @echo "*************** stats: $* ***************"
+ mkdir -p stats
+ mkdir -p _transtmp
+ $(RM) $(PERKAMON_DIR)/build/ja
+ ln -s ../../_transtmp $(PERKAMON_DIR)/build/ja
+ LC_ALL=C $(MAKE) process-$* \
+ PO4AFLAGS="-k 100 $(FLAGS)" LANGS="$(LANGS)" -C $(PERKAMON_DIR) \
+ | tee _log.txt
+ ./tools/extract-untrans.pl < _log.txt > $@
+ $(RM) $(PERKAMON_DIR)/build/ja
+ ln -s ../../draft $(PERKAMON_DIR)/build/ja
+ $(RM) -r _transtmp
+ $(RM) _log.txt
+
+clean-stats:
+ $(RM) -r stats
release-tl:
set -e; if git status release | grep modified >/dev/null; then \
- git status release | grep modified | awk '{print $3;}' | cut -d / -f 3 | xargs -n1 -IXXXXX ../../admin/JM-tl-modify.pl -U translation_list XXXXX RO; \
+ git status release | grep modified | awk '{print $$3;}' | cut -d / -f 3 | xargs -n1 -IXXXXX ../../admin/JM-tl-modify.pl -U translation_list XXXXX RO; \
fi
format:
cd $$cur; \
done
-stats: jm-setup
+postats: jm-setup
@LC_ALL=C $(MAKE) stats \
PO4AFLAGS="$(PO4AFLAGS)" LANGS="$(LANGS)" -C $(PERKAMON_DIR)
-untrans-stats: jm-setup
+untrans-postats: jm-setup
@LC_ALL=C $(MAKE) stats \
PO4AFLAGS="$(PO4AFLAGS)" LANGS="$(LANGS)" -C $(PERKAMON_DIR) \
2>&1 | grep -vE ' translated messages\.$$'
jm-setup: stamp-jm-setup
stamp-jm-setup:
- # Create symlink to po4a/*/po in the top dir.
+ @# Create symlink to po4a/*/po in the top dir.
set -e; for d in $(PERKAMON_DIR)/po4a/*; do \
if [ ! -e $$d/po ]; then \
t=$$(echo $$d | sed -e "s|$(PERKAMON_DIR)/||"); \
ln -s ../../../$$t/po $$d/po; \
fi; \
done
- # Create symlink to original dir instead of downloading tarball.
- #cd $(PERKAMON_DIR) && \
- # if [ ! -e man-pages ]; then \
- # ln -s ../original man-pages; \
- # fi && \
- # touch stamp-unpack-release && \
- # touch stamp-unpack
cd $(PERKAMON_DIR) && make setup
@set -e; if [ ! -e $(PERKAMON_DIR)/build/ja ]; then \
ln -s ../../draft $(PERKAMON_DIR)/build/ja; \
$(RM) $(PERKAMON_DIR)/stamp-*
$(RM) -rf $(PERKAMON_DIR)/build
find $(PERKAMON_DIR) -type l | xargs $(RM)
+
+help:
+ @echo "Available targets:"
+ @echo " translate Generate draft from po files"
+ @echo " translate-<SEC> Generate draft from the specified po file"
+ @echo " release Generate release from po files"
+ @echo ""
+ @echo " update-stats Update per-page trans stats"
+ @echo " clean-stats Remove all caches of per-page trans stats"
+ @echo " postats Display per-po trans stats"
+ @echo " untrans-postats Display per-po trans stats (untrans only)"
+ @echo ""
+ @echo " jm-setup Setup perkamon environment"
+ @echo " clean-setup Clean perkamon environment"