Локализация для строк, присутствующих в скриптах - PullRequest
1 голос
/ 24 февраля 2012

Я хочу перевести всю мою заявку на другой язык.Я добавил отдельный глобальный проект ресурсов, который содержит файл ресурсов LocalizableResources.resx.Однако я застрял в строках, используемых в javascripts, вот что я попробовал,

*var resourceDictionary = new ResourceReader(FILEPATH OR STREAM)
                                .Cast<DictionaryEntry>()
                                .Where(x=>x.Key.ToString().StartsWith("JS_"))
                                .ToDictionary(entry => entry.Key.ToString(), entry => entry.Value.ToString());
            var json = Serializer.Serialize(resourceDictionary);*

со всеми строками javascript, начинающимися с "JS_".Проблема, с которой я сталкиваюсь, заключается в том, что я не могу получить FILEPATH / STREAM, поскольку файл ресурсов представлен в виде другого проекта (не в конечных точках сети).Если кто-то может предоставить другой способ сделать это или указать на ошибку в этом методе, это будет действительно полезно.Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 24 февраля 2012

Простое решение - определить переменную, содержащую переводы на главной странице, и использовать их в файлах .js. Смотрите следующий пример для Razor:

<script type="text/javascript">
  var Translation = {
   helloWorld: '@MyResourceFile.HelloWorld',
   book: '@MyResourceFile.Book'
 }
</script>
<script src="@Url.Content("~/Scripts/MyScriptFile.js")" type="text/javascript" />
0 голосов
/ 24 февраля 2012

Используете ли вы какую-либо библиотеку Javascript, например JQuery? Они имеют встроенную функцию или плагины для i18n.

О вашем коде вы можете использовать ResourceManager для получения всех ключей ваших ресурсов вместо прямого доступа к файлам ресурсов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...