File: cmail-resource.el

package info (click to toggle)
cmail 2.62-3
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 2,496 kB
  • ctags: 2,104
  • sloc: lisp: 25,492; makefile: 189; perl: 148; sh: 68
file content (117 lines) | stat: -rw-r--r-- 4,876 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
;;;
;;;  cmail-resource.el
;;;

;; $B%a%C%;!<%8$rDI2C$9$k$K$O(B:
;; 
;; (message "foobar") $B$N$h$&$KD>@\=q$$$F$O$$$1$^$;$s!#(B
;; $B$^$:!"(Bcmail-res.el $B$K(B
;;     (cmail-resource-alist$BFb$G(Bunique$B$J%7%s%\%k(B . "$B1Q8l$N%a%C%;!<%8(B")
;; $B$r2C$($^$9!#(Bcmail-res-Japanese.el $B$K(B
;;     ($B@hDx$HF1$8%7%s%\%k(B . "$BF|K\8l$N%a%C%;!<%8(B")
;; $B$r2C$($^$9!#(B
;;
;; (cmail-get-resource '$B%7%s%\%k(B) $B$G$=$NJ8;zNs$r<hF@$9$k$N$,4pK\$G$9$,!"(B
;;   cmail-message-resource
;;   cmail-message-resource1
;;   cmail-error-resource
;;   cmail-error-resource1
;;   cmail-format-resource1
;; $B$J$I$N4X?t$,MQ0U$7$F$"$j$^$9!#(B
;;
;; format $B4X?t$G$N%Q%i%a!<%?$N=gHV$,8@8l$K$h$C$F0[$J$k>l9g!"(B
;; cmail-format-resource $B$rMQ$$$^$9!#(Bformat $B4X?t$N@)8fJ8;zNs$N(B
;; % $B$N=q<0$r3HD%$7$F!"!V2?HVL\$N%Q%i%a!<%?$+!W$r=q$1$k$h$&$K(B
;; $B$7$F$"$j$^$9!#(B
;;   '%' $BHV9f(B ';' $B%?%$%W(B(s$B$H$+(Bd$B$H$+(B)
;;   $BNc(B: %1;s
;; $BHV9f$O(B0$B$+$i;O$^$j$^$9!#(B
;;   $BNc(B:
;;       (cmail-format-resource 'foo-1 (cmail-get-resource 'foo-2) 11)
;;     $B$G!"(Bfoo-1 $B$,(B "%0;s %1;d mails."$B!"(Bfoo-2 $B$,(B "Moved" $B$N>l9g!"7k2L$O(B
;;       "Moved 11 mails."
;;     foo-1 $B$,(B "%1;d$BDL$N<j;f$r(B%0;s$B$7$^$7$?(B."$B!"(Bfoo-2 $B$,(B "$B0\F0(B" $B$N>l9g!"7k2L$O(B
;;       "11$BDL$N<j;f$r0\F0$7$^$7$?!#(B"
;;     $B$H$J$j$^$9!#(B

(provide 'cmail-resource)

(defconst cmail-resource-basename "cmail-res")
(or (and cmail-i18n-message
	 (boundp 'current-language-environment)
	 (or (featurep 'xemacs)
	     (and (boundp 'emacs-major-version)
		  (boundp 'emacs-minor-version)
		  (or (>= emacs-major-version 21)
		      (and (eq emacs-major-version 20) (>= emacs-minor-version 3)))))
	 (load (concat cmail-resource-basename "-" current-language-environment) t))
    (load cmail-resource-basename))

(defun cmail-get-resource (key)
  "$B%7%s%\%k(B kEY $B$K4XO"IU$1$i$l$?%*%V%8%'%/%H$rJV$7$^$9!#(B"
  (cdr (assoc key cmail-resource-alist)))

(defun cmail-message-resource (key)
  "$B%7%s%\%k(B kEY $B$K4XO"IU$1$i$l$?%*%V%8%'%/%H$r%Q%i%a!<%?$K$7$F(B (message) $B$r8F$S$^$9!#(B"
  (message (cdr (assoc key cmail-resource-alist))))

(defun cmail-message-resource1 (key p1)
  "$B%7%s%\%k(B kEY $B$K4XO"IU$1$i$l$?%*%V%8%'%/%H$r%Q%i%a!<%?$K$7$F(B (message) $B$r8F$S$^$9!#(B"
  (message (cdr (assoc key cmail-resource-alist)) p1))

(defun cmail-error-resource (key)
  "$B%7%s%\%k(B kEY $B$K4XO"IU$1$i$l$?%*%V%8%'%/%H$r%Q%i%a!<%?$K$7$F(B (error) $B$r8F$S$^$9!#(B"
  (error (cdr (assoc key cmail-resource-alist))))

(defun cmail-error-resource1 (key p1)
  "$B%7%s%\%k(B kEY $B$K4XO"IU$1$i$l$?%*%V%8%'%/%H$r%Q%i%a!<%?$K$7$F(B (error) $B$r8F$S$^$9!#(B"
  (error (cdr (assoc key cmail-resource-alist)) p1))

(defun cmail-format-resource1 (key p1)
  "$B%7%s%\%k(B kEY $B$K4XO"IU$1$i$l$?%*%V%8%'%/%H$r%Q%i%a!<%?$K$7$F(B (message) $B$r8F$S$^$9!#(B"
  (format (cdr (assoc key cmail-resource-alist)) p1))

(defun cmail-format-resource (key &rest args)
  (let ((form "")			;format$B$KEO$9(Bformat$BJ8;zNs(B
	fargs				;format$B$KEO$9%Q%i%a!<%?(B
	(start 0)			;$B8!:w3+;O%]%$%s%H(B
	mstart				;$B%^%C%A0LCV(B
	(templ (cdr (assoc key cmail-resource-alist))))
    (while (setq mstart (string-match "%" templ start))
					;% $B$N<!$NJ8;z$,(B % $B$+(B?
      (setq mstart (1+ mstart))
      (cond ((string= "%" (substring templ mstart (1+ mstart)))
	     (setq form (concat form (substring templ start (1+ mstart)))
		   start (1+ mstart)))
					;% $B$N<!$,(B "$B?tCM(B;" $B$+(B?
	    ((eq mstart (string-match "\\([0-9]+\\);" templ mstart))
	     (setq form (concat form (substring templ start mstart))
		   start (match-end 0)
		   fargs (append fargs
				 (list (nth (string-to-int (match-string 1 templ))
					    args)))))
	    (t
	     (setq form (concat form (substring templ start mstart))
		   start mstart))))
    (setq form (concat form (substring templ start)))
    (eval (cons 'format (cons form fargs)))))

(require 'alist)
(defun cmail-add-resource (resource-alist)
  "`current-language-environment' $B$K=>$C$FBP1~$9$k8@8l$N%a%C%;!<%8$rDI2C(B
$B$7$^$9!#DI2C$9$k%a%C%;!<%8$O(B ($B<1JL;R(B (\"$B8@8l(B\" . \"$B%a%C%;!<%8(B\") () ... )
$B$N%j%9%H$G;XDj$7$^$9!#8@8l$,(B t $B$,%G%U%)%k%H$N%a%C%;!<%8$H$J$j$^$9!#(B"
  (let ((lang (or (and cmail-i18n-message
		       (boundp 'current-language-environment)
		       (or (featurep 'xemacs)
			   (and (boundp 'emacs-major-version)
				(boundp 'emacs-minor-version)
				(or (>= emacs-major-version 21)
				    (and (eq emacs-major-version 20)
					 (>= emacs-minor-version 3)))))
		       (car (assoc current-language-environment
				   (cdr resource-alist))))
		  t)))
    (set-alist 'cmail-resource-alist
	       (car resource-alist)
	       (cdr (assoc lang (cdr resource-alist))))))