Tabela de traduções (Xt)
O formato de texto do Xt para associar teclas e botões do mouse a ações nomeadas em um widget, substituível a partir do ~/.Xresources sem mexer no programa.
Todo widget Xt tem um recurso translations, uma tabela cujo lado esquerdo é uma sequência de eventos e cujo lado direito é uma ou mais ações: <Key>q: quit(), Ctrl<Key>s: search(forward), Shift<Btn1Down>: select-start(). Um evento se escreve como modificadores, tipo e detalhe, e vários podem ser encadeados para cliques duplos ou sequências de teclas. As ações são definidas pela classe do widget ou registradas pelo programa com XtAppAddActions, e o Translation Manager do Xt faz a correspondência à medida que os eventos chegam.
O ponto é que a tabela é um recurso como outro qualquer. As diretivas #override, #augment e #replace decidem se as linhas do usuário ficam por cima, por baixo ou no lugar das do widget, de modo que uma linha como XTerm*VT100.translations: #override Shift <KeyPress> Insert: insert-selection(PRIMARY) muda o comportamento do xterm sem recompilar. Era a resposta dos anos 1980 para atalhos configuráveis, e uma resposta incomumente poderosa: o xterm pode enviar strings arbitrárias com string(), e editores Athena podiam ser reconfigurados tecla por tecla. A sintaxe também era frágil o bastante – um único \n\ esquecido no arquivo de recursos e a tabela inteira sumia em silêncio – para que a maioria se contentasse em copiar linhas da Usenet. GTK e Qt abandonaram o mecanismo por completo; ali os atalhos são fixos no código e o que se oferece é uma caixa de preferências.