Disable to insert '\n' mark on each quote with po-mode.el

The po-mode.el included 'gettext-el' package is useful for editing po files with emacs.
However, po-mode.el are always added '\n' on each msgstr quotes. This behavior is very annoyance in editing po files generated po4a.I memorize here how to disable this feature.
(NOTICE: This method is tested under gettext-el_0.18.1.1-5_all on debian sid. If applying on another version of gettext,it might cause unpredicable side effect.)

The solution is very simple, simply put following lisp codes into your .emacs file

;; customization for editing po files of po4a.
;; override converting form function to
;; avoid insertion of \n on the end of each lines of msgstr directive.
(add-hook 'po-mode-hook
          '(lambda ()
             (defun po-eval-requoted (form prefix obsolete)
               "Eval FORM, which inserts a string, and return the string fully requoted.
If PREFIX, precede the result with its contents.  If OBSOLETE, comment all
generated lines in the returned string.  Evaluating FORM should insert the
wanted string in the buffer which is current at the time of evaluation.
If FORM is itself a string, then this string is used for insertion."
               (po-with-temp-buffer
                (if (stringp form)
                    (insert form)
                  (push-mark)
                  (eval form))
                (goto-char (point-min))
                (let ((multi-line (re-search-forward "[^\n]\n+[^\n]" nil t)))
                  (goto-char (point-min))
                  (while (re-search-forward "[\"\a\b\f\n\r\t\\]" nil t)
                    (cond ((eq (preceding-char) ?\") (replace-match "\\\"" t t))
                        ((eq (preceding-char) ?\a) (replace-match "\\a" t t))
                        ((eq (preceding-char) ?\b) (replace-match "\\b" t t))
                        ((eq (preceding-char) ?\f) (replace-match "\\f" t t))
                        ((eq (preceding-char) ?\n)
                         (replace-match (if (or (not multi-line) (eobp))
                                            ""
                                          "\"\n\"")
                                        t t))
                        ((eq (preceding-char) ?\r) (replace-match "\\r" t t))
                        ((eq (preceding-char) ?\t) (replace-match "\\t" t t))
                        ((eq (preceding-char) ?\\) (replace-match "\\\\" t t))))
                  (goto-char (point-min))
                  (if prefix (insert prefix " "))
                  (insert (if multi-line "\"\"\n\"" "\""))
                  (goto-char (point-max))
                  (insert "\"")
                  (if prefix (insert "\n"))
                  (if obsolete
                      (progn
                        (goto-char (point-min))
                        (while (not (eobp))
                          (or (eq (following-char) ?\n) (insert "#~ "))
                          (search-forward "\n"))))
                  (buffer-string))))))