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 d5bc494

Browse files
Merge pull request #303 from rookieanvesh/patch-1
Create Ancient_Script_Translator.py
2 parents 9435ee9 + 4165cf4 commit d5bc494

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 によって変換されたページ (->オリジナル) /