Я уже некоторое время без проблем использую что-то вроде вашего второго подхода.Единственное отличие состоит в том, что я использую singleton в своем JS-файле, чтобы не загрязнять глобальное пространство имен javascript.
Но если вы будете делать более серьезные вещи на стороне клиента, ваш код Javascriptбудет следовать более объектно-ориентированной структуре, и оттуда вы почти автоматически получите единственный путь инициализации / конструктора, по которому вы можете передать свои локализованные значения.
Это RazorJS выглядит хорошо, но я не уверен, что яудобное смешивание Javascript с Razor.Можно сделать это для небольшого проекта, но я вижу, что он становится очень грязным, если у вас много файлов Javascript.
В конце концов, я все еще считаю, что код ресурсов / локализации связан с представлением.На мой взгляд, Javascript должен реализовывать только функциональность.