Tantôt en Anglais, tantôt en Français, je change la langue par défaut de mon terminal assez régulièrement. Et c'est au cours d'un changement que je suis tombé sur une locale étrange "[Developer] Accented English", que j'ai bien évidemment validé. Je suis curieux.
Probablement qu'un jour ça me perdra, en attendant ça m'amuse.
Attention, ce mode rend votre terminal instable éи ρłűś ďé łé ŕéиďŕé ď샃ìčìłéɱéиţ łìśìƃłé !
Comme vous pouvez le voir sur la vignette ci-contre, cette locale est la locale par défaut, du moins le contenu du texte, sauf que les lettres sont piochées dans les alphabets d'un peu tout le monde.
Vous reconnaissez le i cyrillique en minuscule (и), le tréma, le circonflexe, le caron, la cédille … et encore plein d'autres cas de la diacritique latine.
Codons !
Je n'ai trouvé aucune explication sur cette locale dans la documentation Android, probablement que les cas concrets d'utilisation sont explicités dans les sources.
En attendant de lui trouver un sens, faisons-en un easter-egg : si un autre développeur utilise mon app en Accented English, autant lui être agréable et être raccord avec le reste de son terminal.
Le code de la locale est zz_ZZ (pays région) il convient de créer "values-zz" et d'y placer le bon fichier "strings.xml", fidèle reflet de values/strings.xml !
En attendant de mettre la main sur la table de conversion, je vous propose celle-ci :
'a' : "ǎ", 'b' : "ƃ", 'c' : "č", 'd' : "ď", 'e' : "é", 'f' : "ƒ", 'g' : "ǧ", 'h' : "ℏ", 'i' : "ì", 'j' : "ĵ", 'k' : "ķ", 'l' : "ł", 'm' : "ɱ", 'n' : "и", 'o' : "ō", 'p' : "ρ", 'q' : "ʠ", 'r' : "ŕ", 's' : "ś", 't' : "ţ", 'u' : "ű", 'v' : "ʋ", 'w' : "ŵ", 'x' : "ẍ", 'y' : "ẏ", 'z' : "ž", 'A' : "Â", 'B' : "Ɓ", 'C' : "Ç", 'D' : "Ð", 'E' : "Ë", 'F' : "Ƒ", 'G' : "Ǧ", 'H' : "Ȟ", 'I' : "Í", 'J' : "Ĵ", 'K' : "Ķ", 'L' : "Ł", 'M' : "Ḿ", 'N' : "Ň", 'O' : "Ô", 'P' : "Ƥ", 'Q' : "Q", 'R' : "Ŕ", 'S' : "Ş", 'T' : "Ť", 'U' : "Ü", 'V' : "℣", 'W' : "₩", 'X' : "Ẋ", 'Y' : "¥", 'Z' : "Ż"
Le visuel est cohérent avec les choix faits pour Android.
Même si la conversion est en fait triviale, il est possible de l'automatiser avec quelques lignes de python :
Utilisation : ./script.py input.xml output.xml
#!/usr/bin/env python3 # -*- coding: utf-8 -*- ''' __author__ = "Cekage" __copyright__ = "Copyleft 2013, Cekage Studio" __credits__ = ["cekage", "fileformat"] __license__ = "WTFPL" __version__ = "1" __maintainer__ = "cekage" __email__ = "android.dev@cekage.net" __status__ = "ƤŔÔÐÜÇŤÍÔŇ" # Ǧŕééţž ţō http://www.fileformat.info/info/unicode/category/Ll/list.htm # Ǧŕééţž ţō http://www.fileformat.info/info/unicode/category/Lu/list.htm ''' import sys import getopt import os from xml.etree import ElementTree convert_table = { 'a' : "ǎ", 'b' : "ƃ", 'c' : "č", 'd' : "ď", 'e' : "é", 'f' : "ƒ", 'g' : "ǧ", 'h' : "ℏ", 'i' : "ì", 'j' : "ĵ", 'k' : "ķ", 'l' : "ł", 'm' : "ɱ", 'n' : "и", 'o' : "ō", 'p' : "ρ", 'q' : "ʠ", 'r' : "ŕ", 's' : "ś", 't' : "ţ", 'u' : "ű", 'v' : "ʋ", 'w' : "ŵ", 'x' : "ẍ", 'y' : "ẏ", 'z' : "ž", 'A' : "Â", 'B' : "Ɓ", 'C' : "Ç", 'D' : "Ð", 'E' : "Ë", 'F' : "Ƒ", 'G' : "Ǧ", 'H' : "Ȟ", 'I' : "Í", 'J' : "Ĵ", 'K' : "Ķ", 'L' : "Ł", 'M' : "Ḿ", 'N' : "Ň", 'O' : "Ô", 'P' : "Ƥ", 'Q' : "Q", 'R' : "Ŕ", 'S' : "Ş", 'T' : "Ť", 'U' : "Ü", 'V' : "℣", 'W' : "₩", 'X' : "Ẋ", 'Y' : "¥", 'Z' : "Ż"} def accentualize(text): ''' returns text with all known chars replaced by accented one ''' accentualized="" for char in list(text): if char in convert_table.keys(): accentualized += convert_table[char] else: accentualized += char return accentualized def convertXML(xmlfrom,toxml): ''' reads xmlfrom, loads <string>, accentualizes the text and finally writes to toxml ''' document = ElementTree.parse(xmlfrom) resroot = document.getroot() for string in resroot.findall('string'): string.text = accentualize(string.text) document.write(toxml,encoding='UTF-8',xml_declaration=True) def main(): if len(sys.argv) < 3: sys.exit('Üśǎǧé: %s ìиρűţ.ẍɱł ōűţρűţ.ẍɱł' % sys.argv[0]) if not os.path.exists(sys.argv[1]): sys.exit('ËŔŔÔŔ: %s ŵǎś иōţ ƒōűиď!' % sys.argv[1]) convertXML(sys.argv[1],sys.argv[2]) if __name__ == "__main__": main()Voilà ce que ça donne :
L'inutile donc indispensable de la journée (fait en 10 minutes à midi) : Le convertisseur XML pour la locale zz. pic.twitter.com/s5yILbtsNv
— cekage (@cekagedev) September 9, 2013
Quelques limites à cette locale.
Passer à cette locale va rendre votre terminal instable le temps son utilisation, si vous avez besoin de stabilité ne l'utilisez pas en permanence.Voici deux briques de base du système android qui vont tôt ou tard vous poser problème :
- Settings.apk ( l'application Parametres )

- Google Search

Enjoy :-)
Aucun commentaire:
Enregistrer un commentaire