~launchpad-pqm/launchpad/devel

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
RequestPreferredLanguages.getPreferredLanguages() returns language objects
based on the Accept-language header. If we can't encode the language code
in ASCII we just skip them.

    >>> from lp.services.webapp.servers import LaunchpadTestRequest
    >>> from lp.services.geoip.model import RequestPreferredLanguages

    >>> langs = {'HTTP_ACCEPT_LANGUAGE': 'pt_BR, Espa\xf1ol'}
    >>> request = LaunchpadTestRequest(**langs)
    >>> [l.code
    ...  for l in RequestPreferredLanguages(request).getPreferredLanguages()]
    [u'pt_BR']

    >>> langs = {'HTTP_ACCEPT_LANGUAGE': u'pt_BR, Espa\xf1ol'}
    >>> request = LaunchpadTestRequest(**langs)
    >>> [l.code
    ...  for l in RequestPreferredLanguages(request).getPreferredLanguages()]
    [u'pt_BR']

The getPreferredLanguages() method returns unique codes.

    >>> langs = {
    ...     'HTTP_ACCEPT_LANGUAGE': 'en-US,en;q=0.9,de-CH;q=0.8,de;q=0.6,'
    ...                             'en-GB;q=0.4,en-us;q=0.3,en;q=0.1'
    ...     }
    >>> request = LaunchpadTestRequest(**langs)
    >>> [l.code
    ...  for l in RequestPreferredLanguages(request).getPreferredLanguages()]
    [u'en', u'en_GB', u'de']