Compare commits

8 Commits

Author SHA1 Message Date
ccee29236e Merge pull request 'bumped version' (#6) from version-bump into main
All checks were successful
Pack Validation CI / validate (push) Successful in 7s
Publish Language Pack / verify (push) Successful in 7s
Publish Language Pack / publish (push) Successful in 14s
Reviewed-on: #6
2026-05-21 15:02:40 +00:00
CT
922a2c7b30 bumped version
All checks were successful
Pack Validation CI / validate (pull_request) Successful in 8s
2026-05-21 10:01:48 -05:00
b5ecb796da Merge pull request 'added errors and exceptions' (#5) from exceptions into main
All checks were successful
Pack Validation CI / validate (push) Successful in 8s
Reviewed-on: #5
2026-05-21 15:00:14 +00:00
CT
ab58b4a830 added errors and exceptions
All checks were successful
Pack Validation CI / validate (pull_request) Successful in 9s
2026-05-21 09:58:51 -05:00
0b86507244 Merge pull request 'translate-keywords' (#4) from translate-keywords into main
All checks were successful
Pack Validation CI / validate (push) Successful in 8s
Trigger Docs Rebuild / trigger (push) Successful in 3s
Publish Language Pack / verify (push) Successful in 7s
Publish Language Pack / publish (push) Successful in 15s
Reviewed-on: #4
2026-05-21 03:48:52 +00:00
CT
935418ef58 removed reverse and sort
All checks were successful
Pack Validation CI / validate (pull_request) Successful in 8s
2026-05-20 22:47:48 -05:00
CT
9a1510c467 finished keywords and builtins
Some checks failed
Pack Validation CI / validate (pull_request) Failing after 8s
2026-05-20 22:41:05 -05:00
CT
a91846e44a setup + added some terms 2026-05-19 19:19:16 -05:00
5 changed files with 158 additions and 145 deletions

View File

@@ -0,0 +1 @@
# foreignthon-zh

View File

@@ -3,16 +3,17 @@ requires = ["hatchling"]
build-backend = "hatchling.build" build-backend = "hatchling.build"
[project] [project]
name = "foreignthon-template" # TODO: Modify to language code name = "foreignthon-zh"
version = "0.0.0" version = "0.2.0"
description = "[Template] language pack for ForeignThon." # TODO: Replace [Template] description = "Chinese language pack for ForeignThon."
license = { text = "GPL v3" } license = { text = "GPL v3" }
requires-python = ">=3.9" requires-python = ">=3.9"
authors = [ authors = [
{ name = "John Doe", email = "loremipsum@example.com" } # TODO: Swap with real information { name = "Cody Trainer" },
] ]
keywords = ["foreignthon", "template", "template"] # TODO: Swap with real information keywords = ["foreignthon", "chinese", "中文", "mandarin"]
dependencies = ["foreignthon>=0.5.3"] # TODO: Update Version to Latest
dependencies = ["foreignthon>=0.5.3"]
classifiers = [ classifiers = [
"Programming Language :: Python :: 3", "Programming Language :: Python :: 3",
@@ -21,10 +22,10 @@ classifiers = [
] ]
[project.urls] [project.urls]
Homepage = "https://git.keshavanand.net/foreign-thon/foreignthon-template" # TODO: Update URL Homepage = "https://git.keshavanand.net/foreign-thon/foreignthon-zh"
[project.entry-points."foreignthon.langs"] [project.entry-points."foreignthon.langs"]
template = "foreignthon_template" # TODO: Swap in format "code = foreignthon_code" zh = "foreignthon_zh"
[tool.hatch.build.targets.wheel] [tool.hatch.build.targets.wheel]
packages = ["src/foreignthon_template"] # TODO: Change to src/foreignthon_code packages = ["src/foreignthon_zh"]

View File

@@ -1,132 +0,0 @@
{
"meta": {
"name": "Template",
"native_name": "Template",
"code": "template"
},
"keywords": {
"if": "if",
"else": "else",
"elif": "elif",
"for": "for",
"while": "while",
"def": "def",
"class": "class",
"return": "return",
"break": "break",
"continue": "continue",
"pass": "pass",
"try": "try",
"except": "except",
"finally": "finally",
"raise": "raise",
"with": "with",
"import": "import",
"from": "from",
"as": "as",
"in": "in",
"is": "is",
"and": "and",
"or": "or",
"not": "not",
"del": "del",
"global": "global",
"nonlocal": "nonlocal",
"assert": "assert",
"yield": "yield",
"await": "await",
"async": "async",
"lambda": "lambda",
"True": "True",
"False": "False",
"None": "None"
},
"builtins": {
"print": "print",
"input": "input",
"len": "len",
"range": "range",
"type": "type",
"int": "int",
"float": "float",
"str": "str",
"list": "list",
"dict": "dict",
"set": "set",
"tuple": "tuple",
"bool": "bool",
"open": "open",
"enumerate": "enumerate",
"map": "map",
"filter": "filter",
"sorted": "sorted",
"sum": "sum",
"min": "min",
"max": "max",
"abs": "abs",
"round": "round",
"all": "all",
"any": "any",
"next": "next",
"id": "id",
"chr": "chr",
"reversed": "reversed"
},
"exceptions": {
"Exception": "Exception",
"BaseException": "BaseException",
"ValueError": "ValueError",
"TypeError": "TypeError",
"KeyError": "KeyError",
"IndexError": "IndexError",
"AttributeError": "AttributeError",
"NameError": "NameError",
"ImportError": "ImportError",
"FileNotFoundError": "FileNotFoundError",
"RuntimeError": "RuntimeError",
"ZeroDivisionError": "ZeroDivisionError",
"SyntaxError": "SyntaxError",
"AssertionError": "AssertionError",
"MemoryError": "MemoryError",
"OverflowError": "OverflowError",
"RecursionError": "RecursionError",
"PermissionError": "PermissionError",
"TimeoutError": "TimeoutError",
"SystemExit": "SystemExit",
"KeyboardInterrupt": "KeyboardInterrupt"
},
"error_messages": {
"SyntaxError": "SyntaxError",
"ValueError": "ValueError",
"TypeError": "TypeError",
"KeyError": "KeyError",
"IndexError": "IndexError",
"AttributeError": "AttributeError",
"NameError": "NameError",
"ImportError": "ImportError",
"FileNotFoundError": "FileNotFoundError",
"ZeroDivisionError": "ZeroDivisionError",
"RecursionError": "RecursionError",
"RuntimeError": "RuntimeError",
"MemoryError": "MemoryError",
"OverflowError": "OverflowError",
"AssertionError": "AssertionError",
"PermissionError": "PermissionError",
"TimeoutError": "TimeoutError",
"KeyboardInterrupt": "KeyboardInterrupt"
},
"stdlib": {
"math": "math",
"sys": "sys",
"datetime": "datetime",
"time": "time",
"random": "random",
"collections": "collections",
"pathlib": "pathlib",
"re": "re"
},
"postfix_keywords": [
]
}

View File

@@ -1,5 +1,5 @@
from importlib.metadata import PackageNotFoundError, metadata, version
from importlib.resources import files from importlib.resources import files
from importlib.metadata import version, metadata, PackageNotFoundError
try: try:
package_name = (__package__ or "").replace("_", "-") package_name = (__package__ or "").replace("_", "-")
@@ -13,7 +13,7 @@ try:
# 2. Combine them into one single, clean list of unique names # 2. Combine them into one single, clean list of unique names
combined = [] combined = []
for item in (raw_authors + raw_emails): for item in raw_authors + raw_emails:
clean_name = item.split("<")[0].strip() clean_name = item.split("<")[0].strip()
if clean_name and clean_name not in combined: if clean_name and clean_name not in combined:
combined.append(clean_name) combined.append(clean_name)
@@ -24,6 +24,6 @@ except PackageNotFoundError:
__version__ = "0.0.0" __version__ = "0.0.0"
__authors__ = [] __authors__ = []
def get_pack_path(): def get_pack_path():
# TODO: Modify this path return files(__name__) / "zh.json"
return files(__name__) / "template.json"

143
src/foreignthon_zh/zh.json Normal file
View File

@@ -0,0 +1,143 @@
{
"meta": {
"name": "Chinese",
"native_name": "中文",
"code": "zh"
},
"keywords": {
"如果": "if",
"否则": "else",
"不然": "elif",
"对于": "for",
"只要": "while",
"函数": "def",
"定义": "def",
"类": "class",
"类别": "class",
"导入": "import",
"从": "from",
"名": "as",
"返回": "return",
"打断": "break",
"继续": "continue",
"忽略": "pass",
"试": "try",
"失败": "except",
"然后": "finally",
"提出": "raise",
"同": "with",
"在": "in",
"是": "is",
"和": "and",
"或": "or",
"不": "not",
"删除": "del",
"共用": "global",
"非本地": "nonlocal",
"断言": "assert",
"产生": "yield",
"等": "await",
"非同步": "async",
"匿名": "lambda",
"λ": "lambda",
"真": "True",
"假": "False",
"空": "None"
},
"builtins": {
"写": "print",
"打印": "print",
"扫描": "input",
"长度": "len",
"范围": "range",
"类型": "type",
"数字": "int",
"浮点数": "float",
"字符串": "str",
"列表": "list",
"字典": "dict",
"序列": "set",
"元組": "tuple",
"布尔": "bool",
"打开": "open",
"枚举": "enumerate",
"图": "map",
"滤": "filter",
"已排序": "sorted",
"已反向": "reversed",
"总和": "sum",
"最小": "min",
"最大": "max",
"绝对值": "abs",
"舍去": "round",
"都": "all",
"任何": "any",
"是实例": "isinstance",
"有属性": "hasattr",
"取属性": "getattr",
"设属性": "setattr",
"以文字表示": "repr",
"格式化": "format",
"变量": "vars",
"下": "next",
"鉴别": "id",
"字碼": "chr",
"十六进制": "hex",
"二进制": "bin",
"八进制": "oct"
},
"exceptions": {
"異常": "Exception",
"基异常": "BaseException",
"值异常": "ValueError",
"类型异常": "TypeError",
"键值异常": "KeyError",
"索引异常": "IndexError",
"属性异常": "AttributeError",
"名称异常": "NameError",
"载入异常": "ImportError",
"档案未找到异常": "FileNotFoundError",
"运行时异常": "RuntimeError",
"除零异常": "ZeroDivisionError",
"句法异常": "SyntaxError",
"断言异常": "AssertionError",
"记忆体异常": "MemoryError",
"溢值异常": "OverflowError",
"递归异常": "RecursionError",
"权限异常": "PermissionError",
"超时异常": "TimeoutError",
"退出系统": "SystemExit",
"键盘中断": "KeyboardInterrupt"
},
"error_messages": {
"SyntaxError": "句法异常",
"ValueError": "值异常",
"TypeError": "类型异常",
"KeyError": "键值异常",
"IndexError": "索引异常",
"AttributeError": "属性异常",
"NameError": "名称异常",
"ImportError": "载入异常",
"FileNotFoundError": "档案未找到异常",
"ZeroDivisionError": "除零异常",
"RecursionError": "递归异常",
"RuntimeError": "运行时异常",
"MemoryError": "属性异常",
"OverflowError": "属性异常",
"AssertionError": "属性异常",
"PermissionError": "权限异常",
"TimeoutError": "超时异常",
"KeyboardInterrupt": "键盘中断"
},
"stdlib": {
"数学": "math",
"系统": "sys",
"日期时间": "datetime",
"时间": "time",
"随机": "random",
"收藏": "collections",
"路径库": "pathlib",
"正则表达式": "re"
},
"postfix_keywords": []
}