I18N documentation for Day Planner by Eskild Hustvedt <zerodogg A_T skolelinux *D0*T no> Introduction - - - - - - - Day Planner is designed from the ground up to have support for i18n. It uses the GNU Gettext library for the functions. Essentials for the translator - - - - - - - - - - - - - - - First of all. Make sure you're translating the latest git snapshot of Day Planner. See http://home.gna.org/dayplanner/git.html - if you don't translate the latest git then your translations might be outdated before they're done. Secondly, it's recommended that you join the dayplanner-i18n mailing list at https://mail.gna.org/listinfo/dayplanner-i18n/ Last you should know something about the syntax of the Day Planner po-files. You will meet strings in the form %(something) - do NOT translate the contents within these strings. These are the same as the usual %s placeholders, but with the added benefit of being named, which means that you can re-order them at will without breaking anything. Creating a new translation - - - - - - - - - - - - - - Run ./devel-tools/buildpot - this will create a pot-file in ./po/dayplanner.pot. Move this file to ./po/LANG_CODE.po - for instance for Norwegian Bokmål this would be: mv ./po/dayplanner.pot ./po/nb.po Now start translating ./po/LANG_CODE.po with your favourite po-editor (for instance poedit, gtranslator or kbabel). When you're done with that you'll need to edit ./po/aliases.conf - add your language. When you've done that follow the instructions in the sections "building the translations" and "sending in the translations". Updating a translation - - - - - - - - - - - To update a translation first run ./devel-tools/updatepo This will update the po-file for your language in ./po/. Now you can just translate as before using your favourite po-editor. When you've done that follow the instructions in the sections "building the translations" and "sending in the translations". Building the translations - - - - - - - - - - - - - Run ./devel-tools/BuildLocale - this creates a ./locale/ directory tree with the resulting mo-files. As long as your system locale is properly set you can now just run ./dayplanner and enjoy the program in your language. Sending in the translations - - - - - - - - - - - - - - We would very much appreciate that you send us your translation of Day Planner so that other users can benefit from your work. To do so send the po-file (and if you have changed ./devel-tools/BuildLocale include that file too) to the dayplanner-i18n mailing list. Helper scripts - - - - - - - - ./devel-tools/buildpot Builds the pot-file ./devel-tools/BuildLocale Builds the entire locale/ directory tree with mo-files and all ./devel-tools/postat Outputs translation statistics Holiday files - - - - - - - If your country doesn't have a holiday file or Day Planner doesn't autodetect your countries holiday file properly here is what you can do. Writing a holiday file - - - - - - - - - - - See the already written holiday files in the holiday/ subdirectory. Write your own one using that syntax. After you've finished writing it, copy the file to ~/.dayplanner/holidays and launch Day Planner. Any syntax errors will be written to stderr on the console so that you can fix them. When done you can send in the file to the dayplanner-i18n mailing list. You can also send fixes or updates to already existing holiday files to that list. Fixing Day Planner autodetection - - - - - - - - - - - - - - - - - If Day Planner doesn't properly detect your countries holiday file you will need to provide the following information: The output of: perl -e 'foreach(keys(%ENV)) { print "$_=$ENV{$_} || " if $_ =~ /^(LC_|LANG)/;} print "\n"' And the name of the holiday file (ie. holiday_norway). Autodetection for that country will then be added and included in the next release of Day Planner.