Анимация
JavaScript
|
Главная Библионтека 17.1. locale - использование национальных особенностей 239 начиная с версии 2.0. strcoll (stringl, string2) (категория LC C0LLATe) Производит лексикографическое сравнение строк stringl и string2 в соответствии с текущими национальными установками. Как и другие функции сравнения возвращает положительное, отрицательное число или 0 в зависимости от того, располагается строка stringl до или после string2 или строки равны. Строки не должны содержать символов \000 . strxfrm (string) (категория LC C0LLATe) Преобразует строку таким образом, чтобы можно было проводить более быстрое сравнение с помощью встроенной функции cmp() (или операторов сравнения) и результат был таким же, какой возвращает функция strcoll() . Строка не должна содержать символов \000 . format (format, val [, grouping]) (категория LC NUMERIC) Возвращает строковое представление числа с учетом текущих национальных установок. Строка формата следует соглашениям, принятым для оператора %. Функция принимает во внимание местный символ десятичной точки и, если задан и является истиной аргумент grouping, группирует соответствующим образом цифры. str (float) (категория LC NUMERIC) Возвращает строковое представление числа аналогично встроенной функции str() , но использует символ десятичной точки в соответствии с текущими национальными установками. atof (string) (категория LC NUMERIC) Преобразует строку, содержащую представление вещественного числа в соответствии с текущими национальными установками, в вещественное число и возвращает его. atoi (string) (категория LC NUMERIC) Преобразует строку, содержащую представление целого числа в соответствии с текущими национальными установками, в целое число и возвращает его. Ниже перечислены константы, которые могут использоваться в качестве первого аргумента функции setlocale() (категории национальных установок): LC CTYPE От установок этой категории зависит поведение методов обычных строк и функций модуля string, предназначенных для анализа и изменения регистра букв. LC COLLATE От установок этой категории зависит поведение функций strcoll() и strxfrm() . LC TIME От установок этой категории зависит поведение функции time.strftime(). 17.2 gettext - выдача сообщений на родном языке Модуль gettext предоставляет возможность модулям и приложениям выдавать сообщения на родном языке пользователя. Этот модуль поддерживает как интерфейс к каталогу сообщений GNU gettext, так и основанный на классах интерфейс более высокого уровня, который больше подходит для кода на языке Python. В обоих случаях Вы пишите модуль или приложение с сообщениями на одном естественном языке и предоставляете каталог переведенных сообщений на другие языки. Замечание: в текущих реализациях язык, на который осуществляется перевод, не зависит от национальных установок, выбранных с помощью функции locale.setlocaleO , а выбирается в зависимости от значений переменных окружения LANGUAGE, LC ALL, LC MESSAGES и LANG (первая из них, имеющая непустое значение) или указывается явно. Далее мы будем обозначать строку с кодом выбранного языка как language. 17.2.1 Интерфейс GNU gettext Используя интерфейс GNU gettext, Вы затрагиваете все приложение. Обычно это то, что нужно для одноязычных приложений. Если же Вы пишите модуль или Вашему приложению необходимо менять язык "на лету", Вам следует использовать интерфейс основанный на классах. LC MONETARY Категория для формата денежных сумм (см. описание функции localeconv() выше). LC MESSAGES (UNIX) Эта категория обычно определяет язык выводимых сообщений. Однако в настоящих реализациях интерпретатора установки этой категории не используются (см. описание модуля gettext). LC NUMERIC Категория, определяющая формат чисел. Влияет на поведение функций format() , atoi() , atof() и str() , определенных в этом модуле. LC ALL Комбинация всех категорий. При использовании этой константы для изменения текущих установок функция setlocale() пытается изменить установки для всех категорий. Если изменение хотя бы для одной категории невозможно, установки для всех категорий остаются прежними. Если Вы используете LC ALL для определения текущих установок, возвращается строка, указывающая установки для каждой категории. Эта строка может быть использована в дальнейшем для восстановления установок. 17.2. gettext - выдача сообщений на родном языке 241 bindtextdomain( domain [, localedir]) Привязывает домен с именем domain к каталогу localedir. В дальнейшем модуль gettext будет искать двоичный файл с переведенными сообщениями с путем os.path.join(localedir, language, LC MESSAGES, domain +.mo). Если аргумент localedir опущен или равен None, возвращает каталог, к которому на данный момент привязан домен domain (по умолчанию используется каталог os.path.join(sys.prefix, share, locale) ). textdomain( [domain]) Если задан и не равен None аргумент domain, возвращает текущий домен, иначе устанавливает глобальный (для всего приложения) домен равным domain и возвращает его. gettext( message) Возвращает перевод сообщения message на язык, соответствующий текущим национальным установкам. Поиск перевода производится в базе данных сообщений для текущего домена. Обычно эта функция используется под именем () в глобальном пространстве имен приложения (см. пример ниже). dgettext( domain, message) Работает аналогично функции gettext() , но ищет перевод в базе данных для домена domain. GNU gettext также определяет функцию dcgettext(), однако она считается бесполезной и поэтому на данный момент не реализована. Приведем пример типичного использования описанного интерфейса: import gettext gettext.textdomain(myapplication) = gettext.gettext # Вывод строки, подлежащей переводу: print (This is a translatable string.) 17.2.2 Интерфейс, основанный на классах Этот интерфейс предоставляет большие гибкость и удобства, чем интерфейс GNU gettext. Поэтому мы рекомендуем его для использования в модулях и приложениях, написанных на языке Python. Модуль gettext определяет "класс-переводчик", который реализует чтение .mo -файлов и предоставляет методы, возвращающие обычные строки или строки Unicode с переводом. Экземпляры этого класса могут установить функцию () во встроенном пространстве имен. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 [ 74 ] 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 |