wok-next diff emacs-pkg-text-translator/stuff/text-translator-vars.el @ rev 20734
nut: update (b)deps
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Tue May 29 18:57:36 2018 +0300 (2018-05-29) |
parents | |
children |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/emacs-pkg-text-translator/stuff/text-translator-vars.el Tue May 29 18:57:36 2018 +0300 1.3 @@ -0,0 +1,454 @@ 1.4 +;;; text-translator-vars.el --- Text Translator 1.5 + 1.6 +;; Copyright (C) 2007-2010 khiker 1.7 + 1.8 +;; Author: khiker <khiker.mail+elisp@gmail.com> 1.9 +;; plus <MLB33828@nifty.com> 1.10 + 1.11 +;; This file is free software; you can redistribute it and/or modify 1.12 +;; it under the terms of the GNU General Public License as published by 1.13 +;; the Free Software Foundation; either version 3, or (at your option) 1.14 +;; any later version. 1.15 + 1.16 +;; This file is distributed in the hope that it will be useful, 1.17 +;; but WITHOUT ANY WARRANTY; without even the implied warranty of 1.18 +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1.19 +;; GNU General Public License for more details. 1.20 + 1.21 +;; You should have received a copy of the GNU General Public License 1.22 +;; along with GNU Emacs; see the file COPYING. If not, write to 1.23 +;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 1.24 +;; Boston, MA 02110-1301, USA. 1.25 + 1.26 +;;; Commentary: 1.27 + 1.28 +;; Variables for text-translator 1.29 + 1.30 +;;; Code: 1.31 + 1.32 +(defconst text-translator-version "0.7.4" 1.33 + "version numbers of this version of text-translator") 1.34 + 1.35 +(defconst text-translator-buffer "*translated*" 1.36 + "Buffer name that displays translation result.") 1.37 + 1.38 +(defconst text-translator-mode-name "Translator" 1.39 + "Major mode name for displaying to mode line.") 1.40 + 1.41 +(defconst text-translator-work-buffer (concat " " text-translator-buffer) 1.42 + "Output Buffer name from translation site.") 1.43 + 1.44 +(defgroup text-translator nil 1.45 + "Text Translator" 1.46 + :tag "Text Translator" 1.47 + :group 'text-translator) 1.48 + 1.49 +(defcustom text-translator-prefix-key "\C-c" 1.50 + "*Prefix key for text-translator commands." 1.51 + :tag "Prefix Key of text-translator" 1.52 + :type '(string :size 10) 1.53 + :group 'text-translator) 1.54 + 1.55 +(defcustom text-translator-auto-window-adjust t 1.56 + "*Whether or not you adjust height of window displayed by dividing." 1.57 + :type 'boolean 1.58 + :group 'text-translator) 1.59 + 1.60 +(defcustom text-translator-window-min-height 4 1.61 + "*Specify minimum height of the translation result display buffer." 1.62 + :type 'integer 1.63 + :group 'text-translator) 1.64 + 1.65 +(defcustom text-translator-leave-string nil 1.66 + "*Whether or not you leave the character string before the translating." 1.67 + :type 'boolean 1.68 + :group 'text-translator) 1.69 + 1.70 +(defcustom text-translator-pre-string-replace-alist 1.71 + '(("+" . "+") ("–" . "-") ("•" . "・")) 1.72 + "*Rule that converts character string that wants to translate." 1.73 + :type '(repeat 1.74 + (cons :tag "Rule" 1.75 + (string :tag "Letter before the converting.") 1.76 + (string :tag "Letter after the converting."))) 1.77 + :group 'text-translator) 1.78 + 1.79 +(defcustom text-translator-post-string-replace-alist 1.80 + '(("\r" . "") ("'" . "'") (""" . "\"") 1.81 + ("&" . "&") ("<" . "<") (">" . ">") ("–" . "-") 1.82 + ("Ĉ" . "Ĉ") ("ĉ" . "ĉ") ("Ĝ" . "Ĝ") ("ĝ" . "ĝ") 1.83 + ("Ĥ" . "Ĥ") ("ĥ" . "ĥ") ("Ĵ" . "Ĵ") ("ĵ" . "ĵ") 1.84 + ("Ŝ" . "Ŝ") ("ŝ" . "ŝ") ("Ŭ" . "Ŭ") ("ŭ" . "ŭ")) 1.85 + "*Rule that converts character string after the translation." 1.86 + :type '(repeat 1.87 + (cons :tag "Rule" 1.88 + (string :tag "Letter before the converting.") 1.89 + (string :tag "Letter after the converting."))) 1.90 + :group 'text-translator) 1.91 + 1.92 +(defcustom text-translator-proxy-server 1.93 + (let ((proxy (or (getenv "HTTP_PROXY") ""))) 1.94 + (and (string-match "^\\(http://\\)?\\(.+\\):\\([0-9]+\\)" proxy) 1.95 + (match-string 2 proxy))) 1.96 + "*Proxy server used." 1.97 + :type '(choice (string :tag "specify proxy") 1.98 + (const :tag "not use proxy" nil)) 1.99 + :group 'text-translator) 1.100 + 1.101 +(defcustom text-translator-proxy-port 1.102 + (let ((proxy (or (getenv "HTTP_PROXY") ""))) 1.103 + (or (and (string-match "^\\(http://\\)?\\(.+\\):\\([0-9]+\\)" proxy) 1.104 + (string-to-number (match-string 3 proxy))) 1.105 + 8080)) 1.106 + "*Proxy port number used." 1.107 + :type 'integer 1.108 + :group 'text-translator) 1.109 + 1.110 +(defcustom text-translator-proxy-user nil 1.111 + "*Basic proxy authorization user name." 1.112 + :type '(choice (string :tag "Basic proxy authorization user name") 1.113 + (const :tag "Not use Basic proxy authorization" nil)) 1.114 + :group 'text-translator) 1.115 + 1.116 +(defcustom text-translator-proxy-password nil 1.117 + "*Basic proxy authorization password." 1.118 + :type '(choice (string :tag "Basic proxy authorization password") 1.119 + (const :tag "Not use Basic proxy authorization" nil)) 1.120 + :group 'text-translator) 1.121 + 1.122 +(defcustom text-translator-site-data-template-alist 1.123 + '(;; Google.com 1.124 + ("google.com" 1.125 + "translate.google.com" 1.126 + "/ HTTP/1.1" 1.127 + "js=n&prev=_t&hl=ja&ie=UTF-8&text=%s&file=&sl=%o&tl=%t" 1.128 + utf-8-dos 1.129 + (lambda () 1.130 + (text-translator-extract-tag-exclusion-string 1.131 + "<span id=result_box[^>]*>\\(\\(<span [^>]*>\\([^<]\\|<br>\\)*</span>\\)+\\)</span>")) 1.132 + (("en" . "ja") ("ja" . "en") 1.133 + ("en" . "es") ("es" . "en") 1.134 + ("en" . "fr") ("fr" . "en") 1.135 + ("en" . "de") ("de" . "en") 1.136 + ("en" . "it") ("it" . "en") 1.137 + ("en" . "ar") ("ar" . "en") 1.138 + ("de" . "fr") ("fr" . "de") 1.139 + ("en" . "pt") ("pt" . "en") 1.140 + ("en" . "ru") ("ru" . "en") 1.141 + ("en" . "ko") ("ko" . "en") 1.142 + ("en" . "zh-CN") ("zh-CN" . "en") 1.143 + ("en" . "zh-TW") ("zh-TW" . "en") 1.144 + ("zh-CN" . "zh-TW") ("zh-TW" . "zh-CN")) 1.145 + (("zh-TW" . "tw") ("zh-CN" . "ch"))) 1.146 + 1.147 + ;; Yahoo.com 1.148 + ("yahoo.com" 1.149 + "babelfish.yahoo.com" 1.150 + "/translate_txt HTTP/1.1" 1.151 + "ei=UTF-8&doit=done&intl=1&tt=urltext&trtext=%s&lp=%o_%t&btnTrTxt=Translate" 1.152 + utf-8 1.153 + " <div id=\"result\"><div style=\"padding:0.6em;\">\\([^<]*\\)</div>" 1.154 + (("en" . "ja") ("ja" . "en") 1.155 + ("en" . "nl") ("nl" . "en") 1.156 + ("en" . "fr") ("fr" . "en") 1.157 + ("en" . "de") ("de" . "en") 1.158 + ("en" . "el") ("el" . "en") 1.159 + ("en" . "it") ("it" . "en") 1.160 + ("en" . "ko") ("ko" . "en") 1.161 + ("en" . "pt") ("pt" . "en") 1.162 + ("en" . "ru") ("ru" . "en") 1.163 + ("en" . "es") ("es" . "en") 1.164 + ("nl" . "fr") 1.165 + ("fr" . "de") 1.166 + ("fr" . "el") ("el" . "fr") 1.167 + ("fr" . "it") ("it" . "fr") 1.168 + ("fr" . "pt") ("pt" . "fr") 1.169 + ("fr" . "es") ("es" . "fr") 1.170 + ("en" . "zh") ("zh" . "en") 1.171 + ("en" . "zt") ("zt" . "en")) 1.172 + (("zh" . "ch") ("zt" . "tw"))) 1.173 + 1.174 + ;; Freetranslation.com 1.175 + ("freetranslation.com" 1.176 + "ets.freetranslation.com" 1.177 + "/ HTTP/1.1" 1.178 + "sequence=core&mode=html&charset=UTF-8&template=results_en-us.htm&language=%o/%t&srctext=%s" 1.179 + utf-8 1.180 + "<textarea name=\"dsttext\" cols=\"40\" rows=\"6\" style=\"width:99%;height:142px;\" id=\"resultsBox\">\\([^<]*\\)</textarea>" 1.181 + (("English" . "Spanish") ("Spanish" . "English") 1.182 + ("English" . "French") ("French" . "English") 1.183 + ("English" . "German") ("German" . "English") 1.184 + ("English" . "Italian") ("Italian" . "English") 1.185 + ("English" . "Dutch") ("Dutch" . "English") 1.186 + ("English" . "Portuguese") ("Portuguese" . "English") 1.187 + ("English" . "Norwegian")) 1.188 + (("English" . "en") ("Spanish" . "es") 1.189 + ("French" . "fr") ("German" . "de") 1.190 + ("Italian" . "it") ("Dutch" . "nl") 1.191 + ("Portuguese" . "pt") ("Norwegian" . "no"))) 1.192 + ("freetranslation.com" 1.193 + "ets6.freetranslation.com" 1.194 + "/ HTTP/1.1" 1.195 + "sequence=core&mode=html&charset=UTF-8&template=results_en-us.htm&language=%o/%t&srctext=%s" 1.196 + utf-8 1.197 + "<textarea name=\"dsttext\" cols=\"40\" rows=\"6\" style=\"width:99%;height:142px;\" id=\"resultsBox\">\\([^<]*\\)</textarea>" 1.198 + (("English" . "Russian") ("Russian" . "English") 1.199 + ("English" . "SimplifiedChinese") 1.200 + ("English" . "TraditionalChinese")) 1.201 + (("English" . "en") ("Russian" . "ru") 1.202 + ("SimplifiedChinese" . "ch") ("TraditionalChinese" . "tw"))) 1.203 + ("freetranslation.com" 1.204 + "tets9.freetranslation.com" 1.205 + "/ HTTP/1.1" 1.206 + "sequence=core&mode=html&charset=UTF-8&template=results_en-us.htm&language=%o/%t&srctext=%s" 1.207 + utf-8 1.208 + "<textarea name=\"dsttext\" cols=\"40\" rows=\"6\" style=\"width:99%;height:142px;\" id=\"resultsBox\">\\([^<]*\\)</textarea>" 1.209 + (("English" . "Japanese") ("Japanese" . "English")) 1.210 + (("English" . "en") ("Japanese" . "ja"))) 1.211 + 1.212 + ;; Livedoor.com 1.213 + ("livedoor.com" 1.214 + "translate.livedoor.com" 1.215 + "/ HTTP/1.1" 1.216 + "clear_flg=1&src_text=%s&trns_type=%o,%t&sumit=翻訳" 1.217 + utf-8 1.218 + "<textarea name=\"tar_text\" cols=\"40\" rows=\"10\" wrap=\"physical\">\\([^<]*\\)</textarea>" 1.219 + (("1" . "2") ("2" . "1") 1.220 + ("2" . "9") ("9" . "2") 1.221 + ("2" . "6") ("6" . "2")) 1.222 + (("1" . "en") ("2" . "ja") 1.223 + ("6" . "ch") ("9" . "ko"))) 1.224 + 1.225 + ;; Fresheye.com 1.226 + ("fresheye.com" 1.227 + "mt.fresheye.com" 1.228 + "/ft_result.cgi HTTP/1.1" 1.229 + "gen_text=%s&e=%o%t" 1.230 + utf-8 1.231 + "<TEXTAREA class=\"out-form\" name=\"gen_text2\" cols=\"25\" rows=\"15\">\\([^<]*\\)</TEXTAREA>" 1.232 + (("E" . "J") ("J" . "E")) 1.233 + (("E" . "en") ("J" . "ja"))) 1.234 + ("fresheye.com" 1.235 + "mt.fresheye.com" 1.236 + "/ft_cjresult.cgi HTTP/1.1" 1.237 + "gen_text=%s&charset=gb2312&cjjc=%o%t" 1.238 + utf-8 1.239 + "<TEXTAREA class=\"out-form\" name=\"gen_text2\" cols=\"25\" rows=\"15\">\\([^<]*\\)</TEXTAREA>" 1.240 + (("c" . "j") ("j" . "c") ("e" . "c")) 1.241 + (("c" . "ch") ("j" . "ja") ("e" . "en"))) 1.242 + ("fresheye.com" 1.243 + "mt.fresheye.com" 1.244 + "/ft_cjresult.cgi HTTP/1.1" 1.245 + "gen_text=%s&charset=big5&cjjc=%o%t" 1.246 + utf-8 1.247 + "<TEXTAREA class=\"out-form\" name=\"gen_text2\" cols=\"25\" rows=\"15\">\\([^<]*\\)</TEXTAREA>" 1.248 + (("c" . "j") ("j" . "c") ("e" . "c")) 1.249 + (("c" . "tw") ("j" . "ja") ("e" . "en"))) 1.250 + 1.251 + ;; Excite.co.jp 1.252 + ("excite.co.jp" 1.253 + "www.excite.co.jp" 1.254 + "/world/english/ HTTP/1.1" 1.255 + "wb_lp=%o%t&before=%s" 1.256 + utf-8 1.257 + "<textarea name=\"after\" id=\"after\">\\([^<]*\\)</textarea>" 1.258 + (("EN" . "JA") ("JA" . "EN")) 1.259 + (("EN" . "en") ("JA" . "ja"))) 1.260 + ("excite.co.jp" 1.261 + "www.excite.co.jp" 1.262 + "/world/chinese/ HTTP/1.1" 1.263 + "wb_lp=%o%t&before=%s" 1.264 + utf-8 1.265 + "<textarea name=\"after\" id=\"after\">\\([^<]*\\)</textarea>" 1.266 + (("JA" . "CH") ("CH" . "JA")) 1.267 + (("JA" . "ja") ("CH" . "ch"))) 1.268 + ("excite.co.jp" 1.269 + "www.excite.co.jp" 1.270 + "/world/chinese/ HTTP/1.1" 1.271 + "wb_lp=%o%t&big5=yes&before=%s" 1.272 + utf-8 1.273 + "<textarea name=\"after\" id=\"after\">\\([^<]*\\)</textarea>" 1.274 + (("JA" . "CH") ("CH" . "JA")) 1.275 + (("JA" . "ja") ("CH" . "tw"))) 1.276 + ("excite.co.jp" 1.277 + "www.excite.co.jp" 1.278 + "/world/korean/ HTTP/1.1" 1.279 + "wb_lp=%o%t&before=%s" 1.280 + utf-8 1.281 + "<textarea name=\"after\" id=\"after\">\\([^<]*\\)</textarea>" 1.282 + (("JA" . "KO") ("KO" . "JA")) 1.283 + (("JA" . "ja") ("KO" . "ko"))) 1.284 + 1.285 + ;; Yahoo.co.jp 1.286 + ("yahoo.co.jp" 1.287 + "honyaku.yahoo.co.jp" 1.288 + "/transtext HTTP/1.1" 1.289 + "both=TH&text=%s&clearFlg=1&eid=CR-%o%t" 1.290 + utf-8 1.291 + "<textarea rows=12 cols=30 name=\"trn_text\" id=\"trn_textText\" class=\"smaller\">\\([^<]*\\)</textarea>" 1.292 + (("E" . "J") ("J" . "E") 1.293 + ("C" . "J") ("J" . "C-CN") 1.294 + ("K" . "J") ("J" . "K")) 1.295 + (("E" . "en") ("J" . "ja") 1.296 + ("C" . "ch") ("C-CN" . "ch") 1.297 + ("K" . "ko"))) 1.298 + 1.299 + ;; Ocn.ne.jp 1.300 + ("ocn.ne.jp" 1.301 + "cgi01.ocn.ne.jp" 1.302 + "/cgi-bin/translation/index.cgi HTTP/1.1" 1.303 + "langpair=%o%t&sourceText=%s" 1.304 + utf-8 1.305 + "<TEXTAREA NAME=\"responseText\" ROWS=\"5\" COLS=\"41\" WRAP=\"virtual\" CLASS=\"in2\">\\([^<]*\\)</TEXTAREA>" 1.306 + (("en" . "ja") ("ja" . "en") 1.307 + ("ja" . "ko") ("ko" . "ja") 1.308 + ("ja" . "zh") ("zh" . "ja")) 1.309 + (("zh" . "ch")))) 1.310 + "The alist where setting of the site which is used for text translation is 1.311 +described. To update site-data, evalute `text-translator-site-data-init`." 1.312 + :type '(repeat 1.313 + (list :tag "Web Site" 1.314 + (string :tag "Web site name and translation type") 1.315 + (string :tag "Host name") 1.316 + (string :tag "POST path and HTTP version") 1.317 + (string :tag "POST contents") 1.318 + (symbol :tag "Character code") 1.319 + (choice (string :tag "regexp") (symbol :tag "function")) 1.320 + (list :tag (concat "The correspondence of translation-able " 1.321 + "name (used by translation sites)")) 1.322 + (list :tag (concat "The correspondence of name that used by " 1.323 + "text-translator and name that used by " 1.324 + "translation sites")))) 1.325 + :group 'text-translator) 1.326 + 1.327 +(defcustom text-translator-site-data-minimum-alist 1.328 + '(;; lou5.jp (Japanese, Lou) 1.329 + ("lou5.jp_*normal" 1.330 + "lou5.jp" 1.331 + "/ HTTP/1.1" 1.332 + "v=1&text=%s" 1.333 + utf-8 1.334 + (lambda () 1.335 + (text-translator-extract-tag-exclusion-string 1.336 + "<p class=\"large align-left box\">\\(\\(.\\|\n\\)*?\\)</p>" 1.337 + t))) 1.338 + ;; lou5.jp (Japanese, Lou Blog) 1.339 + ("lou5.jp_*blog" 1.340 + "lou5.jp" 1.341 + "/ HTTP/1.1" 1.342 + "v=2&text=%s" 1.343 + utf-8 1.344 + "<p class=\"large align-left box\">\\(\\(.\\|\n\\)*?\\)</p>") 1.345 + 1.346 + ;; tatoeba.org (Furigana, romaji) 1.347 + ("tatoeba.org_furigana" 1.348 + "tatoeba.org" 1.349 + "/eng/tools/romaji_furigana?query=%s&type=furigana HTTP/1.1" 1.350 + nil 1.351 + utf-8 1.352 + "class=\"furigana\">\\(\\(.\\|\n\\)*?\\)</div><form id=\"ToolRomajiFuriganaForm") 1.353 + ("tatoeba.org_romaji" 1.354 + "tatoeba.org" 1.355 + "/eng/tools/romaji_furigana?query=%s&type=romaji HTTP/1.1" 1.356 + nil 1.357 + utf-8 1.358 + "class=\"furigana\">\\(\\(.\\|\n\\)*?\\)</div><form id=\"ToolRomajiFuriganaForm") 1.359 + 1.360 + ;; traduku.net (Esperanto, English) 1.361 + ("traduku.net_eoen" 1.362 + "traduku.net" 1.363 + "/cgi-bin/traduku HTTP/1.0" 1.364 + "eo_en&t=%s" 1.365 + utf-8 1.366 + " id=\"rezulto\">\\(\\(.\\|\n\\)*?\\)</div>") 1.367 + ("traduku.net_eneo" 1.368 + "traduku.net" 1.369 + "/cgi-bin/traduku HTTP/1.0" 1.370 + "en_eo_trukilo&t=%s" 1.371 + utf-8 1.372 + " id=\"rezulto\">\\(\\(.\\|\n\\)*?\\)</div>")) 1.373 + 1.374 + "*The alist where setting of the site which is used for text translation is 1.375 +described. To update site-data, evalute `text-translator-site-data-init`." 1.376 + :type '(repeat 1.377 + (list :tag "Web Site" 1.378 + (string :tag "Web site name and translation type") 1.379 + (string :tag "Host name") 1.380 + (string :tag "POST path and HTTP version") 1.381 + (string :tag "POST contents") 1.382 + (symbol :tag "Character code") 1.383 + (choice (string :tag "regexp") (symbol :tag "function")))) 1.384 + :group 'text-translator) 1.385 + 1.386 +;; text-translator-site-data-template-alist 1.387 +;; + text-translator-site-data-minimum-alist 1.388 +;; = text-translator-site-data-alist 1.389 +(defvar text-translator-site-data-alist nil 1.390 + "The alist where setting of the site which is used for text translation is 1.391 +described.") 1.392 + 1.393 +(defcustom text-translator-default-engine "google.com_enja" 1.394 + "*Translation engine used by default." 1.395 + :type (cons 'radio 1.396 + (mapcar 1.397 + (lambda (x) 1.398 + (list 'const (car x))) 1.399 + text-translator-site-data-alist)) 1.400 + :group 'text-translator) 1.401 + 1.402 +(defcustom text-translator-user-agent 1.403 +;; "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4" 1.404 + "Mozilla/5.0 (Windows; U; Windows NT 5.0; ja; rv:1.9) Gecko/2008052906 Firefox/3.0" 1.405 + "*text-translator's User Agent. Default is Firefox." 1.406 + :type 'string 1.407 + :group 'text-translator) 1.408 + 1.409 +(defcustom text-translator-mode-hook nil 1.410 + "*Hook run at the end of function `text-translator-mode'." 1.411 + :type 'hook 1.412 + :group 'text-translator) 1.413 + 1.414 +(defcustom text-translator-auto-selection-func nil 1.415 + "*Value is function that select translation engine automatic. 1.416 +this value is function for `text-translator-translate-by-auto-selection'." 1.417 + :type 'symbol 1.418 + :group 'text-translator) 1.419 + 1.420 +(defcustom text-translator-display-popup nil 1.421 + "*Non-nil means translated message is displayed by using popup-tip. 1.422 +To use this option, you have to require popup.el. 1.423 +popup.el URL: http://github.com/m2ym/auto-complete" 1.424 + :type 'symbol 1.425 + :group 'text-translator) 1.426 + 1.427 +(defcustom text-translator-do-fill-region nil 1.428 + "*Default is nil. if value is non-nil, it deletes 1.429 +linefeed\\(and CR\\) from pre translation string(\"\\n\" -> \" \", 1.430 +\"\r\" -> \"\"). and processing to straighten faces with 1.431 +fill-paragraph after the translation. it is countermeasure 1.432 +against the translation engines that processes per line." 1.433 + :type 'symbol 1.434 + :group 'text-translator) 1.435 + 1.436 +(defcustom text-translator-space-division-languages 1.437 + '("en" "es" "fr" "de" "it" "pt" "ru" "nl" "el" "no") 1.438 + "*List of language that word is delimited by blank." 1.439 + :type '(repeat (string :tag "language(2char)")) 1.440 + :group 'text-translator) 1.441 + 1.442 +(defvar text-translator-last-string "" 1.443 + "The last time, character string which was thrown to the translation site.") 1.444 + 1.445 +(defvar text-translator-engine-history nil 1.446 + "The history of translation engine which you used.") 1.447 + 1.448 +(defvar text-translator-search-regexp-or-func nil) 1.449 + 1.450 +(defvar text-translator-sitedata-hash nil) 1.451 + 1.452 +(provide 'text-translator-vars) 1.453 +;;; text-translator-vars.el ends here 1.454 + 1.455 +;; Local Variables: 1.456 +;; Coding: utf-8 1.457 +;; End: