Regex para pesquisar chaves I18n criadas dinamicamente no Rails

Durante a vida útil de um aplicativo Rails, conforme o código é refatorado, algumas chaves de tradução se tornam obsoletas. Além de verificar manualmente uma chave, não há maneira fácil de encontrar chaves obsoletas. Ferramentas como i18n-tasks aliviam o problema. No entanto, eles não podem detectar chaves criadas dinamicamente e, às vezes, podem relatar falsos positivos. Por esse motivo, é uma boa ideia listar todos os métodos t no código, que não contêm strings do tipo 'namespace.subspace.key', mas algum método. Aqui está uma regexp, que faz exatamente isso:

(?<![a-z])t([^'].{0,100})

A primeira parte (?<![a-z])é um lookbehind negativo, de forma que os métodos que terminam em t não são correspondidos. A parte do quantificador {0,100} é um pouco complicada. Se você usar um * em vez de {x, x}, obterá correspondências, como:

t (algo em aqui) Código adicional algum outro método (usando parênteses)

e você pode travar seu editor, então você tem que brincar com ele (diminuir ou aumentar o segundo argumento), para atender às suas necessidades particulares.