Как интернационализировать строку, используемую в коде JavaScript?

Я - Java-разработчик, таким образом, я не уверен в деталях C#, но мне необходимостью в двух модульных тестах здесь кажется.

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

второй должен быть "wonky" версией, которая делает деятельность InsertFoo и затем выдает исключение прежде, чем делать попытку InsertBar. Успешный тест покажет, что исключение было выдано и что ни объекты Нечто ни Панели не посвятили себя базе данных.

, Если бы оба из них передают, я сказал бы, что Ваш TransactionScope работает, как он должен.

5
задан Morgan Cheng 12 October 2009 в 09:22
поделиться

4 ответа

вы также можете автоматизировать это, используя "препроцессор" php для javascript

<script src="script.php?file=blah.js">

, где script.php - это что-то вроде

    function _repl($x) { return '"' . _e($x[1]) . '"'; }

    $js = file_get_contents($_GET['file']);
    $js = preg_replace_callback('~_e\("(.+?)"\)~', '_repl', $js);
    echo $js;

, это прозрачно заменит _e (что-то) в коде JavaScript с фактическими строками

2
ответ дан 13 December 2019 в 05:38
поделиться

Вы должны использовать JSON для преобразования строк l10n на стороне сервера в объект JSON:

// In the <head> tag :
<script type="text/javascript" src="locales.php"></script> 

и это в locales.php:

var l10n = <?php echo json_encode($l10n); ?>;

, где $ l10n - это массив, содержащий все локали, например:

$l10n = array(
  'Please wait while submitting...' => 'Veuillez patienter durant le traitement...',
  'bah' => 'bih'
);

Теперь вы можете использовать эти строки в JS следующим образом:

function $T(s){
  return l10n[s] || s;
}

alert($T('Please wait while submitting...'));
10
ответ дан 13 December 2019 в 05:38
поделиться

вы можете создать своего рода REST-приложение, в котором вы будете заполнять элементы строк javascript при загрузке документа из службы:

$(function(){
   var handleResponse = function.....; // fill your string elements from response
   var lang = "fr"; // language of localized document

   $.ajax(
       type: "GET",
       url: "/i18n.php?lang=" + lang + "&names=someName+someName1+someName2",
       success: handleResponse
   ); 
});
0
ответ дан 13 December 2019 в 05:38
поделиться

Вы можете сгенерировать текст в исходный сценарий.

$('#submit').click(function() {
    $(#target).html('<?php  _e('Please wait while submitting...'); ?>').load(someURI);
}
0
ответ дан 13 December 2019 в 05:38
поделиться
Другие вопросы по тегам:

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