Personally, I'm a big fan of WordPress. Although it can be bloated sometimes, it uses smart programming techniques and high quality libraries. (Unlike some of the plugins.)
Today, I sorted out how to use the Localization (l10n) libraries of WordPress in another project. And it was a lot simpler than I could have hoped for.
Step 1: Copy some files
From the WordPress distribution, we're gonna need /wp-includes/l10n.php and the directory /wp-includes/pomo/*.php. Copy l10n and the whole directory pomo to your own includes directory.
Step 2: Compatibility
WordPress extensively uses apply_filters and do_action for filtering data and triggering events. We're not gonna use those now, but unless we want to rewrite half of l10n.php, we better make something for compatibility. I entered these simple statements in a new file named wordpress-compat.php:
Reusing WordPress components: L10n is a post from GeekLab.info. You are free to copy materials from GeekLab.info, but you are required to link back to http://www.geeklab.info
To easily gather .pot files, combine them with existing .po files and converting them to .mo files, I created this makefile for use with automake:
.PHONY: _site.pot backup
NOW=$(shell date +%s)
echo Generating $@
msgfmt -o $@ $< || echo -e "\033[33;1m $@ is wrong \033[0m"
if [ -e $@ ]; then \
mv $@ $(@:.po=.potmp) ; msgmerge --no-fuzzy-matching $(@:.po=.potmp) _site.pot > $@ ; \
rm $(@:.po=.potmp) ; \
echo Creating new file ; cp _site.pot $@ ; \
find /var/www/html -iname "*.php" | grep -v wpcode > my-php-files
xgettext --from-code=utf-8 -d site -f my-php-files --keyword=_e --keyword=__ -o - | sed "s/CHARSET/UTF-8/" > _site.pot
mkdir -f .backup
tar zcf .backup/backup-$(NOW).tgz *.po Makefile
My l10n makefile is a post from GeekLab.info. You are free to copy materials from GeekLab.info, but you are required to link back to http://www.geeklab.info