Re: PO-based Documentation Translation
- From: Karl Eichwalder <ke gnu franken de>
- To: gnome-i18n gnome org
- Subject: Re: PO-based Documentation Translation
- Date: Thu, 02 Oct 2003 10:34:16 +0200
Tim Foster <Tim.Foster@Sun.COM> writes:
> Yeah - that would work, - you're getting the differences displayed, but
> not taking advantage of the matches you'd get across other projects if
> you could segment at the sentence level.
Yes, you are right. OTOH, it would be that difficult to enhance
po-mode (Emacs) doing a lookup for arbitrary fragments of an entry:
1. Mark the fragment you are interested in
2. Build a temporary pot file with just this fragment and call
'msgmerge -C compendium.po /dev/null tmp.pot' on it.
I'll give it a try. Here is the proof of concept (don't forget to set
po-compendium-file first); mark the substring of an msgid you are
interested in and then call M-x po-fragment-lookup-compendium RET - in
case of success the usual edit buffer sould appear:
(defvar po-compendium-file nil
"*Set to FILENAME of the compendium file.")
(defun po-fragment-lookup-compendium (start end)
"Lookup `po-compendium-file' for a translation."
(interactive "r")
(let ((dev-null
(cond ((boundp 'null-device) null-device) ; since Emacs 20.3
((memq system-type '(windows-nt windows-95)) "NUL")
(t "/dev/null")))
(oldbuf (current-buffer)))
(if (null po-compendium-file)
(error "No compendium file set; check `po-compendium-file'")
;; stick msgid to lookup in " *po-lookup" and lookup the
;; compendium to find a translation proposal; add it to the msgid
;; and save it in the kill ring
(save-current-buffer
(set-buffer (get-buffer-create " *po-lookup"))
(setq buffer-read-only nil)
(erase-buffer)
(insert "msgid \"")
(insert-buffer-substring oldbuf start end)
(insert "\"\nmsgstr \"\"\n")
(call-process-region (point-min) (point-max) "msgmerge" t t t
"-C" (expand-file-name po-compendium-file)
null-device "-q" "-o" "-" "-")
;; FIXME: if nothing found exit gracefully
(po-mode)
(po-kill-ring-save-msgstr))
;; yank the found translation proposal in a subedit buffer
(po-edit-msgstr)
(if (looking-at "[#<]")
;; the subedit buffer is empty; just yank
(progn (yank)
(if (looking-at "#") (insert "\n")))
(yank)
(insert "\n#-#-#-#-# old translation variant(s) #-#-#-#-#\n")))))
> Of course, context is important, but in the absence of anything else, we
> can suggest the match - a reviewer doesn't have to use an exact match we
> suggest, but usually it's acceptable.
>
> In terms of saving time and money, sentence segmentation is fantastic
> and works for us.
Okay. As long as the sequence of the sentences is available translators
will be happy.
--
| ,__o
| _-\_<,
http://www.gnu.franken.de/ke/ | (*)/'(*)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]