Progtwigción en Python usando un idioma no inglés para palabras clave y variables

Mi objective final es permitir que las personas que conocen el idioma urdu y no el inglés puedan progtwigr en un entorno Python.

Urdu se escribe de izquierda a derecha. Me imagino tener versiones en urdu de todas las palabras clave de python y usar caracteres en urdu para definir nombres de variable / función / clase.

¿Es esta meta posible? Si es así, entonces, ¿qué habrá que hacer todo?

Ya puedo ver un problema en el que las funciones estándar de la biblioteca aún estarían en inglés.

Actualización: si esto debe hacerse o no es ciertamente un tema de debate muy interesante, del que me encantaría hablar. Sin embargo, ¿es realmente posible y cómo?

Amo Python y conozco a muchas personas inteligentes que tal vez nunca aprendan inglés correctamente, solo urdu, de ahí el pensamiento.

Chinese Python solía permitir a los progtwigdores escribir código fuente completamente en chino, incluidos los nombres de los módulos traducidos, los nombres de funciones y todas las palabras clave. Aquí hay un ejemplo de código de su sitio web:

 載入 系統 # import sys文件名 = 系統.參數[1:] # filenames = sys.argv[1:]定義 修正行尾(文件): # def fixline(file):內文 = 打開(文件).讀入() # text = open(file).read()內文 = 內文.替換('\n\r','\n') # text = text.replace('\n\r', '\n')傳回 內文 # return text取 文件 自 文件名: # for file in filenames:寫 修正行尾(文件) # print fixline(file) 

Lamentablemente, ya no es un proyecto activo, pero puede obtener la fuente y averiguar qué han cambiado para obtener una idea para su propia implementación. (Aprender por qué fallaron también puede ayudarlo a comprender qué desafíos tendrá para lograr que tal sistema tenga éxito).

Sí, es posible. Pero requiere que descargues Python desde la fuente, cambies el código fuente y lo compiles. Si recuerdo correctamente de otra discusión sobre el mismo tema, cambiar la gramática y regenerar algunos archivos es todo lo que se necesita, excepto cuando estás haciendo cosas avanzadas como la metaprogtwigción y otras cosas.

¿Qué has probado? Python 3 le permite usar Unicode para todos sus nombres de funciones, clases y variables. Compruébelo, solo necesita asegurarse de que está utilizando utf-8 para su secuencia de comandos; es principalmente un asunto de su editor. Tratar con gracia con los problemas mixtos de RTL / LTR es también el problema de su editor. (La característica se discute en PEP 3131 )

El lenguaje de Python no tiene “dialectos”, es decir, conjuntos alternativos de palabras clave. Si no está satisfecho con los identificadores de urdu y está determinado a tener una experiencia completamente en idioma urdu, podría escribir un preprocesador que asigne “palabras clave” de urdu a la palabra clave correspondiente (en inglés) de python.

No debería ser demasiado difícil envolver este tipo de preprocesador alrededor de la consola interactiva y los módulos de importación, para que funcione de manera transparente para el usuario (y sin volver a comstackr Python desde la fuente). Si puedes progtwigr y quieres probar esto en tamaño, revisa el módulo de code de Python. Está diseñado para leer la fuente de Python y enviarla para comstackrla y ejecutarla. Solo debes ingresar y agregar un paso de preprocesamiento.

Usaría un preprocesador para palabras clave y elementos integrados. Pero proporcionar envolturas localizadas para su elección de módulos comunes es incluso más fácil, en realidad. RE.py con un módulo de envoltura RE.py que contiene todos los identificadores exportados de re regular, pero renombrados a mayúsculas:

 import re as _re for name in _re.__all__: locals()[name.upper()] = _re.__dict__[name] 

¡Eso fue todo! Ahora puedes importar este módulo y usarlo:

 import RE docs = RE.SUB(r"\bEnglish\b", r"Urdu", docs) 

Use palabras en urdu en lugar de mayúsculas (por supuesto, debe especificar cada una individualmente) y estará en camino. Como dices, si todo esto es una buena idea es una pregunta diferente.