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 во фрагменте кода.

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

trincot 08.04.2019 22:45

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

ADyson 08.04.2019 22:46

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

imvain2 08.04.2019 22:47

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

charlietfl 08.04.2019 22:51
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
4
45
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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

Brandon Benefield 08.04.2019 23:12

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

imvain2 08.04.2019 23:24

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

Code-Apprentice 09.04.2019 17:48

Другие вопросы по теме