Привет! > имеются ли у нас какие-нибудь ресурсы по > стадартизации переводов интерфейсов? Да, существует глоссарий Sun, который правда на русский не переведён. У команды КДЕ по идее были какие-то файлы, и у www.gnu.org.ru. > Валентин, Вы смотрели программу gtranslator? Посмотрите на её ru.po =) > она вроде бы позволяет создавать библиотеку > стандартных переводов, называемую UMTF/learn buffers. > с их помощью перевод мог бы несколько упроститься(?). Угу "translation memory" это называется. Позволяет автоматически перевести все неуникальные строки типа "File", "Open" и т.п. > есть ли какие-нибудь аналогичные программы? Есть po-toys имени Karl Eichwalder. Ниже кусок из переписки на эту тему в списке gnome-i18n. Валек >> > Comment on fuzzy status: In KBabel there is a DIFF mode to find out >> > changes made in a message. It compares the current message and one in the >> > translation memory. Maybe GTranslator should incorporate such a >> > function? >> >> It would certainly help those who are using KBabel or GTranslator. But >> it won't help those who are editing po-files directly. >> >> And this will also only help if you have the old translation in the >> translation memory. > > I'll try to provide a similar feature for Emacs/po-mode.el (using > ediff). Or is such a patch already available? Here's a way to query a compendium file; set `po-lookup-compendium' to the file name that holds your translations: (setq po-compendium-file "~/Projects/trans/compendium-LL.po") I'm interested to know whether it works for encodings besides Latin-1. When the PO file you wish to edit already contains a translation this translation will put into the edit buffer, too, and marked accordingly. I've prepared another function to edit those translation variants using ediff. I can send or post a pre-release po-mode.el on request. Here's the code: (define-key po-mode-map "l" 'po-lookup-compendium) (defvar po-compendium-file nil "*Set to FILENAME of the compendium file.") (defun po-lookup-compendium () "Lookup `po-compendium-file' for a translation." (interactive) (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)) start end) (if (null po-compendium-file) (error "No compendium file set; check `po-compendium-file'") (po-find-span-of-entry) (setq start po-start-of-entry end po-start-of-msgstr) (save-current-buffer (set-buffer (get-buffer-create " *po-lookup")) (setq buffer-read-only nil) (erase-buffer) (insert-buffer-substring oldbuf start end) (insert "msgstr \"\"\n") (call-process-region (point-min) (point-max) "msgmerge" t t t "-C" (expand-file-name po-compendium-file) null-device "-q" "-o" "-" "-") (po-mode) (po-kill-ring-save-msgstr)) (po-edit-msgstr) (if (looking-at "[#<]") ;; edit buffer is empty; just yank (progn (yank) (if (looking-at "#") (insert "\n"))) (save-excursion (insert "\n#-#-#-#-# old translation #-#-#-#-#\n")) (yank))))) --