Как обработать локализацию в файлах JavaScript?

Портативный способ получить эпсилон в C++

#include <limits>
std::numeric_limits<double>::epsilon()

Тогда, функция сравнения становится

#include <cmath>
#include <limits>

bool AreSame(double a, double b) {
    return std::fabs(a - b) < std::numeric_limits<double>::epsilon();
}
13
задан Peter Mortensen 23 October 2010 в 12:11
поделиться

3 ответа

РЕДАКТИРОВАТЬ

Подумайте о том, чтобы записать необходимые локализованные ресурсы в объект JavaScript (хэш), а затем использовать его для поиска ваших динамически создаваемых объектов. Я думаю, это лучше, чем возвращаться к серверу за переводом. Это похоже на добавление через viewdata, но может быть немного более гибким. FWIW, я мог бы рассматривать ресурсы локализации как часть представления, а не как часть контроллера.

В представлении:

<script type="text/javascript"
         src='<%= Url.Content( "~/Resources/Load?translate=Close,Open" %>'></script>

который выводил бы что-то вроде:

var local = {};
local.Close = "Close";
local.Open = "Open";

Без аргументов он выводил бы весь хэш перевода. Использование аргументов дает вам возможность настраивать его для каждого представления.

Затем вы можете использовать его в своих файлах JavaScript, например:

 $(function(){
     $('#button').click( function() {
        $("<img src=... title='" + local.Close + "' />")
           .appendTo("#someDiv")
           .click( function() { ... } );
     });
 });

На самом деле, я не слишком беспокоюсь о том, чтобы мой код JavaScript не попадал в мои представления, пока Код JavaScript локализован в контейнере. Обычно я Я установлю свою главную страницу с 4 областями содержимого: заголовок, заголовок, основная и скрипты. Заголовок, заголовок и основная часть располагаются там, где вы ожидаете, а область сценариев находится в нижней части тела.

Я помещаю все мои JavaScript-файлы, включая любые элементы для viewusercontrols, в контейнер сценариев. Код JavaScript, специфичный для представлений, идет после include. При необходимости я реорганизую общий код обратно в сценарии. Я подумал об использовании метода контроллера для сопоставления сценариев, включающих, то есть, включение нескольких сценариев с использованием одного запроса, но еще не дошел до этого.

Это дает преимущество в том, что код JavaScript хранится отдельно для удобочитаемость, но также позволяет мне легко вводить модель или просматривать данные в код JavaScript по мере необходимости.

и main идут туда, где вы ожидаете, а область сценариев находится в нижней части тела.

Я помещаю все свои JavaScript, включая любые элементы для viewusercontrols, в контейнер сценариев. Код JavaScript, специфичный для представлений, идет после include. При необходимости я реорганизую общий код обратно в сценарии. Я подумал об использовании метода контроллера для сопоставления сценариев, включающих, то есть, включение нескольких сценариев с использованием одного запроса, но еще не дошел до этого.

Это дает преимущество в том, что код JavaScript хранится отдельно для удобочитаемость, но также позволяет мне легко вводить модель или просматривать данные в код JavaScript по мере необходимости.

и main идут туда, где вы ожидаете, а область сценариев находится в нижней части тела.

Я помещаю все свои JavaScript, включая любые элементы для viewusercontrols, в контейнер сценариев. Код JavaScript, специфичный для представлений, идет после include. При необходимости я реорганизую общий код обратно в сценарии. Я подумал об использовании метода контроллера для сопоставления сценариев, включающих, то есть, включение нескольких сценариев с использованием одного запроса, но еще не дошел до этого.

Это дает преимущество в том, что код JavaScript хранится отдельно для удобочитаемость, но также позволяет мне легко вводить модель или просматривать данные в код JavaScript по мере необходимости.

Код JavaScript, специфичный для представлений, идет после include. При необходимости я реорганизую общий код обратно в сценарии. Я подумал об использовании метода контроллера для сопоставления сценариев, включающих, то есть, включение нескольких сценариев с использованием одного запроса, но еще не дошел до этого.

Это дает преимущество в том, что код JavaScript хранится отдельно для удобочитаемость, но также позволяет мне легко вводить модель или просматривать данные в код JavaScript по мере необходимости.

Код JavaScript, специфичный для представлений, идет после include. При необходимости я реорганизую общий код обратно в сценарии. Я подумал об использовании метода контроллера для сопоставления сценариев, включающих, то есть, включение нескольких сценариев с использованием одного запроса, но еще не дошел до этого.

Это дает преимущество в том, что код JavaScript хранится отдельно для удобочитаемость, но также позволяет мне легко вводить модель или просматривать данные в код JavaScript по мере необходимости.

9
ответ дан 2 December 2019 в 00:58
поделиться

Если вы настаиваете на сохранении его отдельно, вы можете сделать что-то вроде:

//keep all of your localised vars somewhere
var title = '{title_from_server}';
document.getElementById('someImage').title = title;

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

1
ответ дан 2 December 2019 в 00:58
поделиться

На самом деле ASP.NET Ajax имеет встроенный механизм локализации: Общие сведения о локализации ASP.NET AJAX

2
ответ дан 2 December 2019 в 00:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: