I wonder if we should use `l10nReady` here because it always push the translation to the next loop with `setTimeout()`.
Won't that generate N layout flash for N strings?

Or, alternatively, we should just get rid of `setTimeout()` in L953. But, as `l10nReady` is also a publicly exposed function, people we need to be careful not to break people's work (by changing the async callback to sync callback).

Not to use `l10nReady` may be the safest approach.