insertHTMLFragments.js 896 B

12345678910111213141516171819202122232425262728293031323334353637
  1. /*
  2. This script will aid the process of inserting HTML fragments into all the
  3. locales.
  4. We are migrating from
  5. locale: 'PRE __key1__ POST'
  6. pug: translate(localeKey, { key1: '<b>VALUE</b>' })
  7. to
  8. locale: 'PRE <0>__key1__</0> POST'
  9. pug: translate(localeKey, { key1: 'VALUE' }, ['b'])
  10. MAPPING entries:
  11. localeKey: ['key1', 'key2']
  12. click_here_to_view_sl_in_lng: ['lngName']
  13. */
  14. const MAPPING = {}
  15. const { transformLocales } = require('./transformLocales')
  16. function transformLocale(locale, components) {
  17. components.forEach((key, idx) => {
  18. const i18nKey = `__${key}__`
  19. const replacement = `<${idx}>${i18nKey}</${idx}>`
  20. if (!locale.includes(replacement)) {
  21. locale = locale.replace(new RegExp(i18nKey, 'g'), replacement)
  22. }
  23. })
  24. return locale
  25. }
  26. function main() {
  27. transformLocales(MAPPING, transformLocale)
  28. }
  29. if (require.main === module) {
  30. main()
  31. }