For those interested in Windows-style dialog boxes (i.e. not Web dialogs), I had written a library Libtraductor.rbthat supports also language translation in dialog boxes and ease the checking of parameters (min, max, string patterns, ...). It also preserves defaults and previous values.
I use it in Bezierspline and in JointPushPull (and actually in other unpublished scripts).
Attached is the script, as well as a tutorial for programmers in English.
Here is a snippet of the interface
dlg = Traductor;;DialogBox.new title
#Declaring fields, either string, numeric or unit-based numeric, or enumeration list;
dlg.field_string symbol, label, default, validation_pattern
dlg.field_numeric symbol, label, default, value_min, value_max
dlg.field_enum symbol, label, default, enum_hash
#Showing the dialog box;
Hash_results = dlg.show hash_initial_values
to drop in Skecthup Plugins folder
Tutorial for Ruby script programmers