JavaScript: длинный список альтернативных свойств

#javascript

#javascript

Вопрос:

У меня есть объект, который уже содержит довольно длинный список свойств, и он будет только расти. Я ищу альтернативу простому добавлению нового свойства каждый раз, когда оно необходимо, но я не уверен, что есть альтернатива, которая не только удобна для разработчиков, но и пользователи, не разбирающиеся в технологиях, могут легко вносить изменения / дополнения.

Я создал небольшую версию своего скрипта, который должен объяснить, что происходит.

 const titles = {
  fr: 'Some text in french',
  fi: 'Some text in finnish'
  // tons more properties
}

const locale = window.location.url.split('/')[3]  // determines locale to use
const titleElement = document.querySelector('.title')
titleElement.innerText = titles[locale] | 'Some text in english'  // sets the titles text
  

Редактировать

Некоторый контекст был бы полезен.

  • У меня есть доступ только через Adobe Target, в частности, рекомендации
  • Все локали будут аналогичны свойствам titles объекта во фрагменте кода

Комментарии:

1. Все ли ваши имена свойств являются языковыми кодами (ne, de, se, en, it, es, pt, pl, ….)?

2. Здесь немного не хватает контекста. Почему непрограммисты вносят изменения в ваш код JavaScript? В любом случае, не зная много о вашей настройке, может быть, вы могли бы сохранить эти данные в базе данных вместо того, чтобы жестко кодировать их в приложении? И тогда вы могли бы предоставить небольшой пользовательский интерфейс для других людей, чтобы поддерживать данные так, как они считают нужным, без необходимости фактически изменять файлы кода. Возможно, вам даже удастся найти шаблон для такого рода интернационализированного хранилища данных и код приложения для его поддержки. Это довольно распространенное требование

3. Обязательно ли это должно быть на стороне клиента? Вы всегда можете сохранить записи в базе данных и просто извлечь языковые данные в зависимости от выбранного пользователем языка. Таким образом, людям, не разбирающимся в технологиях, проще поддерживать и расширять его. Вам просто нужно создать интерфейс для них, чтобы добавить текст на языке.

4. Вы переросли ручное редактирование файлов. Как и во всех приложениях … масштабирование предполагает адаптацию процессов

Ответ №1:

от «нетехнологичных пользователей» не следует требовать редактирования кода. Вместо этого вы должны предоставить им способ ввода данных в ваше веб-приложение, а затем более постоянно хранить их на сервере. Затем веб-приложение считывает эти данные, когда они запрашиваются, и что-то с ними делает.

Комментарии:

1. Я полностью согласен с вами, но клиент использует Adobe Target для своего проекта, и я не вижу ничего, что позволяло бы им получать доступ к внутренним переменным из простого пользовательского интерфейса на целевой панели мониторинга. Мне нужно еще немного покопаться, чтобы убедиться.

2. @BrandonBenefield в какой-то момент приходит время обсудить проблемы, которые может вызвать их процесс, и его ограничения. Если у них есть существующий веб-сайт, вы всегда можете убедить их, что пришло время внедрить языковой редактор в их CMS и просто подключиться через ajax в Adobe Target.

3. «позволяет им получать доступ к внутренним переменным из простого пользовательского интерфейса» Для меня это звучит как неправильный подход к разработке программного обеспечения. Сбор требований должен касаться того, что хочет пользователь, на языке предметной области пользователя, а не на языке компьютерного программирования. Это означает, что такие вещи, как «доступ к внутренним переменным», не должны быть частью обсуждения. Вместо этого диалог должен быть похож на «когда я нажимаю на … это должно сделать … «.