我的最终目标是让懂乌尔都语而非英语的人能够在 Python 环境中编程。
乌尔都语从左到右书写。我想拥有所有 python 关键字的乌尔都语版本并使用乌尔都语字符来定义变量/函数/类名。
这个目标可能吗?如果是,那么需要做什么?
我已经看到标准库函数仍然是英文的一个问题。
更新: 是否应该这样做当然是一个非常有趣的辩论话题,我很想谈一谈。然而,这真的可能吗?怎么做?
我喜欢 Python,而且我认识很多聪明的人,他们可能永远学不会正确的英语,只有乌尔都语,因此有了这个想法。
我的最终目标是让懂乌尔都语而非英语的人能够在 Python 环境中编程。
乌尔都语从左到右书写。我想拥有所有 python 关键字的乌尔都语版本并使用乌尔都语字符来定义变量/函数/类名。
这个目标可能吗?如果是,那么需要做什么?
我已经看到标准库函数仍然是英文的一个问题。
更新: 是否应该这样做当然是一个非常有趣的辩论话题,我很想谈一谈。然而,这真的可能吗?怎么做?
我喜欢 Python,而且我认识很多聪明的人,他们可能永远学不会正确的英语,只有乌尔都语,因此有了这个想法。
中文 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)
可悲的是,它不再是一个活跃的项目,但您可以获取源代码并找出它们更改的内容,以便为您自己的实现找到一个想法。(了解它们失败的原因也可以帮助您了解在使这样的系统成功时将面临哪些挑战)。
是的,有可能。但它需要你从源代码下载 Python,并更改源代码并编译它。如果我从关于同一主题的另一次讨论中没记错的话,只需更改语法并重新生成一些文件,除非您在执行元编程之类的高级工作。
您可以使用想法项目来转换关键字,它有一个用于制作一种法语 Python的示例。
它基于python import-hook,所以它在普通的 python3 中运行。
我使用这个项目用希伯来语构建了一个 python(它也使用了 python 内置函数,而不仅仅是关键字),它看起来更像一个普通的 python
你试过什么?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)
使用乌尔都语单词而不是大写字母(当然您需要单独指定每个单词),然后您就可以使用了。正如你所说,这一切是否是一个好主意是一个不同的问题。