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.
Dependencies
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žᾏⅧ㈴㋹퓛ﺏ𝟘🚦﹎Ѝא》'
License
This is released under an MIT license. See the LICENSE file in this repository for more information.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for pseudol10nutil-0.1.dev2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 56286dc5e8de9e92eb829f5f06574c681529c57e1c32693d97543ac0be94233f |
|
MD5 | a941d03a650e0bab762ba5e26e25e152 |
|
BLAKE2b-256 | 733d73e9bb8d44993d8d5dc82fab70523d518f6b4149f80692d5645bb0bc2034 |