It took me a lot longer than I thought but here is a diff for your comments. There is a dozen modifications in the file and a few comments. There is 1 modification that is not related to (future) l10n, it was discussed in a different thread (using format to create https vs http). The rest is about native strings. I have checked: * DONE % * DONE (... :tag "..." * DONE (cl-defstruct * DONE (completing-read * DONE (completing-read-multiple * DONE (concat -> problems * DONE (defconst * DONE (defcustom * DONE (defface * DONE (define-error * DONE (defun * DONE (defvar * DONE (easy-menu-define * DONE (error * DONE (format * DONE (format-message * DONE (insert -> problems * DONE (interactive -> prompt should be defined separately * DONE (interactive-only * DONE (mapconcat * DONE (message * DONE (prin1 * DONE (princ * DONE (read-string * DONE (setq * DONE (user-error * DONE (with-demoted-errors There are string issues that I could not solve with some concat and some insert and as I wrote in May (describe-package-1) seems to use a lot of magic to create strings. I've fixed the prin1/princ block but there are other places where I'm not sure how to proceed. Here is the "git diff master" file. Jean-Christophe