Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 4165cf4

Browse files
Create Ancient_Script_Translator.py
1 parent 662c6b1 commit 4165cf4

File tree

1 file changed

+74
-0
lines changed

1 file changed

+74
-0
lines changed

‎A/Ancient_Script_Translator.py

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
import re
2+
from dataclasses import dataclass
3+
from typing import Dict, List
4+
5+
@dataclass
6+
class ScriptRule:
7+
pattern: str
8+
replacement: str
9+
10+
class AncientScriptTranslator:
11+
def __init__(self):
12+
self.scripts: Dict[str, List[ScriptRule]] = {
13+
"linear_b": [
14+
ScriptRule(r"𐀀", "a"),
15+
ScriptRule(r"𐀁", "e"),
16+
ScriptRule(r"𐀂", "i"),
17+
ScriptRule(r"𐀃", "o"),
18+
ScriptRule(r"𐀄", "u"),
19+
# Add more Linear B characters and their translations
20+
],
21+
"cuneiform": [
22+
ScriptRule(r"𒀀", "a"),
23+
ScriptRule(r"𒁀", "bi"),
24+
ScriptRule(r"𒂠", "ka"),
25+
ScriptRule(r"𒃠", "ga"),
26+
ScriptRule(r"𒅆", "mu"),
27+
# Add more cuneiform characters and their translations
28+
],
29+
"hieroglyphs": [
30+
ScriptRule(r"𓂋", "r"),
31+
ScriptRule(r"𓃀", "b"),
32+
ScriptRule(r"𓅓", "m"),
33+
ScriptRule(r"𓈖", "n"),
34+
ScriptRule(r"𓊃", "s"),
35+
# Add more hieroglyph characters and their translations
36+
]
37+
}
38+
39+
def translate(self, text: str, script: str) -> str:
40+
if script not in self.scripts:
41+
raise ValueError(f"Unsupported script: {script}")
42+
43+
translated = text
44+
for rule in self.scripts[script]:
45+
translated = re.sub(rule.pattern, rule.replacement, translated)
46+
return translated
47+
48+
def add_rule(self, script: str, pattern: str, replacement: str):
49+
if script not in self.scripts:
50+
self.scripts[script] = []
51+
self.scripts[script].append(ScriptRule(pattern, replacement))
52+
53+
def remove_rule(self, script: str, pattern: str):
54+
if script in self.scripts:
55+
self.scripts[script] = [rule for rule in self.scripts[script] if rule.pattern != pattern]
56+
57+
# Example usage
58+
translator = AncientScriptTranslator()
59+
60+
linear_b_text = "𐀀𐀁𐀂𐀃𐀄"
61+
print(f"Linear B: {linear_b_text}")
62+
print(f"Translated: {translator.translate(linear_b_text, 'linear_b')}")
63+
64+
cuneiform_text = "𒀀𒁀𒂠𒃠𒅆"
65+
print(f"Cuneiform: {cuneiform_text}")
66+
print(f"Translated: {translator.translate(cuneiform_text, 'cuneiform')}")
67+
68+
hieroglyphs_text = "𓂋𓃀𓅓𓈖𓊃"
69+
print(f"Hieroglyphs: {hieroglyphs_text}")
70+
print(f"Translated: {translator.translate(hieroglyphs_text, 'hieroglyphs')}")
71+
72+
# Adding a new rule
73+
translator.add_rule("linear_b", r"𐀅", "jo")
74+
print(f"Translated with new rule: {translator.translate('𐀀𐀁𐀂𐀃𐀄𐀅', 'linear_b')}")

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /