Еще один вопрос о Django относительно локализации файлов javascript.
Django предоставляет небольшую и удобную библиотеку javascript, которая используется как gettext для интернационализации строк в файлах javascript.
Я установил его успешно (по крайней мере, работает функция интерполяции), и я мог бы создать PO-файл для французского языка. Однако не все строки обнаружены. Я не знаю почему, потому что они все выглядят одинаково. Я ничего не мог найти в Django Trac и официальных документах.
Код javascript находится во внешнем файле, включенном в шаблон, и Django, очевидно, нашел его, потому что он поместил две строки в файл po.
Включение в шаблон HTML:
<script src="{{MEDIA_URL|default:'/media/'}}js/list.js" type="text/javascript"></script>
код JavaScript:
/* ---------------
* Upload progress
* --------------- */
$(document).ready(function() {
$(function() {
$('#upload_form').uploadProgress({
//...
/* function called just before starting the upload */
start: function() {
$("#upload_form").hide();
filename = $("#id_file").val().split(/[\/\\]/).pop();
fmts = gettext('Uploading %(filename)s...');
dat = {
filename: filename
};
s = interpolate(fmts,dat,true);
$("#progress_filename").html(s);
$("#progress_container").show();
},
/* function called each time bar is updated */
uploading: function(upload) {
if (upload.percents >= 100) {
window.clearTimeout(this.timer);
fmts = gettext("Saving %(filename)s...");
dat = {
filename: filename
};
s = interpolate(fmts,dat,true);
$("#progress_filename").html(s);
} else {
fmts = gettext('Uploading %(filename)s : %(percents)s%...');
dat = {
filename: filename,
percents: upload.percents
};
s = interpolate(fmts,dat,true);
$("#progress_filename").html(s);
}
},
//...
});
});
});
/* --------------------
* Confirmation dialogs
* -------------------- */
function delVid(title) {
fmts = gettext('Do you really want to delete the video "%(title)s"?');
dat = {
title: title
};
s = interpolate(fmts,dat,true);
return confirm(s)
}
function abortVid(title) {
fmts = gettext('Do you really want to abort the processing of the video "%(title)s"?');
dat = {
title: title
};
s = interpolate(fmts,dat,true);
return confirm(s)
}
Первая часть - это стандартное использование модуля jquery.uploadprogress для JQuery, а вторая часть - всего две функции для всплывающих окон подтверждения.
Обнаруженные строки находятся в первой части:
- 'Загрузка% (имя файла) s ...'
- 'Сохранение% (имя файла) s ...'
Я использовал команду "django-admin.py -d djangojs -l fr", и она сгенерировала файл djangojs.po с этими двумя строками. Я перевел их. К сожалению, они не переводятся во время выполнения. Кажется, у меня наконец две проблемы.
Есть идеи?