Django i18n и локали Python (и даты)

Ну, возможно, я - один из нескольких человек, здесь достаточно взрослых для запоминания одной из больших причин, почему "только один оператор возврата" так боролся. Это - так компилятор, может испустить более эффективный код. Для каждого вызова функции компилятор обычно продвигает некоторые регистры на стеке сохранять свои значения. Таким образом, функция может использовать те регистры для временного хранения. Когда функция возвращается, те сохраненные регистры должны быть вытолканы от стека и назад в регистры. Это - один POP (или MOV - (SP), Rn) инструкция на регистр. Если у Вас есть набор операторов возврата, то любой, каждый должен вытолкать все регистры (который делает скомпилированный код больше) или компилятор должен отслеживать, которых регистры, возможно, были изменены и только выталкивают их (уменьшающий размер кода, но увеличивающий время компиляции).

Одной причиной, почему все еще имеет смысл сегодня пытаться придерживаться одного оператора возврата, является простота автоматизированного рефакторинга. Если Ваш IDE поддерживает рефакторинг извлечения метода (выбирающий диапазон строк и превращающий их в метод), очень трудно сделать это, если строки, которые Вы хотите извлечь, имеют оператор возврата в них, особенно при возврате значения.

5
задан tonfa 25 August 2009 в 21:01
поделиться

1 ответ

Django не устанавливает языковой стандарт для перевода, а просто загружает каталог переводов. Чтобы получить желаемый эффект, вы либо установите языковой стандарт (что не является хорошим вариантом, поскольку он работает в масштабе всего процесса), либо используйте специализированную библиотеку. Я рекомендую Babel с хорошей интеграцией с Django.

3
ответ дан 15 December 2019 в 01:07
поделиться
Другие вопросы по тегам:

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