Skip to main content

Classes and functions for performing pseudo-localization on strings.

Project description

Python module for performing pseudo-localization on strings. Tested against Python 2, Python3, PyPy and PyPy3.


This package has the following external dependencies:

  • six - for Python 2 to 3 compatibility

PseudoL10nUtil class

Class for pseudo-localizing strings. The class currently has the following members:

  • transforms - field that contains the list of transforms to apply to the string. The transforms will be applied in order. Default is [transliterate_diacritic, pad_length, square_brackets]

  • pseudolocalize(s) - method that returns a new string where the transforms to the input string s have been applied.

pseudol10nutil.transforms module

The following transforms are currently available:

  • transliterate_diacritic - Takes the input string and returns a copy with diacritics added e.g. Hello -> Ȟêĺĺø.

  • transliterate_circled - Takes the input string and returns a copy with circled versions of the letters e.g. Hello -> Ⓗⓔⓛⓛⓞ

  • transliterate_fullwidth - Takes the input string and returns a copy with the letters converted to their fullwidth counterparts e.g. Hello -> Hello

  • pad_length - Appends a series of characters to the end of the input string to increase the string length per IBM Globalization Design Guideline A3: UI Expansion.

  • angle_brackets - Surrounds the input string with ‘《’ and ‘》’ characters.

  • curly_brackets - Surrounds the input string with ‘❴’ and ‘❵’ characters.

  • square_brackets - Surrounds the input string with ‘⟦’ and ‘⟧’ characters.

Format string support

When performing pseudo-localization on a string, the process will skip performing pseudo-localization on format strings. Python style format strings (e.g. {foo}) and printf style format strings (e.g. %s) are supported. For example:

Input [1]: Source {source1} returned 0 rows.
Output [1]: '⟦Șøüȓċê {source1} ȓêťüȓñêđ 0 ȓøẁš.﹎ЍאdžᾏⅧ㈴㋹퓛ﺏ𝟘🚦﹎ЍאdžᾏⅧ㈴㋹⟧

Input [2]: Source %(source2)s returned 1 row.
Output [2]: ⟦Șøüȓċê %(source2)s ȓêťüȓñêđ 1 ȓøẁ.﹎ЍאdžᾏⅧ㈴㋹퓛ﺏ𝟘🚦﹎ЍאdžᾏⅧ㈴㋹퓛⟧

Input [3]: Source %s returned %d rows.
Output [3]: ⟦Șøüȓċê %s ȓêťüȓñêđ %d ȓøẁš.﹎ЍאdžᾏⅧ㈴㋹퓛ﺏ𝟘🚦﹎ЍאdžᾏⅧ㈴㋹퓛ﺏ⟧

Example usage

Python 3 example:

>>> from pseudol10nutil import PseudoL10nUtil
>>> util = PseudoL10nUtil()
>>> s = u"The quick brown fox jumps over the lazy dog."
>>> util.pseudolocalize(s)
'⟦Ťȟê ʠüıċǩ ƀȓøẁñ ƒøẋ ǰüɱƥš øṽêȓ ťȟê ĺàźÿ đøğ.﹎ЍאdžᾏⅧ㈴㋹퓛ﺏ𝟘🚦﹎ЍאdžᾏⅧ㈴㋹퓛ﺏ𝟘🚦﹎Ѝא⟧'
>>> import pseudolocalize.transforms
>>> util.transforms = [pseudol10nutil.transforms.transliterate_fullwidth, pseudol10nutil.transforms.curly_brackets]
>>> util.pseudolocalize(s)
'❴The quick brown fox jumps over the lazy dog.❵'
>>> util.transforms = [pseudol10nutil.transforms.transliterate_circled, pseudol10nutil.transforms.pad_length, pseudol10nutil.transforms.angle_brackets]
>>> util.pseudolocalize(s)
'《Ⓣⓗⓔ ⓠⓤⓘⓒⓚ ⓑⓡⓞⓦⓝ ⓕⓞⓧ ⓙⓤⓜⓟⓢ ⓞⓥⓔⓡ ⓣⓗⓔ ⓛⓐⓩⓨ ⓓⓞⓖ.﹎ЍאdžᾏⅧ㈴㋹퓛ﺏ𝟘🚦﹎ЍאdžᾏⅧ㈴㋹퓛ﺏ𝟘🚦﹎Ѝא》'


This is released under an MIT license. See the LICENSE file in this repository for more information.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pseudol10nutil-0.1.dev2.tar.gz (9.7 kB view hashes)

Uploaded Source

Built Distribution

pseudol10nutil-0.1.dev2-py3-none-any.whl (10.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page