Browser-to-Racket

Update the browser collection to use Racket lang instead of mzscheme.
This commit is contained in:
Patrick Mahoney 2013-02-23 00:47:18 -05:00 committed by Robby Findler
parent 9c4fcd4623
commit 2f2bbd09cc
30 changed files with 846 additions and 843 deletions

View File

@ -1,5 +1,5 @@
(module browser-sig mzscheme
(require mzlib/unit
#lang racket
(require racket/unit
"private/sig.rkt")
(provide browser^)
@ -7,4 +7,4 @@
(define-signature browser^
((open hyper^)
(open html-export^)
(open bullet-export^))))
(open bullet-export^)))

View File

@ -1,15 +1,16 @@
(module browser-unit mzscheme
(require mzlib/unit
#lang racket/base
(require racket/unit
mred/mred-sig
setup/plt-installer-sig
net/tcp-sig
net/url-sig
net/url-unit
"browser-sig.rkt"
"private/sig.rkt"
"private/bullet.rkt"
"private/html.rkt"
"private/hyper.rkt")
"private/hyper.rkt"
"private/sig.rkt")
(provide browser@)
@ -31,8 +32,4 @@
pre-browser@
setup:plt-installer^
mred^
url^)))
url^))

View File

@ -1,6 +1,6 @@
(module browser mzscheme
(require mzlib/unit
mred
#lang racket
(require racket/unit
racket/gui
mred/mred-sig
setup/plt-installer-sig
setup/plt-installer
@ -12,4 +12,4 @@
(provide-signature-elements browser^)
(define-values/invoke-unit/infer browser@))
(define-values/invoke-unit/infer browser@)

View File

@ -36,7 +36,7 @@ launching an external browser (such as Firefox).
@declare-exporting[browser/browser browser]
The browser supports basic HTML commands, plus special Racket hyperlinks
of the form @litchar{<A MZSCHEME=sexpr>...</A>}. When the user clicks
of the form @litchar{<A RACKET=sexpr>...</A>}. When the user clicks
on such a link, the string @racket[sexpr] is parsed as a Racket program
and evaluated. Since @racket[sexpr] is likely to contain Racket
strings, and since escape characters are difficult for people to read, a
@ -44,7 +44,7 @@ strings, and since escape characters are difficult for people to read, a
character before it is parsed. Thus,
@verbatim[#:indent 2]{
<A MZSCHEME="|This goes nowhere.|">Nowhere</A>
<A RACKET="|This goes nowhere.|">Nowhere</A>
}
creates a ``Nowhere'' hyperlink, which executes the Racket program
@ -59,15 +59,15 @@ clicks on ``Nowhere,'' the result is a new page that says ``This goes
nowhere.''
The browser also treats comment forms containing
@litchar{MZSCHEME=sexpr} specially. Whereas the
@litchar{<A MZSCHEME=sexpr>...</A>} form executes the expression when
the user clicks, the @litchar{MZSCHEME} expression in a comment is
@litchar{RACKET=sexpr} specially. Whereas the
@litchar{<A RACKET=sexpr>...</A>} form executes the expression when
the user clicks, the @litchar{RACKET} expression in a comment is
executed immediately during HTML rendering. If the result is a string,
the comment is replaced in the input HTML stream with the content of the
string. Thus,
@verbatim[#:indent 2]{
<!-- MZSCHEME="(format |<B>Here</B>: ~a| (current-directory))" -->
<!-- RACKET="(format |<B>Here</B>: ~a| (current-directory))" -->
}
inserts the path of the current working directory into the containing
@ -77,10 +77,10 @@ return values are ignored.
If the html file is being accessed as a @litchar{file:} url, the
@racket[current-load-relative-directory] parameter is set to the
directory during the evaluation of the mzscheme code (in both
directory during the evaluation of the Racket code (in both
examples). The Racket code is executed through @racket[eval].
The @litchar{MZSCHEME} forms are disabled unless the web page is a
The @litchar{RACKET} forms are disabled unless the web page is a
@litchar{file:} url that points into the @racket[doc] collection.
@defproc[(open-url [url (or/c url? string? input-port?)]) (is-a?/c hyper-frame%)]{
@ -94,7 +94,7 @@ The @litchar{MZSCHEME} forms are disabled unless the web page is a
}
@defboolparam[html-eval-ok ok?]{
A parameter that determines whether @litchar{MZSCHEME=} tags are
A parameter that determines whether @litchar{RACKET=} tags are
evaluated.
}
@ -145,7 +145,7 @@ The @litchar{MZSCHEME} forms are disabled unless the web page is a
@definterface[hyper-text<%> ()]{
@defmethod[(url-allows-evalling? [url (or/c port? url?)]) boolean?]{
Determines if @litchar{MZSCHEME} annotations are actually evaluated,
Determines if @litchar{RACKET} annotations are actually evaluated,
for a given url.
}
}
@ -244,8 +244,8 @@ The @litchar{MZSCHEME} forms are disabled unless the web page is a
}
@defmethod[(eval-racket-string [str string?]) any]{
Called to handle the @litchar{<A MZSCHEME="expr">...</A>} tag and
@litchar{<! MZSCHEME="expr">} comments (see above). Evaluates the
Called to handle the @litchar{<A RACKET="expr">...</A>} tag and
@litchar{<! RACKET="expr">} comments (see above). Evaluates the
string; if the result is a string, it is opened as an HTML page.
}
@ -559,11 +559,11 @@ The @litchar{MZSCHEME} forms are disabled unless the web page is a
@defproc[(render-html-to-text [in input-port?]
[dest (is-a? html-text<%>)]
[load-img? any/c]
[eval-mz? any/c])
[eval-rkt? any/c])
void?]{
Reads HTML from @racket[in] and renders it to @racket[dest]. If
@racket[load-img?] is @racket[#f], then images are rendered as Xed-out
boxes. If @racket[eval-mz?] is @racket[#f], then @litchar{MZSCHEME}
boxes. If @racket[eval-rkt?] is @racket[#f], then @litchar{RACKET}
hyperlink expressions and comments are not evaluated.
Uses the style named @racket["Html Standard"] in the editor's

View File

@ -1,3 +1,3 @@
(module bullet-snip mzscheme
#lang racket
(require "private/bullet.rkt")
(provide (rename bullet-snip-class snip-class)))
(provide (rename-out (bullet-snip-class snip-class)))

View File

@ -1,6 +1,6 @@
#lang racket/base
(require string-constants
mred
racket/gui
racket/class
racket/file
racket/list

View File

@ -1,14 +1,13 @@
(module htmltext mzscheme
(require mzlib/unit
mzlib/class
#lang racket
(require racket/unit
racket/class
"browser-sig.rkt"
"private/sig.rkt"
"private/html.rkt"
"private/bullet.rkt"
net/url
net/url-sig
mred
racket/gui
mred/mred-unit
mred/mred-sig
browser/external)
@ -28,7 +27,7 @@
add-link
add-tag
make-link-style
add-scheme-callback
add-racket-callback
add-thunk-callback
post-url))
@ -47,7 +46,7 @@
(define/public (add-tag label pos) (void))
(define/public (make-link-style pos endpos)
(change-style url-delta pos endpos))
(define/public (add-scheme-callback pos endpos scheme) (void))
(define/public (add-racket-callback pos endpos racket) (void))
(define/public (add-thunk-callback pos endpos thunk)
(set-clickback pos endpos (lambda (e start-pos eou-pos)
(thunk))))
@ -73,5 +72,5 @@
(provide html-text<%>
html-text-mixin
render-html-to-text))
render-html-to-text)

View File

@ -1,6 +1,5 @@
#lang setup/infotab
(define tools (list (list "tool.rkt")))
(define tool-names (list "Browser"))
(define drracket-tools (list (list "tool.rkt")))
(define drracket-tool-names (list "Browser"))
(define scribblings '(("browser.scrbl" () (gui-library))))

View File

@ -1,3 +1,3 @@
#lang scheme/base
#lang racket/base
(require "browser.rkt")
(provide (all-from-out "browser.rkt"))

View File

@ -1,4 +1,4 @@
#lang scheme/unit
#lang racket/unit
(require "sig.rkt")
@ -12,9 +12,9 @@
(export (rename relative-btree^
(create-btree make-btree)))
(define-struct btree (root) #:mutable)
(struct btree (root) #:mutable)
(define-struct node (pos data parent left right color) #:mutable)
(struct node (pos data parent left right color) #:mutable)
(define (adjust-offsets n new-child)
(when new-child
@ -66,7 +66,7 @@
(define (insert before? n btree pos data)
(let ([new (make-node pos data #f #f #f 'black)])
(let ([new (node pos data #f #f #f 'black)])
(if (not (btree-root btree))
(set-btree-root! btree new)
@ -166,7 +166,7 @@
(loop (node-right n) so-far so-far-pos npos)]))))))
(define (create-btree)
(make-btree #f))
(btree #f))
(define (btree-get btree pos)
(let-values ([(n npos) (find-following-node btree pos)])

View File

@ -1,13 +1,13 @@
(module bullet mzscheme
(require mred
mzlib/class)
#lang racket
(require racket/gui
racket/class)
(provide bullet-snip%
get-bullet-width
bullet-size
bullet-snip-class)
(define snip-class-name "(lib \"bullet-snip.ss\" \"browser\")")
(define snip-class-name "(lib \"bullet-snip.rkt\" \"browser\")")
(define bullet-size
(make-parameter
@ -90,5 +90,5 @@
(super-new)
(set-classname snip-class-name))))
(send (get-the-snip-class-list) add bullet-snip-class))
(send (get-the-snip-class-list) add bullet-snip-class)

View File

@ -1,8 +1,8 @@
(module entity-names mzscheme
#lang racket
(provide entity-name->integer)
(define table
#cs#hasheq((nbsp . 160)
#hasheq((nbsp . 160)
(iexcl . 161)
(cent . 162)
(pound . 163)
@ -256,6 +256,6 @@
(euro . 8364)))
(define (entity-name->integer s)
(hash-table-get table s (lambda () #f))))
(hash-ref table s (lambda () #f)))

View File

@ -1,13 +1,13 @@
#lang scheme/unit
#lang racket/unit
(require "sig.rkt"
mred/mred-sig
scheme/file
mzlib/port
racket/file
racket/port
net/url-sig
(only-in html read-html-as-xml read-html-comments use-html-spec)
(except-in xml read-comments)
mzlib/class
racket/class
"bullet.rkt"
"option-snip.rkt"
"entity-names.rkt")
@ -140,24 +140,24 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; Hardwired Scheme colorization; should come from a .css file
;; Hardwired Racket colorization; should come from a .css file
;;
(define (make-scheme-color-delta col)
(define (make-racket-color-delta col)
(let ([d (make-object style-delta%)])
(send d set-delta-foreground col)
d))
(define scheme-code-delta (make-scheme-color-delta "brown"))
(define scheme-code-delta/keyword
(let ([d (make-scheme-color-delta (make-object color% #x99 0 0))])
(define racket-code-delta (make-racket-color-delta "brown"))
(define racket-code-delta/keyword
(let ([d (make-racket-color-delta (make-object color% #x99 0 0))])
(send d set-weight-on 'bold)
d))
(define scheme-code-delta/variable (make-scheme-color-delta "navy"))
(define scheme-code-delta/global (make-scheme-color-delta "purple"))
(define scheme-code-delta/selfeval (make-scheme-color-delta "forest green"))
(define scheme-code-delta/comment (make-scheme-color-delta "cornflower blue"))
(define navigation-delta (let ([d (make-scheme-color-delta "red")])
(define racket-code-delta/variable (make-racket-color-delta "navy"))
(define racket-code-delta/global (make-racket-color-delta "purple"))
(define racket-code-delta/selfeval (make-racket-color-delta "forest green"))
(define racket-code-delta/comment (make-racket-color-delta "cornflower blue"))
(define navigation-delta (let ([d (make-racket-color-delta "red")])
(send d set-style-on 'italic)
d))
@ -166,13 +166,13 @@
(define (lookup-class-delta class)
(let ([class-path (cons class (current-style-class))])
(cond
[(sub-path? class-path '("scheme")) scheme-code-delta]
[(sub-path? class-path '("keyword" "scheme")) scheme-code-delta/keyword]
[(sub-path? class-path '("variable" "scheme")) scheme-code-delta/variable]
[(sub-path? class-path '("global" "scheme")) scheme-code-delta/global]
[(or (sub-path? class-path '("selfeval" "scheme"))
(sub-path? class-path '("schemeresponse"))) scheme-code-delta/selfeval]
[(sub-path? class-path '("comment" "scheme")) scheme-code-delta/comment]
[(sub-path? class-path '("racket")) racket-code-delta]
[(sub-path? class-path '("keyword" "racket")) racket-code-delta/keyword]
[(sub-path? class-path '("variable" "racket")) racket-code-delta/variable]
[(sub-path? class-path '("global" "racket")) racket-code-delta/global]
[(or (sub-path? class-path '("selfeval" "racket"))
(sub-path? class-path '("racketresponse"))) racket-code-delta/selfeval]
[(sub-path? class-path '("comment" "racket")) racket-code-delta/comment]
[(sub-path? class-path '("navigation")) navigation-delta]
[else #f])))
@ -209,7 +209,7 @@
(define (get-bitmap-from-url url)
(if (html-img-ok)
(let ([tmp-filename (make-temporary-file "mredimg~a")])
(let ([tmp-filename (make-temporary-file "rktguiimg~a")])
(load-status #t "image" url)
(call-with-output-file* tmp-filename
(lambda (op)
@ -331,7 +331,7 @@
;; parse-coords : string -> (listof number)
;; separates out a bunch of comma separated numbers in a string
;; into a list of scheme numbers
;; into a list of racket numbers
(define (parse-coords str)
(let loop ([str str])
(cond
@ -369,13 +369,13 @@
(let ([a (assq name (cadr e))])
(and a (cadr a))))
(define get-mzscheme-arg
(let ([get-mz (make-get-field "mzscheme")])
(define get-racket-arg
(let ([get-rkt (make-get-field "racket")])
(lambda (str)
(let ([v (get-mz str)])
(and v (filter-mzscheme v))))))
(let ([v (get-rkt str)])
(and v (filter-racket v))))))
(define filter-mzscheme
(define filter-racket
(lambda (v)
(regexp-replace* "[|]" v "\"")))
@ -475,12 +475,12 @@
[(symbol? c) (values c #t)]
[(number? c) (values c #t)]
[(comment? c)
(let ([code (get-mzscheme-arg (comment-text c))])
(let ([code (get-racket-arg (comment-text c))])
(if code
(let ([s (with-handlers ([exn:fail?
(lambda (exn)
(format
"<font color=\"red\">Error during &lt;!-- MZSCHEME=... --&gt;: <i>~a</i></font>"
"<font color=\"red\">Error during &lt;!-- RACKET=... --&gt;: <i>~a</i></font>"
(if (exn? exn)
(exn-message exn)
(format "~s" exn))))])
@ -646,9 +646,9 @@
(unescape str)))]
[else #f])]
[label (get-field s 'name)]
[scheme (let ([v (get-field s 'mzscheme)])
(and v (filter-mzscheme v)))])
(values url-string label scheme))))]
[racket (let ([v (get-field s 'racket)])
(and v (filter-racket v)))])
(values url-string label racket))))]
[parse-font
(let ([face-regexp (regexp "([^,]*), *(.*)")])
@ -908,7 +908,7 @@
(delete pos (current-pos)))
(values void forced-lines)]
[(a)
(let-values ([(url-string label scheme) (parse-href e)])
(let-values ([(url-string label racket) (parse-href e)])
(let* ([style (get-field e 'style)]
[pos (current-pos)])
(let-values ([(r rfl) (rest)])
@ -929,8 +929,8 @@
[label
(send a-text add-tag label pos)
(values r rfl)]
[scheme
(send a-text add-scheme-callback pos end-pos scheme)
[racket
(send a-text add-racket-callback pos end-pos racket)
(values
(lambda ()
(when (or (not style)

View File

@ -1,8 +1,8 @@
#|
A test case:
(module tmp mzscheme
(require mzlib/class mred browser framework)
#lang racket
(require racket/gui browser framework)
(define f%
(frame:status-line-mixin
@ -22,15 +22,16 @@ A test case:
;; The starting URL:
"http://www.htdp.org/";
;; #f means not a relative URL:
#f))
#f)
|#
#lang scheme/unit
#lang racket/unit
(require mzlib/class
(require racket/class
(only-in racket/list last-pair)
"sig.rkt"
scheme/path
scheme/file
racket/path
racket/file
net/url-sig
net/url-structs
net/head
@ -39,7 +40,6 @@ A test case:
string-constants
setup/plt-installer-sig)
(import html^
mred^
setup:plt-installer^
@ -47,20 +47,15 @@ A test case:
(export hyper^)
(init-depend mred^)
(define (last-pair l)
(if (null? (cdr l))
l
(last-pair (cdr l))))
(define-struct (exn:file-saved-instead exn) (pathname))
(define-struct (exn:cancelled exn) ())
(define-struct (exn:tcp-problem exn) ())
(struct exn:file-saved-instead exn (pathname))
(struct exn:cancelled exn ())
(struct exn:tcp-problem exn ())
(define history-limit 20)
(define-struct hyperlink (anchor-start anchor-end url-string))
(struct hyperlink (anchor-start anchor-end url-string))
(define-struct hypertag (name position))
(struct hypertag (name position))
(define (same-page-url? a b)
(or (eq? a b)
@ -104,7 +99,7 @@ A test case:
(equal? "file" (url-scheme url)))
(with-handlers ([exn:fail:filesystem? (lambda (x) #f)])
(path-below?
(normal-case-path (normalize-path (build-path (collection-path "mzlib")
(normal-case-path (normalize-path (build-path (collection-path "racket")
'up
'up)))
(normal-case-path (normalize-path (apply build-path
@ -115,7 +110,7 @@ A test case:
(define title #f)
(define htmling? #f)
(define redirection #f)
(define hypertags-list (list (make-hypertag "top" 0)))
(define hypertags-list (list (hypertag "top" 0)))
(define hyper-delta (make-object style-delta% 'change-underline #t))
(let ([mult (send hyper-delta get-foreground-mult)]
[add (send hyper-delta get-foreground-add)])
@ -162,7 +157,7 @@ A test case:
(when (string=? name (hypertag-name tag))
(remove-tag name)))
hypertags-list)
(let ([new-tag (make-hypertag name pos)])
(let ([new-tag (hypertag name pos)])
(set! hypertags-list
(let insert-loop ([tags-left hypertags-list])
(cond [(null? tags-left)(cons new-tag '())]
@ -184,30 +179,30 @@ A test case:
(filter (lambda (x) (not (string=? name (hypertag-name x))))
hypertags-list)))
(define/public (add-link start end url-string)
(let* ([new-link (make-hyperlink start end url-string)])
(let* ([new-link (hyperlink start end url-string)])
(set-clickback start end
(lambda (x y z)
(post-url url-string)))))
;; remember the directory when the callback is added (during parsing)
;; and restore it during the evaluation of the callback.
(define/public (add-scheme-callback start end scheme-string)
(define/public (add-racket-callback start end racket-string)
(let ([dir (current-load-relative-directory)])
(set-clickback
start end
(lambda (edit start end)
(if (url-allows-evaling? url)
(parameterize ([current-load-relative-directory dir])
(eval-scheme-string scheme-string))
(eval-racket-string racket-string))
(message-box (string-constant help-desk)
"<A MZSCHEME= ...> disabled"))))))
"<A RACKET= ...> disabled"))))))
(define/public (add-thunk-callback start end thunk)
(set-clickback
start end
(lambda (edit start end)
(thunk))))
(define/public (eval-scheme-string s)
(define/public (eval-racket-string s)
(let ([v
(dynamic-wind
begin-busy-cursor
@ -388,13 +383,13 @@ A test case:
(send d center)
(send d show #t)
(unless (or d? i?)
(raise (make-exn:cancelled
(raise (exn:cancelled
"Package Cancelled"
(current-continuation-marks))))
i?))]
[tmp-plt-filename
(if install?
(make-temporary-file "tmp~a.plt")
(make-temporary-file "tmp~a.rkt")
(put-file
(if size
(format
@ -449,7 +444,7 @@ A test case:
(queue-callback (lambda () (semaphore-post wait-to-start)))
(send d show #t)
(when exn
(raise (make-exn:tcp-problem (exn-message exn) (current-continuation-marks)))))
(raise (exn:tcp-problem (exn-message exn) (current-continuation-marks)))))
(let ([sema (make-semaphore 0)])
(when (and tmp-plt-filename install?)
(run-installer tmp-plt-filename
@ -458,13 +453,13 @@ A test case:
(yield sema))))
(raise
(if tmp-plt-filename
(make-exn:file-saved-instead
(exn:file-saved-instead
(if install?
(string-constant package-was-installed)
(string-constant download-was-saved))
(current-continuation-marks)
tmp-plt-filename)
(make-exn:cancelled "The download was cancelled."
(exn:cancelled "The download was cancelled."
(current-continuation-marks)))))]
[(or (and (url? url)
(not (null? (url-path url)))
@ -576,9 +571,9 @@ A test case:
;; build-html-error-message : exn -> string[html]
(define ((build-html-error-message str) exn)
(string-append
"<html><head><title>Error Evaluating Scheme</title></head>"
"<html><head><title>Error Evaluating Racket</title></head>"
"<body>"
"<h2>Error Evaluating Scheme Code</h2>"
"<h2>Error Evaluating Racket Code</h2>"
(format "<pre>\n~a\n</pre>" str)
"<p><p>"
(format "<font color=\"red\">~a</font>"
@ -743,7 +738,7 @@ A test case:
(set-page (list e (or tag-pos 0) (send e last-position)) #t)
(when tag-pos (send e set-position tag-pos)))]
[(exn? result)
(message-box (string-constant drscheme)
(message-box (string-constant drracket)
(exn-message result)
tlw)]
[else (void)]))))))

View File

@ -1,7 +1,5 @@
(module option-snip mzscheme
(require mred
mzlib/class
mzlib/string)
#lang racket
(require racket/gui)
(provide option-snip%
checkbox-snip%)
@ -198,4 +196,4 @@
(super-instantiate ())
(set-flags (cons 'handles-events (get-flags)))
(set-count 1))))
(set-count 1)))

View File

@ -1,5 +1,5 @@
(module sig scheme/base
(require scheme/unit)
#lang racket
(require racket/unit)
(provide relative-btree^
bullet-export^
@ -21,8 +21,8 @@
(define-signature hyper^
(open-url
(struct exn:file-saved-instead (pathname))
(struct exn:cancelled ())
(struct exn:file-saved-instead (pathname) #:omit-constructor)
(struct exn:cancelled () #:omit-constructor)
hyper-text<%>
hyper-text-mixin
@ -54,4 +54,4 @@
btree-shift!
btree-for-each
btree-map)))
btree-map))

View File

@ -1,15 +1,16 @@
(module tool mzscheme
(require browser/external
mzlib/unit
drscheme/tool)
#lang racket
(require (only-in "external.rkt" install-help-browser-preference-panel)
racket/unit
drracket/tool)
(provide tool@)
;; to add a preference pannel to drscheme that sets the browser preference
;; to add a preference pannel to drracket that sets the browser preference
(define tool@
(unit
(import drscheme:tool^)
(export drscheme:tool-exports^)
(define phase1 void)
(define phase2 void)
(import drracket:tool^)
(export drracket:tool-exports^)
(install-help-browser-preference-panel))))
(define (phase1) (void))
(define (phase2) (void))
(install-help-browser-preference-panel)))

View File

@ -106,6 +106,7 @@ please adhere to these guidelines:
;;; general purpose (DrRacket is hereby a word in every language, by decree of Robby :)
(plt "PLT")
(drscheme "DrRacket")
(drracket "DrRacket")
(ok "Ok")
(cancel "Fortryd")
(abort "Afbryd")

View File

@ -19,6 +19,7 @@
;;; general purpose (DrRacket is hereby a word in every language, by decree of Robby :)
(plt "PLT")
(drscheme "DrRacket")
(drracket "DrRacket")
(ok "OK")
(cancel "Annuleren")
(untitled "Naamloos")

View File

@ -106,6 +106,7 @@ please adhere to these guidelines:
;;; general purpose (DrRacket is hereby a word in every language, by decree of Robby :)
(plt "PLT")
(drscheme "DrRacket")
(drracket "DrRacket")
(ok "OK")
(cancel "Cancel")
(abort "Abort")

View File

@ -106,6 +106,7 @@
;;; general purpose (DrRacket is hereby a word in every language, by decree of Robby :)
(plt "PLT")
(drscheme "DrRacket")
(drracket "DrRacket")
(ok "OK")
(cancel "Annuler")
(abort "Abandonner")

View File

@ -13,6 +13,7 @@
;;; general purpose (DrRacket is hereby a word in every language, by decree of Robby :)
(plt "PLT")
(drscheme "DrRacket")
(drracket "DrRacket")
(ok "OK")
;; We can't use "Abbrechen" here because that's much closer in
;; meaning to "abort", and it appears in dialogs saying "Quit?" "OK"

View File

@ -106,6 +106,7 @@ please adhere to these guidelines:
;;; general purpose (DrRacket is hereby a word in every language, by decree of Robby :)
(plt "PLT")
(drscheme "DrRacket")
(drracket "DrRacket")
(ok "OK")
(cancel "キャンセル")
(abort "中止")

View File

@ -24,6 +24,7 @@
;;; general purpose (DrRacket is hereby a word in every language, by decree of Robby :)
(plt "PLT")
(drscheme "DrRacket")
(drracket "DrRacket")
(ok "확인")
(cancel "취소")
(abort "중단")

View File

@ -106,6 +106,7 @@ please adhere to these guidelines:
;;; general purpose (DrRacket is hereby a word in every language, by decree of Robby :)
(plt "PLT")
(drscheme "DrRacket")
(drracket "DrRacket")
(ok "OK")
(cancel "Cancelar")
(abort "Abortar")

View File

@ -106,6 +106,7 @@ please adhere to these guidelines:
;;; general purpose (DrRacket is hereby a word in every language, by decree of Robby :)
(plt "PLT")
(drscheme "DrRacket")
(drracket "DrRacket")
(ok "OK")
(cancel "Отмена")
(abort "Отмена")

View File

@ -33,6 +33,7 @@
;;; general purpose (DrRacket is hereby a word in every language, by decree of Robby :)
(plt "PLT")
(drscheme "DrRacket")
(drracket "DrRacket")
(ok "确定")
(cancel "取消")
(abort "中止")

View File

@ -16,6 +16,7 @@
;;; general purpose (DrRacket is hereby a word in every language, by decree of Robby :)
(plt "PLT")
(drscheme "DrRacket")
(drracket "DrRacket")
(ok "OK")
(cancel "Cancelar")
(abort "Abortar")

View File

@ -16,6 +16,8 @@
;;; general purpose (DrRacket is hereby a word in every language, by decree of Robby :)
(plt "PLT")
(drscheme "DrRacket")
(drracket "DrRacket")
(ok "確定")
(cancel "取消")
(abort "中止")

View File

@ -106,6 +106,7 @@ please adhere to these guidelines:
;;; general purpose (DrRacket is hereby a word in every language, by decree of Robby :)
(plt "PLT")
(drscheme "DrRacket")
(drracket "DrRacket")
(ok "OK")
(cancel "Скасувати")
(abort "Скасувати")