Я член команды с более чем 20 разработчиками. Каждый разработчик работает на отдельном модуле (около 10 модулей). В каждом модуле мы можем иметь не менее 50 форм CRUD, что означает, что в настоящее время у нас есть около 500 кнопок добавлять, кнопки, редактировать и др.
Однако, поскольку мы хотим глобализовать наше приложение, мы должны иметь возможность переводить тексты в нашем приложении. Например, во всем мире слово добавить должно стать ajouter для французских пользователей.
То, что мы делали до сих пор, заключается в том, что для каждого представления в пользовательском интерфейсе или слое представления у нас есть словарь пар ключей/значений переводов. Затем при визуализации представления мы переводим требуемые тексты и строки с помощью этого словаря. Однако, этот подход, мы получили около 500 добавить в 500 словарей. Это означает, что мы нарушили DRY принципала.
С другой стороны, если мы централизуем общие строки, например, помещаем добавить в одном месте и просим разработчиков использовать его везде, мы сталкиваемся с проблемой не уверенности в том, что строка уже определена в централизованном словаре или нет.
Еще один вариант может заключаться в отсутствии переводческого словаря и использовании услуг онлайн-перевода, таких как Google Translate, Bing Translator и т.д.
Еще одна проблема, с которой мы столкнулись, заключается в том, что некоторые разработчики, испытывающие стресс при доставке проекта вовремя, не могут запомнить клавиши перевода. Например, для текста кнопки добавления разработчик использовал добавить, а другой разработчик использовал новый и т.д.
Какова наилучшая практика или наиболее известный метод глобализации и локализации строковых ресурсов приложения?