多语言版本的 lisp 程序, i18n
本帖最后由 vitalgg 于 2021-3-6 00:58 编辑繁体的CAD 能正确显示简体版的 lisp 程序吗?
我写了一个 lisp 管理程序。可以自动从网络下载其它的 lisp 程序。
现在加了入多语言功能,可以根据CAD的语言环境,生成相应语言版本的菜单。
但是我只有简体版的CAD.繁体的CAD 能正确显示简体版的 lisp 程序吗?
(defun @:load-locale (pkg-name / fp opt%)
"加载包的本地化语言"
(if (null (findfile (strcat @:*prefix* "locale\\" pkg-name "-" (strcase (getvar "locale") T) ".lang")))
(progn
(@:down-file (strcat "locale/" pkg-name "-" (strcase (getvar "locale") T) ".lang"))
(sleep 1)
))
(if (findfile (strcat @:*prefix* "locale\\" pkg-name "-" (strcase (getvar "locale") T) ".lang"))
(progn
(setq fp (open (strcat @:*prefix* "locale\\" pkg-name "-" (strcase(getvar "locale") T) ".lang") "r"))
(while (setq opt% (read-line fp))
(if (/= opt% "")
(setq @:*i18n* (append @:*i18n* (list (read opt%))))))
(close fp)))
)
(defun _ (str / ret)
"翻译标记"
(setq ret (cdr (assoc str @:*i18n*)))
(if (= 'list (type-of ret))
(setq ret (car ret)))
(if (= 'str (type-of ret))
(if (> (strlen ret) 0)
ret
str)
str))
在 locale 目录下有相程序的语言翻译文件。 有兴趣的可以到 atlisp.cn 下载试用。
(print (_"lang text"))
chs.lang
("lang text" . "简体中文")
cht.lang
("lang text" . "繁体中文")
学习了,谢谢楼主。一直在整理代码
页:
[1]