可以通过系统变量LOCATE来判断你的系统属于什么语言。英文系统为enu。简体中文为chs,繁体中文为cht。
建议把所有的文字提示内容写在程序前面用变量定义(最好是用LIST列表的形式写到一个变量中),每一种语言写一个列表变量,语言判断后直接取相应语言的列表。在程序中需要显示文字的地方则直接显示列表中的某一位置的内容就行。这有得于程序的简单化,修改及添加其它语言的资源也简单。
(defun C:OC (/ DI LANGLST LAY LST O PO)
(setq LANGLST '(("ENU"
"\nCurrent offset dist= "
"\nEnter Offset Dist:"
"\nSide to offset"
)
("CHT"
"\n目前偏移距离= "
"\n输入偏移距离:"
"\n选取偏移侧"
)
)
)
(setq LST (cdr (assoc (getvar "LOCALE") LANGLST)))
(vl-cmdf "_.undo" "_group")
(mapcar 'princ
(list (nth 0 LST) (getvar "OFFSETDIST") " ")
)
(setq DI (getstring (nth 1 LST)))
(setq O (ssget))
(setq PO (getpoint (nth 2 LST)))
(setq LAY (getvar "CLAYER"))
(if (/= DI NIL)
(command "OFFSET" DI O PO "")
(command "CHPROP" "L" "" "LA" LAY "LT" "bylayer" "C" "bylayer" "")
)
(if (= DI NIL)
(command "OFFSET" "" O PO "")
(command "CHPROP" "L" "" "LA" LAY "LT" "bylayer" "C" "bylayer" "")
)
(vl-cmdf "_.undo" "_end")
(princ)
)