anchor.diff:  
   #-lispworks
   (defmethod backend-translate ((backend (eql :locale)) string language &rest args)
  +  (let ((dictionary (locale:current-dictionary)))
  +    (when (not (arnesi:aand (not (eq language locale:*default-locale*))
  +                            (gethash language dictionary)
  +                            (gethash string arnesi:it)))
  +      (when *warn-on-untranslated-messages*
  +        (warn "DJULA TRANSLATION NOT GIVEN: ~A ~A" string language))
  +      (pushnew (cons string language) *untranslated-messages* :test 'equalp)))
     (apply #'format-translation
            (cl-locale:i18n string
                            :locale language
  
positive.code: 
  (defmethod backend-translate ((backend (eql :gettext)) string language &rest args)
    (apply #'format-translation
             (gettext:gettext* string *gettext-domain* nil (string-downcase (string language)))
             args))
  
  ;; reading :UNPARSED-TRANSLATION-VARIABLE TOKENS created by {_ translation _}
  
  
negative.code: (in-package :djula)
  
  (defvar *translation-backend* nil "The translation backend. One of :locale, :gettext")
  
  (defvar *warn-on-untranslated-messages* t)
  (defvar *untranslated-messages* nil)
  
  (defun translate (string &optional args
                             (language (or *current-language* *default-language*))
  