我的最终目标是让知道乌尔都语而不是英语的人能够在Python环境中进行编程。
乌尔都语是从左到右书写的。我想有所有python关键字的Urdu版本,并使用Urdu字符来定义变量/函数/类名。
这个目标可能吗?如果是,那么还需要做什么?
我已经可以看到标准库函数仍然是英文的一个问题。
更新 这个是否应该完成当然是一个非常有趣的辩论话题,我想谈谈。 然而,它实际上是否可能以及如何?
我喜欢Python,而且我认识很多聪明的人,他们可能永远不会被正确地教英语,只有乌尔都语,因此这个想法。
答案 0 :(得分:4)
Chinese Python曾经允许程序员完全用中文编写源代码,包括翻译的模块名称,函数名称和所有关键字。这是他们网站上的代码示例:
載入 系統 # 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)
可悲的是,它不再是一个活跃的项目,但您可以获取源代码并找出他们所做的更改,以便了解您自己的实现。 (了解他们失败的原因也可以帮助您了解在使这样的系统成功时您将面临哪些挑战)。
答案 1 :(得分:1)
是的,有可能。但它需要您从源代码下载Python,并更改源代码并进行编译。如果我从另一个关于同一主题的讨论中正确地记得,那么只需更改语法并重新生成一些文件,除非您正在进行元编程和事物等高级操作。
答案 2 :(得分:1)
你做了什么? Python 3允许您为所有函数,类和变量名使用Unicode。检查一下,你只需要确保你的脚本使用utf-8--这主要是你编辑的问题。使用混合的RTL / LTR问题优雅地处理也是编辑的问题。 (该功能在PEP 3131)
中讨论python语言没有“方言”,即备选的关键字集。如果您对乌尔都语标识符不满意并且您决定拥有完全乌尔都语的经验,那么您可以编写一个预处理器,将乌尔都语“关键字”映射到相应的(英语)python关键字。
在交互式控制台和导入模块周围包装这种预处理器应该不会太难,这样它对用户透明地工作(并且不需要从源代码重新编译python)。如果你可以编程并希望尝试这个大小,请查看python的code
模块。它旨在读取python源并将其发送以进行编译和执行。您只需介入并添加预处理步骤。
我会为关键字和内置函数使用预处理器。但实际上,为您选择的通用模块提供本地化包装更加容易。让我们演示一个包装器模块RE.py
,它包含常规re
的所有导出的标识符,但重命名为大写:
import re as _re
for name in _re.__all__:
locals()[name.upper()] = _re.__dict__[name]
就是这样!您现在可以导入此模块并使用它:
import RE
docs = RE.SUB(r"\bEnglish\b", r"Urdu", docs)
使用乌尔都语单词而不是大写字母(当然您需要单独指定每个单词),然后您就可以了。如你所说,这一切是一个好主意是一个不同的问题。