Il y a plusieurs choses à traduire pour adapter dak à d'autres langues et / ou d'autres configurations.
Les courriels types sont dans le répertoire /opt/dak/katie/templates du paquet installé (répertoire dak-1.0/templates du paquet source) qui est géré par le paramètre
Dir { Templates "/opt/dak/katie/templates/"; };
J'ajoute un spécificité si le ficher contient des termes spécifiques à Debian.
__ADMIN_ADDRESS__ __ADVISORY__ __ADVISORY_TEXT__ __ALICIA_ADDRESS__ __ANNOUNCE_LIST_ADDRESS__ __ARCHITECTURE__ __BCC__ __BINARY_DESCRIPTIONS__ __BUG_NUMBER__ __BUG_SERVER__ __CC__ __CHANGES_FILENAME__ __CONTROL_MESSAGE__ __DATE__ __DISTRO__ __FILE_CONTENTS__ __FROM_ADDRESS__ __HOSTNAME__ __KATIE_ADDRESS__ __KEYID__ __MAINTAINER__ __MAINTAINER_ADDRESS__ __MAINTAINER_FROM__ __MAINTAINER_TO__ __MANUAL_REJECT_MESSAGE__ __MELANIE_ADDRESS__ __MORE_INFO_URL__ __NEW_MAINTAINER__ __PACKAGE__ __PRIMARY_KEY__ __PRIMARY_MIRROR__ __PROD_MESSAGE__ __REJECTOR_ADDRESS__ __REJECT_MESSAGE__ __SHORT_SUMMARY__ __SOURCE__ __STABLE_REJECTOR__ __STABLE_WARNING__ __SUITE__ __SUITE_LIST__ __SUMMARY__ __UID__ __VERSION__ __WHOAMI__
La fonction qui fait ces substitutions est TemplateSubst dans utils.py. Le résultat d'un grep * TemplateSubst est :
alicia: mail_message = utils.TemplateSubst( amber: adv = utils.TemplateSubst(Subst, Cnf["Dir::Templates"]+"/amber.advisory"); jennifer: new_ack_message = utils.TemplateSubst(Subst,Cnf["Dir::Templates"]+"/jennifer.new"); katie.py: mail_message = utils.TemplateSubst(Subst,Cnf["Dir::Templates"]+"/jennifer.bug-experimental-fixed"); katie.py: mail_message = utils.TemplateSubst(Subst,Cnf["Dir::Templates"]+"/jennifer.bug-close"); katie.py: mail_message = utils.TemplateSubst(Subst,Cnf["Dir::Templates"]+"/jennifer.bug-nmu-fixed"); katie.py: mail_message = utils.TemplateSubst(Subst,Cnf["Dir::Templates"]+"/jennifer.announce"); katie.py: mail_message = utils.TemplateSubst(Subst,Cnf["Dir::Templates"]+"/jennifer.accepted"); katie.py: mail_message = utils.TemplateSubst(Subst,self.Cnf["Dir::Templates"]+"/jennifer.override-disparity"); katie.py: reject_mail_message = utils.TemplateSubst(Subst,Cnf["Dir::Templates"]+"/katie.rejected"); katie.py: reject_mail_message = utils.TemplateSubst(Subst,Cnf["Dir::Templates"]+"/katie.rejected"); kelly: reject_mail_message = utils.TemplateSubst(Subst,Cnf["Dir::Templates"]+"/kelly.unaccept"); kelly: mail_message = utils.TemplateSubst(Subst,Cnf["Dir::Templates"]+"/kelly.installed"); lauren: reject_mail_message = utils.TemplateSubst(Katie.Subst,Cnf["Dir::Templates"]+"/lauren.stable-rejected"); lisa: bxa_mail = utils.TemplateSubst(Katie.Subst,Cnf["Dir::Templates"]+"/lisa.bxa_notification"); lisa: prod_mail_message = utils.TemplateSubst( melanie: mail_message = utils.TemplateSubst(Subst,Cnf["Dir::Templates"]+"/melanie.bug-close"); uma: new_add_message = utils.TemplateSubst(Subst,Cnf["Dir::Templates"]+"/uma.added"); utils.py:def TemplateSubst(map, filename):
Il y a aussi la chaîne (ensuite chiffrée) au coeur d'uma qui est spécifique à Ganneff (à traiter en même temps que le modèle uma.added).
message= """ Additionally there is now an account on dak.ganneff.de created for you. You can login with ssh and play with the tools that constitute the archive software, like madison for example. Note that this service is provided for you to learn to work with the archive system tools, so please don't try to kill it with some stupid script kiddie action. """; message+= "\nYour password for the login %s is: %s\n" % (login, passwd);
Spécificités de vocabulaire. Divergences par rapport aux traductions standard :