Primeiramente, quando você faz o UPDATE JOIN, você não incluiu nenhuma condição de JOIN .. para tentar fazer um produto cartesiano de cada tabela:
#rows = #rows_table1EN * #rows_table1ZH * ... * #rows_table1PT
Você deve entrar em
table1EN.id = table1xx.id
para cada mesa. O próximo problema é que você terá que fazer referência a cada coluna que deseja alterar. Isso resultará em:
SET table1EN.detail = 'String Value',
table1ZH.detail = 'String Value'
...
table1PT.detail = 'String Value'
Isso poderia ser feito com a construção dinâmica da declaração, mas isso é bastante hediondo.
Isso tudo me leva a questionar sua estrutura de banco de dados. Você considerou usar uma tabela com uma coluna de idioma extra; ou o identificador de duas letras (OKish) ou uma chave estrangeira para uma tabela de idiomas (melhor)?