#lang racket (provide tr) (define tr_map (make-hash)) (define (add-tr sentence language translated-sentence) (let ((lang-hash (hash-ref tr_map language (make-hash)))) (hash-set! lang-hash sentence translated-sentence) (hash-set! tr_map language lang-hash))) (define-syntax add2 (syntax-rules () ((_ s (l ts)) (add-tr s l ts)))) (define-syntax add (syntax-rules () ((_ s l1 ...) (begin (add2 s l1) ...)))) (define language 'en) (define (languages) '((en "English") (nl "Nederlands"))) (define (set-lang! l) (set! language l)) (define (tr s) (if (eq? language 'en) s (let ((lang-hash (hash-ref tr_map language (make-hash)))) (let ((translated (hash-ref lang-hash s (format "~a:~a" language s)))) translated ) ) ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Translations ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (add "Select Music Library Folder" ('nl "Selecteer map met Muziek Bibliotheek")) (add "Choose the folder containing your music library" ('nl "Kies de map met de Muziek Bibliotheek")) (add "Quit" ('nl "Beƫindigen"))