The awesome way that jQuery works is that query selectors that select more than one element, can then have actions applied to *all of them at once!* This is very cool and allows for some very short code to do updates like these. My untested example before does ***not*** actually work because it needs to reference each one individually, luckily, it's not far off (this has been tested, and should run *only* just before the very first translation):
```javascript
// Loop over every element in the current document scope that has a 'data-i18n' attribute that's empty
$('[data-i18n=""]').each(function() {
  // "this" in every $.each() function, is a reference to each selected DOM object from the query.
  // Note we have to use $() on it to get a jQuery object for it. Do that only once and save it in a var
  // to keep your code from having to instantiate it more than once.
  var $node = $(this); 
  $node.attr('data-i18n', $node.text());
  // This leaves the text value of the node intact just in case it doesn't translate and someone is debugging,
  // they'll be able to see the exact translation key that is a problem in the UI.
});
```