|
|
@@ -1,48 +0,0 @@
|
|
|
-# -*- coding: utf-8 -*-
|
|
|
-"""
|
|
|
- babel.lists
|
|
|
- ~~~~~~~~~~~
|
|
|
-
|
|
|
- Locale dependent formatting of lists.
|
|
|
-
|
|
|
- The default locale for the functions in this module is determined by the
|
|
|
- following environment variables, in that order:
|
|
|
-
|
|
|
- * ``LC_ALL``, and
|
|
|
- * ``LANG``
|
|
|
-
|
|
|
- :copyright: (c) 2015 by the Babel Team.
|
|
|
- :license: BSD, see LICENSE for more details.
|
|
|
-"""
|
|
|
-
|
|
|
-from babel.core import Locale, default_locale
|
|
|
-
|
|
|
-DEFAULT_LOCALE = default_locale()
|
|
|
-
|
|
|
-
|
|
|
-def format_list(lst, locale=DEFAULT_LOCALE):
|
|
|
- """
|
|
|
- Format the items in `lst` as a list.
|
|
|
-
|
|
|
- >>> format_list(['apples', 'oranges', 'pears'], 'en')
|
|
|
- u'apples, oranges, and pears'
|
|
|
- >>> format_list(['apples', 'oranges', 'pears'], 'zh')
|
|
|
- u'apples\u3001oranges\u548cpears'
|
|
|
-
|
|
|
- :param lst: a sequence of items to format in to a list
|
|
|
- :param locale: the locale
|
|
|
- """
|
|
|
- locale = Locale.parse(locale)
|
|
|
- if not lst:
|
|
|
- return ''
|
|
|
- if len(lst) == 1:
|
|
|
- return lst[0]
|
|
|
- if len(lst) == 2:
|
|
|
- return locale.list_patterns['2'].format(*lst)
|
|
|
-
|
|
|
- result = locale.list_patterns['start'].format(lst[0], lst[1])
|
|
|
- for elem in lst[2:-1]:
|
|
|
- result = locale.list_patterns['middle'].format(result, elem)
|
|
|
- result = locale.list_patterns['end'].format(result, lst[-1])
|
|
|
-
|
|
|
- return result
|