एक विदेशी भाषा में अपने अंग्रेजी स्रोत कोड का अनुवाद करें [बंद]


66

मैंने देखा है कि अंग्रेजी पर आधारित कंप्यूटर भाषाओं की अनुपातहीन संख्या है। मैं मौजूदा कंप्यूटर भाषाओं को विदेशी भाषाओं में अनुवाद करके इसे ठीक करने का प्रस्ताव करता हूं!

  • एक कंप्यूटर भाषा चुनें जो अंग्रेजी कीवर्ड / फ़ंक्शन का उपयोग करता है
  • अंग्रेजी के अलावा कोई भी प्राकृतिक * भाषा चुनें
  • एक ऐसा प्रोग्राम लिखें जो अपने स्वयं के स्रोत कोड या किसी अन्य प्रोग्राम को कीवर्ड / फ़ंक्शन के समान सबसेट का उपयोग करते हुए लिखा हो
  • स्रोत कोड और आउटपुट (अनुवादित कोड) पोस्ट करें

अपनी पोस्ट को कुछ इस तरह से शुरू करें:

बेसिक, फ्रेंच

या

बुनियादी, फ्रेंच - कलाकंद

यदि आप नहीं चाहते हैं तो आपको भाषा के नाम का अनुवाद नहीं करना है, यह सिर्फ मनोरंजन के लिए है!

आपको अपनी चुनी हुई भाषा में उन सभी खोजशब्दों / कार्यों का अनुवाद नहीं करना है, जिन्हें आप वास्तव में अपने स्रोत कोड में उपयोग करते हैं। उदाहरण के लिए, PHP में हजारों हैं इसलिए आपको निश्चित रूप से उन सभी का अनुवाद करने की आवश्यकता नहीं है! इसके अलावा, यदि आप किसी भी टिप्पणी का उपयोग करते हैं तो कृपया उन्हें भी अनुवाद करने की पूरी कोशिश करें! जब तक आपका कार्यक्रम समाप्त नहीं हो जाता है, तब तक कोई पहचानने योग्य अंग्रेजी शब्द नहीं होने चाहिए, जब तक कि वे विदेशी भाषा के लिए उपयुक्त न हों। तार में शब्दों का अनुवाद भी किया जाना चाहिए (मतलब आपका अनुवादित कार्यक्रम अंग्रेजी स्रोत कोड पर काम नहीं करेगा, भले ही इसे चलाया जा सकता है!)। उम्मीद है कि आपका प्रोग्राम एक प्रोग्रामर के लिए किसी तरह की समझ बनाएगा जो दूसरी भाषा बोलता है!

उदाहरण के लिए, फ्रेंच में if () {} elseif () {} else {}हो सकता है si () {} sinonsi () {} sinon {}! यदि आप पर्ल के elsifफ्रेंच में अनुवाद कर रहे थे , तो शायद आप दूसरा nतरीका छोड़ देंगे जिस तरह से eअंग्रेजी में दूसरा गिरा दिया गया है sinosi:। फ्रेंच में किसी और अधिक होने की संभावना हो जाएगा उप श्रेणियों तक पहुंच लेकिन वैकल्पिक सिनोन ( वरना , अन्यथा ) मेरे लिए अच्छे लगता है!

रचनात्मक बनो! कंप्यूटर और प्राकृतिक दोनों भाषाओं की भावना को पकड़ने की कोशिश करें! Brainfuck, CJam इत्यादि जैसी भाषाएँ जिनके पास अंग्रेजी टोकन नहीं हैं, का उपयोग नहीं किया जा सकता है। बुनियादी या कोबोल जैसी भाषाएं अधिक उपयुक्त हैं। सार्थक चर नामों का उपयोग करें और उन्हें तब तक अनुवादित करें जब तक कि आपकी भाषा उन चर नामों का समर्थन नहीं करती जो अंग्रेजी शब्द हो सकते हैं।

आप कंप्यूटर / प्राकृतिक भाषा के प्रत्येक संयोजन के लिए कई उत्तर दे सकते हैं। आप अनुवाद करने के लिए पुस्तकालय या किसी बाहरी उपकरण का उपयोग नहीं कर सकते हैं! आपके कोड को अनुवाद स्वयं करना चाहिए, न कि कुछ और अनुवाद करना चाहिए! यह कोड गोल्फ नहीं है! यदि आपका प्रोग्राम कोई इनपुट लेता है तो उसका केवल अपना सोर्स कोड होना चाहिए, यदि वह डिस्क से पढ़ता है तो वह केवल स्रोत फ़ाइल हो सकता है, आदि।

* इस चुनौती के प्रयोजनों के लिए मैं एस्पेरांतो, लोजबान, ज्वालामुखी, परिधान, आदि को प्राकृतिक भाषा मानूंगा। आप इस चुनौती के लिए अपनी भाषा का आविष्कार नहीं कर सकते हैं!

मैंने स्पष्ट नियम को रोकने के लिए एक नियम जोड़ा है। आप खोजशब्दों / कार्यों के किसी भी सबसेट को चुन सकते हैं - यहाँ तक कि उन सभी को भी - अनुवाद करने के लिए। आपका प्रोग्राम अपने आप में एक न्यूनतम के रूप में अनुवाद करने में सक्षम होना चाहिए, यानी यदि आपके मूल स्रोत में शब्द शामिल है, printतो print(42)इनपुट कोड में कहीं भी जोड़ना (अपने प्रोग्राम को ही नहीं) फिर भी सही परिणाम उत्पन्न करना चाहिए।

उदाहरण के लिए:

function translate() {
  ...
}
print(translate());

बना सकता है

fonction traduire() {
  ...
}
imprimer(traduire());

यदि इनपुट को बदल दिया जाता है

print(42);
function translate() {
  ...
}
print(translate());
print(42);

तब आउटपुट बन जाना चाहिए

imprimer(42);
fonction traduire() {
  ...
}
imprimer(traduire());
imprimer(42);

4
"प्रिंट" "छाप" बन जाएगा ("प्रिंटर" के रूप में), "एम्प्रेइन्टे" नहीं ("पदचिह्न" के रूप में) :)
क्वेंटिन

4
@ क्वेंटिन मैंने कभी दावा नहीं किया कि यह अच्छा फ्रेंच था!
सीजे डेनिस

13
मुझे लगता है कि एक्सेल मूल भाषा समर्थन हासिल है कि पर्याप्त बुरा है .. :( बनाता डिबगिंग सूत्रों तो बहुत कठिन।
मेव

1
@ क्वेंटिन मुझे अब आश्चर्य हो रहा है कि क्या फ्रांसीसी क्रियाओं को इनफिनिटिव के बजाय अनिवार्य का उपयोग करना चाहिए। एकमात्र समस्या यह है कि मेरा फ्रांसीसी इसके लिए पर्याप्त नहीं है!
सीजे डेनिस

3
@CJDennis फ्रेंच छद्मकोड में मैंने हमेशा शिशु को देखा है, लेकिन यदि आवश्यक हो तो मैं हाथ दे सकता हूं: पी
क्वेंटिन

जवाबों:


67

पायथन, कोइन ग्रीक - .ν

मेरी पसंदीदा प्रोग्रामिंग भाषा, मेरी पसंदीदा विदेशी भाषा में - एकदम सही! और यह चोट नहीं करता है कि नाम पहले से ही ग्रीक है

पायथन 3 में अनुवादक कार्यक्रम (देशी यूनिकोड समर्थन के लिए धन्यवाद):

with open(__file__, encoding="utf-8") as f:
    code = f.read()

replacements = [
    ("print", "γραψάτω"),
    ("input", "λαβέτω"),
    ("read", "ἀναγνώτω"),
    ("open", "ἀνεῳξάτω"),
    ("file", "βιβλίον"),
    ("import", "εἰσενεγκάτω"),
    ("encoding", "τύπος"),
    ("code", "λόγοι"),
    ("replacements", "νεόλογοι"),
    ("location", "τόπος"),
    ("old", "παλαιόν"),
    ("new", "νέον"),
    ("find", "εὑρέτω"),
    ("replace", "ἀλλαξάτω"),
    ("for", "ἕκαστον"),
    ("while", "ἐν τῷ"),
    ("elif", "εἰ δὲ"),
    ("if", "εἰ"),
    ("else", "εἰ δὲ μή"),
    ("is not", "οὐκ ἔστιν"),
    ("is", "ἔστιν"),
    ("not in", "οὐκ ἐν"),
    ("in", "ἐν"),
    ("and", "καὶ"),
    ("or", "ἢ"),
    ("not", "οὐ"),
    ("with", "μετὰ"),
    ("as", "ὡς"),
    ("re", "ῥλ"),
    ("sys", "σύς"),
    (":", "·"),
    ("ph", "φ"),
    ("th", "θ"),
    ("ch", "χ"),
    ("ps", "ψ"),
    ("a", "α"),
    ("b", "β"),
    ("c", "κ"),
    ("d", "δ"),
    ("e", "ε"),
    ("f", "φ"),
    ("g", "γ"),
    ("h", ""),
    ("i", "ι"),
    ("j", "ι"),
    ("k", "κ"),
    ("l", "λ"),
    ("m", "μ"),
    ("n", "ν"),
    ("o", "ο"),
    ("p", "π"),
    ("r", "ρ"),
    ("s ", "ς "),
    ("s.", "ς."),
    ("s,", "ς,"),
    ("s·", "ς·"),
    ("s", "σ"),
    ("t", "τ"),
    ("u", "ου"),
    ("v", "ου"),
    ("w", "ου"),
    ("x", "ξ"),
    ("y", "υ"),
    ("z", "ζ")
    ]

for old, new in replacements:
    if old == "for":
        location = 0
        while old in code[location:]:
            location = code.find(old, location)
            if code[location+3] != '"':
                location = code.find("in", location)
                code = code[:location] + "ἐκ" + code[location+2:]
            else:
                location += 1
    code = code.replace(old, new)

print(code)

कोड को अपने आप चलाने के परिणाम (बड़ी अनुवाद सूची के साथ)

μετὰ ἀνεῳξάτω(__βιβλίον__, τύπος="ουτφ-8") ὡς φ·
    λόγοι = φ.ἀναγνώτω()

νεόλογοι = [
    ("γραψάτω", "γραψάτω"),
    ("λαβέτω", "λαβέτω"),
    ("ἀναγνώτω", "ἀναγνώτω"),
    ...
    ]

ἕκαστον παλαιόν, νέον ἐκ νεόλογοι·
    εἰ παλαιόν == "ἕκαστον"·
        τόπος = 0
        ἐν τῷ παλαιόν ἐν λόγοι[τόπος·]·
            τόπος = λόγοι.εὑρέτω(παλαιόν, τόπος)
            εἰ λόγοι[τόπος+3] != '"'·
                τόπος = λόγοι.εὑρέτω("ἐν", τόπος)
                λόγοι = λόγοι[·τόπος] + "ἐκ" + λόγοι[τόπος+2·]
            εἰ δὲ μή·
                τόπος += 1
    λόγοι = λόγοι.ἀλλαξάτω(παλαιόν, νέον)

γραψάτω(λόγοι)

कोइन ग्रीक 2000 वर्ष पुराना है, इसलिए यह प्रोग्रामिंग शब्दों का अनुवाद करने में मजेदार था। यहाँ मेरा पसंदीदा कुछ है:

  • βι ( λβον = "स्क्रॉल" ( file)
  • γραψάτω = "लिखना" ( print)
  • λαβέτω = "लेना" ( input)
  • εἰσεν "=" लाओ "( import)
  • τύποτύπ = "पैटर्न, प्रकार" ( encoding)
  • λ οι / νεόλοόγοι = "शब्द" / "नए शब्द" ( code/ replacements)
  • ἕκα ...ον ... ἕκ = "प्रत्येक ... से" ( for ... in)
  • εἰ ... ή δὲ ... εἰ ή μ "=" यदि ... लेकिन यदि ... लेकिन यदि नहीं "( if ... elif ... else)
  • ἐν τῷ का शाब्दिक अर्थ है "में," लेकिन कुछ संदर्भों में यह "जब, जबकि" के लिए एक मुहावरा हो सकता है
  • "नियमित अभिव्यक्ति" बन गया ῥήμα λογικόν , "तर्कसंगत / उचित कहावत"; इस प्रकार, संक्षिप्त नाम reहै ῥλ

अधिकांश शब्द विकिपीडिया पर खोज कर भी देखे जा सकते हैं ।

कुछ अन्य मुख्य विशेषताएं:

  • अंग्रेजी प्रोग्रामिंग जरूरी क्रियायें (का एक समूह का उपयोग करता है print, read, replace)। मुझे लगता है कि प्राचीन यूनानियों को इस तरह से कंप्यूटर पर बात करने में थोड़ी मूर्खता महसूस होगी, इसलिए मैंने उन्हें सभी तीसरे व्यक्ति की अनिवार्यता बना दी : "इसे अवश्य छापना चाहिए," "इसे अवश्य पढ़ना चाहिए," "इसे अवश्य बदलना चाहिए।"
  • ग्रीक विराम चिह्न अंग्रेजी से थोड़ा अलग है। मैं इसके साथ ओवरबोर्ड नहीं गया था, क्योंकि मुझे यकीन नहीं है कि वर्ग कोष्ठक को कैसे बदलना है और इसके साथ अंडरस्कोर नहीं है, लेकिन मैंने कॉलोनियों को एओ टेलीया या "उच्च अवधि" ( ·) के लिए स्वैप किया था ।
  • उन शब्दों के लिए जो सूची में नहीं हैं, मैंने सभी निचले अक्षरों का भी अनुवाद करना सुनिश्चित किया है। हमेशा एक सीधे एक-से-एक पत्राचार नहीं होता है; तो उदाहरण के लिए, utfमें बदल जाता है ουτφ--which की तरह "ootf" के बारे में लगता है अगर आप इसे उच्चारण प्रयास करें।

यह अभी भी वांछित व्याकरण-वार होने के लिए बहुत कुछ छोड़ देता है। ग्रीक अंग्रेजी की तुलना में बहुत अधिक उच्चीकृत भाषा है, और सभी मामलों और संख्याओं को सही पाने के लिए मेरा कोड लगभग परिष्कृत नहीं है। उदाहरण के लिए, ααστον παλαι ,ν, ννον ἐκ νγλοoughtοι को पढ़ने के लिए चाहिए the νεολ read itiveν , उत्पत्ति के मामले में पूर्वसर्ग की वस्तु के साथ। हालांकि, मैं के बारे में डाल करने के लिए नहीं कर रहा हूँ कि इस में ज्यादा समय! देखो पर्याप्त रूप से ग्रीक है (कम से कम अप्रशिक्षित आंख के लिए) और उच्च अवधि एक अच्छा स्पर्श जोड़ते हैं। सब के सब, मैं परिणामों से बहुत संतुष्ट हूँ।


4
यह मुझे ग्रीक जैसा लगता है! मुझे ग्रीक समझ में नहीं आता है लेकिन ऐसा लगता है कि आप व्याकरण को सही करने के लिए कुछ परेशानी में गए हैं, इसलिए अच्छा किया! क्या आप अपनी अनुवाद सूची से कुछ पंक्तियों को शामिल करना चाहेंगे?
सीजे डेनिस

मैं अभी भी केवल देखता हूं νεόλογοι = [...]। क्या आप वहां कुछ पंक्तियाँ रख सकते हैं? पूरी सूची के लिए कोई ज़रूरत नहीं है!
सीजे डेनिस

सच है, यह बहुत दिलचस्प नहीं है, लेकिन यह पूरे आउटपुट का संकेत देता है!
सीजे डेनिस

क्या अनुवाद केवल स्ट्रिंग स्थिरांक को छोड़ना नहीं है और केवल कीवर्ड (और संभवतः चर नाम) का अनुवाद करना है?
कैस्परल्ड

@kasperd Au contraire : Words in strings should be translated too
DLOS

65

चिकन , चीनी - 鸡

चिकन जितना मैंने सोचा था उसका उपयोग करना उतना ही कठिन है।

एक अनुगामी न्यूलाइन नहीं है। लेकिन फाइनल chickenइस कार्यक्रम के अंत को चिह्नित करने के लिए है, जिसे एक खाली लाइन के साथ बदला जा सकता है।

मैं इस दुभाषिया का उपयोग कर रहा हूं , जो एक अतिरिक्त नई रेखा को प्रिंट करता है और इसे दबाया नहीं जा सकता है। इसलिए आउटपुट में मूल की तुलना में एक अधिक रेखा होती है, और यह चिकन प्रोग्राम को तोड़ सकता है। मुझे उम्मीद है कि यह इसे अमान्य नहीं करेगा।

इसने कुछ तरकीबों का इस्तेमाल किया जैसे इनपुट के इंडेक्स -1 से खाली स्ट्रिंग्स प्राप्त करना और खाली स्ट्रिंग्स के साथ तुलना करके ईओएफ का पता लगाना। मैंने compareकमांड का उपयोग स्टैक में अप्रयुक्त वस्तुओं को छोड़ने के लिए भी किया था , बिना प्रकार के बारे में परवाह किए बिना। वे अन्य दुभाषियों में काम नहीं कर सकते हैं। और यह स्ट्रिंग को UTF-8 बाइट्स के रूप में प्रिंट करता है, जहां अन्य दुभाषिए सीधे यूनिकोड वर्णों का समर्थन कर सकते हैं।

chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken
chicken chicken chicken chicken chicken chicken
chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken

chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken

chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken
chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken

chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken

chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken
chicken chicken chicken chicken chicken chicken
chicken
chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken

chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken

chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken


chicken

इस कोड को चलाने के लिए इस कमांड का उपयोग करें:

bin/chicken "`<file`" <file

जहां विचित्र रूप से पर्याप्त है, पहला fileइनपुट के लिए है, और दूसरा कोड के लिए है।

आउटपुट (चीनी शब्दों के बीच रिक्त स्थान का उपयोग नहीं करते हैं):

鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡
鸡鸡鸡鸡鸡鸡
鸡
鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡

鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡

鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡
鸡
鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡

鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡

鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡
鸡鸡鸡鸡鸡鸡
鸡
鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡

鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡

鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡
鸡鸡鸡鸡鸡鸡


鸡

इस कार्यक्रम के hसाथ बदलता है , अप्रभावित छोड़ देता है और बाकी सब चीजों को नजरअंदाज कर देता है।

और जैसा कि आप देखते हैं, यह हर वैध चिकन कार्यक्रम का अनुवाद कर सकता है।


3
आप जानते हैं कि इससे मुझे क्या लगता है-- youtu.be/vExjnn_3ep4
DLosc

5
Mmm! चीनी चिकन! मुझे लगता है कि मूल कार्यक्रम की तुलना में आउटपुट को समझना आसान है! क्या अब किसी और को ले जाने का मन करता है?
CJ डेनिस

2
अच्छा काम, जिमी
एलेक्स ए।

18
@AlexA। तब मेरा उपयोगकर्ता नाम बदल दिया गया।
jimmy23013


36

सी ++, लैटिन - सी प्लस प्लस

हाँ, यह भाषा के नाम का एक वास्तविक अनुवाद है। उनके पास प्लस चिन्ह नहीं था, लेकिन उन्होंने हमें प्लस शब्द दिया।

#include <iostream>
#include <fstream>

using namespace std;

static const char *reposita[][2] = {
    // Miscellanea
    {"iostream",    "flumineie"},       // flumine inducto/educto
    {"ofstream",    "fluminele"},       // flumine limae educto
    {"ifstream",    "flumineli"},       // flumine limae inducto
    {"fstream",     "fluminel"},        // flumine limae
    {"std",         "cmn"},             // commune
    {"string",      "chorda"},
    {"empty",       "vacuum"},
    {"size_t",      "t·amplitudinis"},  // typus amplitudinis
    {"find",        "inveni"},
    {"npos",        "posn"},            // positio nulla
    {"replace",     "repone"},
    {"main",        "primor"},
    {"getline",     "sumelinea"},

    // Verba gravia
    {"alignas",             "ordinasicut"},
    {"alignof",             "ordinatio"},
    {"asm",                 "cns"},             // construere
    {"auto",                "modic"},           // modicum
    {"bool",                "bic"},             // bicolore
    {"break",               "erumpe"},
    {"case",                "res"},
    {"catch",               "capta"},
    {"char16_t",            "t·littxvi"},       // typus litterae
    {"char32_t",            "t·littxxxii"},
    {"wchar_t",             "t·littv"},         // typus litterae vadae
    {"char",                "litt"},            // littera
    {"class",               "genus"},
    {"constexpr",           "dictconst"},       // dictum constante
    {"const_cast",          "funde·const"},     // funde constanter
    {"continue",            "procede"},
    {"decltype",            "typusdecl"},       // typus declaratus
    {"default",             "ultima"},
    {"delete",              "abole"},
    {"for",                 "cum"},
    {"if",                  "si"},
    {"struct",              "aedif"},           // aedificium
    {"double",              "biforme"},
    {"do",                  "fac"},
    {"dynamic_cast",        "funde·impigre"},
    {"else",                "alter"},
    {"explicit",            "directum"},
    {"export",              "expone"},
    {"false",               "falsum"},
    {"float",               "nante"},
    {"friend",              "amicus"},
    {"goto",                "iad"},
    {"inline",              "inlinea"},
    {"long",                "longum"},
    {"mutable",             "mutabilis"},
    {"namespace",           "plaganominis"},
    {"new",                 "novum"},
    {"noexcept",            "sineexim"},        // sine eximibus
    {"nullptr",             "sgnnullum"},       // signum nullum
    {"private",             "privata"},
    {"protected",           "protecta"},
    {"public",              "publica"},
    {"register",            "arca"},
    {"reinterpret_cast",    "funde·revertendo"},
    {"return",              "redde"},
    {"short",               "breve"},
    {"unsigned",            "sine·signo"},
    {"signed",              "signo"},
    {"sizeof",              "amplitudo"},
    {"static_assert",       "autuma·stant"},    // autuma stantiter
    {"static_cast",         "funde·stant"},     // funde stantiter
    {"static",              "stante"},
    {"switch",              "furca"},
    {"template",            "exemplar"},
    {"this",                "hoc"},
    {"thread_local",        "ligamen·loci"},
    {"throw",               "iaci"},
    {"true",                "verum"},
    {"try",                 "tempta"},
    {"typedef",             "typumdes"},        // typum designa
    {"typeid",              "signumtypi"},
    {"typename",            "nomentypi"},
    {"union",               "iugum"},
    {"using",               "utente"},
    {"virtual",             "virtuale"},
    {"void",                "inane"},
    {"volatile",            "volatilis"},
    {"while",               "dum"},

    // Numeri
    {"0",   "nihil"},
    {"1",   "i"},
    {"2",   "ii"},

    // Miscellanea
    {"length",      "longitudo"}
};

static void omnesRepone(string& chorda, const string& de, const string& ad) {
    if (de.empty()) {
        return;
    }
    size_t index = 0;
    while ((index = chorda.find(de, index)) != string::npos) {
        chorda.replace(index, de.length(), ad);
        index += ad.length();
    }
}

int main(int narg, const char * varg[]) {

    ifstream limaArchetypa(varg[1]);
    ofstream limaTransferenda(varg[2]);

    int elementa = sizeof(reposita) / sizeof(reposita[0]);
    string linea;
    while (getline(limaArchetypa, linea)) {
        for (int index = 0; index < elementa; ++index) {
            omnesRepone(linea, reposita[index][0], reposita[index][1]);
        }
        limaTransferenda << linea << "\n";
    }
    return 0;
}

टिप्पणियाँ:

  • कमांड लाइन पर एक इनपुट और आउटपुट फाइल लेता है
  • सभी कीवर्ड का अनुवाद करता है
  • मैंने एक पूर्ण रोमन अंक पार्सर नहीं लिखा था, लेकिन मुझे लगा कि कम से कम स्रोत में मौजूद संख्याओं का अनुवाद करना अच्छा होगा ( शून्य , i , और ii )
  • मैं सी ++ में इस्तेमाल किए गए प्रतीकों का अनुवाद करने के लिए नीचे नहीं गया था, जो कीड़े की एक विशाल कैन की तरह लग रहा था
  • कीवर्ड const, enum, int, और operatorनहीं बदलते। वे अब निरंतर , प्रगणक , इंटीग्रम और ऑपरेटर के लिए खड़े हैं ।
  • मुझे नहीं लगता था कि रोमन _एक शब्द विभक्त के रूप में होगा , इसलिए मैंने इंटरपैंट्स का इस्तेमाल किया ।
  • शब्द सीमाओं आदि की अनदेखी करते हुए अनुवाद बहुत गूंगा और अक्षम है।

आउटपुट:

#include <flumineie>
#include <fluminel>

utente plaganominis cmn;

stante const litt *reposita[][ii] = {
    // (redacta)
};

stante inane omnesRepone(chorda& chorda, const chorda& de, const chorda& ad) {
    si (de.vacuum()) {
        redde;
    }
    t·amplitudinis index = nihil;
    dum ((index = chorda.inveni(de, index)) != chorda::posn) {
        chorda.repone(index, de.longitudo(), ad);
        index += ad.longitudo();
    }
}

int primor(int narg, const litt * varg[]) {

    flumineli limaArchetypa(varg[i]);
    fluminele limaTransferenda(varg[ii]);

    int elementa = amplitudo(reposita) / amplitudo(reposita[nihil]);
    chorda linea;
    dum (sumelinea(limaArchetypa, linea)) {
        cum (int index = nihil; index < elementa; ++index) {
            omnesRepone(linea, reposita[index][nihil], reposita[index][i]);
        }
        limaTransferenda << linea << "\n";
    }
    redde nihil;
}

क्या "स्ट्रिंग" का अनुवाद "कैटैना" के रूप में नहीं किया जाना चाहिए, जैसे आधुनिक रोमांस भाषाओं में?
200_सेक्यूट

निर्भर करता है कि आप कैसा शाब्दिक अनुभव कर रहे हैं।
ल्यूक

6
या बल्कि, आप कितना रोमांटिक महसूस कर रहे हैं।
एलेक्स ए।

1
मुझे लगता है कि आपने "खाली" याद किया।
पाक

1
धन्यवाद। मैंने @ Vioz- की किताब से एक पत्ता निकाला और शून्य के लिए 'inane' का इस्तेमाल किया, ताकि मैं खाली के लिए 'वैक्यूम' का इस्तेमाल कर सकूं।
ल्यूक

25

जावास्क्रिप्ट (NodeJS) - हिब्रू

एन्कोडिंग के लिए मेरी विधि DLosc के पायथन प्रोग्राम के समान है : यह स्रोत कोड को पढ़ता है, टोकन की एक सूची है, और खोज-और-जगह चलाता है।

var file_system = require('fs');
file_system.readFile(__filename, function(error,code){
    if (error) {throw error;}
    code = code.toString();
    var words = {
        'var': 'מש׳',
        'file_system': 'מערכת_קבצים',
        'require': 'דרוש',
        'fs': 'מ״ק',
        'readFile': 'קראקובץ',
        'filename': 'שםקובץ',
        'function': 'תפקיד',
        'error': 'שבוש',
        'code': 'צופן',
        'if': 'אם',
        'throw': 'זרוק',
        'toString': 'למחרוזת',
        'words': 'מילים',
        'word': 'מילה',
        'for': 'לכל',
        'in ': 'ב',
        'replace': 'החלף',
        'RegExp': 'ביטס״ד',
        'console': 'מסוף',
        'log': 'רשום',
        'new (.+)\\(': '$1 חדש(',
        'g': 'ע׳',
        '\'': '',
        ';': '׃'
    }, word;

    for (word in words) {
        code = code.replace(new RegExp(word,'g'), words[word]);
    }
    console.log(code);
});

यह निम्न आउटपुट देता है:

מש׳ מערכת_קבצים = דרוש(מ״ק)׃
מערכת_קבצים.קראקובץ(__שםקובץ, תפקיד(שבוש,צופן){
    אם (שבוש) {זרוק שבוש׃}
    צופן = צופן.למחרוזת()׃
    מש׳ מילים = {
        מש׳: מש׳,
        מערכת_קבצים: מערכת_קבצים,
        דרוש: דרוש,
        מ״ק: מ״ק,
        קראקובץ: קראקובץ,
        שםקובץ: שםקובץ,
        תפקיד: תפקיד,
        שבוש: שבוש,
        צופן: צופן,
        אם: אם,
        זרוק: זרוק,
        למחרוזת: למחרוזת,
        מילים: מילים,
        מילה: מילה,
        לכל: לכל,
        ב: ב,
        החלף: החלף,
        ביטס״ד: ביטס״ד,
        מסוף: מסוף,
        רשום: רשום,
        (.+)\\(: $1 חדש חדש(,
        ע׳: ע׳,
        \: ,
        ׃: ׃
    }, מילה׃

    לכל (מילה במילים) {
        צופן = צופן.החלף(ביטס״ד חדש(מילה,ע׳), מילים[מילה])׃
    }
    מסוף.רשום(צופן)׃
})׃

दुर्भाग्य से, एसई आरटीएल पाठ को पसंद नहीं करता है। मैंने उपरोक्त कोड ब्लॉक को मैन्युअल रूप से लपेटने का प्रयास किया <pre dir="rtl">, लेकिन यह सिर्फ छीन लिया गया। :( कोड वास्तव में इस तरह दिखना चाहिए: (gedit का स्क्रीनशॉट)

RTL स्वरूपण के साथ कोड ठीक से प्रदर्शित किया गया

हिब्रू पाठ के बारे में कुछ बातें ध्यान दें:

  • संक्षिप्तीकरण के लिए हिब्रू विधि (जो इस कोड में कई बार उपयोग की जाती है) एक शब्द को संक्षिप्त करने के लिए अंत में एकल उद्धरण चिह्न का उपयोग करना है, और अंतिम पत्र से पहले दोहरे उद्धरण चिह्नों के लिए यदि यह एकाधिक शब्द है। एक शब्द के लिए, हमारे पास var, जिसका मैंने अनुवाद किया מש', संक्षिप्त रूप से "निश्चय" (चर)। fs, "फाइल सिस्टम" के एक परिचित מ"ק, के रूप में अनुवाद किया गया , "वर्धमान קבצי above" का पहला अक्षर, ऊपर देखा गया।
  • हिब्रू में कैपिटल / लोअरकेस अक्षर नहीं हैं। कुछ अक्षरों में सामान्य / अंतिम रूप (lettersמנךםןףץ और respectively, क्रमशः) होते हैं, लेकिन यह है। तो "रीडफाइल" और "फ़ाइलनाम" जैसे मैशप शब्दों में, मैं दूसरे शब्द के बीच एक अंतिम पत्र के साथ समाप्त होने के बावजूद हिब्रू "קרא קובץ" और "ו קובץ" को एक साथ मैश कर दिया।
  • ऊपर लागू नहीं होता है toString। हिब्रू में, प्रीपोज़िशन एकल अक्षर होते हैं जो शब्द के लिए तैयार हो जाते हैं। तो, अगर "स्ट्रिंग" "מחרו "ת" है, "टू स्ट्रिंग" "למחרו .ת" है। यही कारण है कि for..inब्लॉक में, inटोकन में स्थान शामिल है, ताकि यह अगले शब्द से जुड़ जाए ( word in wordsहो जाता है מילה במילים)।
  • मैं अपने कंप्यूटर से इसे पुन: पेश करने में असमर्थ हूं, लेकिन जब मैं अपने iPad से Translate.google.com पर गया और अंदर डाल दिया regex, तो इसने मुझे वापस आ गया, जिसका शाब्दिक अर्थ है "अभिव्यक्ति का आदेश दिया"। वाह! मैंने इसे जेएस के रूप में סיטס" as के लिए संक्षिप्त किया RegExpहै।
  • gRegex झंडा मैं के रूप में अनुवाद ע 'है, जो עולמי, वैश्विक लिए खड़ा है।
  • बदलने के लिए जटिल रेगेक्स फॉर्म पर ध्यान दें new। ऐसा इसलिए है क्योंकि हिब्रू में, विशेषण (जैसे "नया" - "come") संज्ञा के बाद आते हैं (जैसे रेगेक्स)। तो, इसके बजाय new RegExp(), यह "RegExp [कि] नया () 'होगा।
  • मैंने उद्धरण चिह्नों को हटा दिया, क्योंकि वे क्लासिक हिब्रू में मौजूद नहीं हैं। यह निश्चित रूप से व्याकरण को बहुत कठिन बनाता है! मुझे अभी भी यकीन नहीं है कि यह एक अच्छा निर्णय था या नहीं।
  • ऐसा लगता है कि मैं कॉलन के साथ सभी समाप्ति अर्धविरामों की जगह ले रहा हूं। यह वास्तव में एक U + 05C3 SOF PASUQ है , एक विराम चिह्न जो बाइबल में एक कविता को समाप्त करता है।

यह कोड निश्चित रूप से हर वैध जेएस कार्यक्रम का अनुवाद नहीं करता है। वास्तव में, यह केवल इस एक का अनुवाद करता है। लेकिन इस चुनौती के लिए यह काफी अच्छा है। ;)

वैसे, यदि आप हिब्रू में रुचि रखते हैं, तो हिब्रू का अनुसरण करें। प्रस्ताव पर जाएं (और <10 के स्कोर के साथ प्रश्नों पर वोट करें)! (स्रोत: stackexchange.com )
स्टैक एक्सचेंज Q & A साइट का प्रस्ताव: हिब्रू भाषा


9
PHP के साथ जाना चाहिए था - वे पहले से ही T_PAAMAYIM_NEKUDOTAYIMकवर किया गया है !
1

2
RTL स्रोत की अंतिम पंक्ति दाढ़ी वाले दुखी व्यक्ति की तरह दिखती है। :)
मैट लियोन

(उस मामले के लिए या तो एक, किसी कारण से मैंने इसे एलटीआर स्रोत पर ध्यान नहीं दिया)
मैट लियोन

@MattLyons शायद आपने अंग्रेजी में नहीं देखा क्योंकि यह वास्तव में उतना नहीं दिखता है।
शिमोनस्टर

1
उदाहरण קורה @proudhaskeller
sagiksp

22

पर्ल, पिग्लटिन - एर्लपे

सबसे पहले, वास्तविक कार्यक्रम बहुत छोटा है, इसलिए यह प्रदर्शित करने के लिए कि यह पाठ के लंबे वर्गों के लिए कैसे व्यवहार करता है मैंने कुछ पर्ल कविता को इनपुट / आउटपुट के एक और उदाहरण के रूप में शामिल किया। चूंकि कविता को END लाइन के बाद शामिल किया गया है, इसलिए यह वास्तव में निष्पादित नहीं होता है।

वास्तविक एल्गोरिथ्म बहुत सीधे आगे है:

  • शब्द सीमाओं पर टोकन में विभाजित इनपुट
  • कम से कम दो अल्फा वर्णों वाले किसी भी शब्द के लिए सुअर लैटिन में अनुवाद करते हैं
    • शब्द में अग्रणी व्यंजन खोजें
    • उन्हें अंत तक ले जाएं और उन पर 'ए' प्रत्यय लगाएं
  • सब कुछ छाप दो। गैर अल्फा इनपुट (और एकल-वर्ण) का अनुवाद नहीं किया जाता है

#!/usr/bin/perl

while (<>) {
    print map { 
        s/^([bcdfghjklmnpqrstvwxyz]*)([a-z]+)/$2$1ay/i if /[a-z][a-z]/i; $_ 
    } split(/\b/);
}
__END__
# listen (a perl poem)
# Sharon Hopkins
# rev. June 19, 1995
# Found in the "Perl Poetry" section of the Camel book
APPEAL:

listen(please, please);

open yourself, wide;
    join (you, me),
connect (us, together),

tell me.

do something if distressed;

    @dawn, dance;
    @evening, sing;
    read (books, $poems, stories) until peaceful;
    study if able;

    write me if-you-please;

sort your feelings, reset goals, seek (friends, family, anyone);

    do*not*die (like this)
    if sin abounds;

keys (hidden), open (locks, doors), tell secrets;
do not, I-beg-you, close them, yet.

        accept (yourself, changes),
        bind (grief, despair);

require truth, goodness if-you-will, each moment;

select (always), length (of-days)

कार्यक्रम को स्वयं चलाने से आउटपुट:

#!/usray/inbay/erlpay

ilewhay (<>) {
    intpray apmay { 
        s/^([zbcdfghjklmnpqrstvwxyay]*)([a-z]+)/$2$1ay/i ifay /[a-z][a-z]/i; $_ 
    } itsplay(/\b/);
}
__END__
# istenlay (a erlpay oempay)
# aronShay opkinsHay
# evray. uneJay 19, 1995
# oundFay inay ethay "erlPay oetryPay" ectionsay ofay ethay amelCay ookbay
APPEALay:

istenlay(easeplay, easeplay);

openay ourselfyay, ideway;
    oinjay (ouyay, emay),
onnectcay (usay, ogethertay),

elltay emay.

oday omethingsay ifay istressedday;

    @awnday, anceday;
    @eveningay, ingsay;
    eadray (ooksbay, $oemspay, oriesstay) untilay eacefulpay;
    udystay ifay ableay;

    itewray emay ifay-ouyay-easeplay;

ortsay ouryay eelingsfay, esetray oalsgay, eeksay (iendsfray, amilyfay, anyoneay);

    oday*otnay*ieday (ikelay isthay)
    ifay insay aboundsay;

eyskay (iddenhay), openay (ockslay, oorsday), elltay ecretssay;
oday otnay, I-egbay-ouyay, oseclay emthay, etyay.

        acceptay (ourselfyay, angeschay),
        indbay (iefgray, espairday);

equireray uthtray, oodnessgay ifay-ouyay-illway, eachay omentmay;

electsay (alwaysay), engthlay (ofay-aysday)

2
सुअर लैटिन भाषा का खेल माना जाता है, प्राकृतिक भाषा नहीं। सुअर लैटिन विकिपीडिया पृष्ठ देखें ।
एलेक्स ए।

5
मुझे लगता है कि आप इसे कॉल कर सकते हैं, हालांकि मुझे यकीन नहीं है कि यह चुनौती फेडरल आरएफपी के स्तर तक काफी बढ़ जाती है जहां तक ​​औपचारिकता का संबंध है।
राल्फ मार्शल

3
अनुवादित भाषा का नाम erlPay होना चाहिए और अगर यह भी आउटपुट है तो मुझे अच्छा लगेगा __DENAY__। नहीं करना चाहिए openayऔर acceptayहो enopayऔर ceptacay?
सीजे डेनिस

1
चुनौती "विदेशी भाषा" को निर्दिष्ट करती है। सुअर लैटिन की गिनती नहीं करता है।
mbomb007

6
मुझे लगता है कि मैं सुझाव दूंगा कि आप सभी एक विदेशी भाषा के रूप में पिग्लटिन की स्वीकार्यता के बारे में प्रकाश डालेंगे। यदि आपको मेरा समाधान पसंद नहीं है, तो उसके लिए वोट न करें। मेरा मानना ​​है कि सीजे इसके साथ काफी खुश है, और चूंकि यह सिर्फ एक मजेदार व्यायाम है जो मैं अपने इनपुट के साथ चिपका रहा हूं।
राल्फ मार्शल

17

विज़ुअल बेसिक .Net, फ़ारसी

मैंने एक मौखिक भाषा चुनी, इसलिए यह कठिन होगा। पता चला, मुझे व्याकरण नहीं बदलना पड़ा। कोड का फारसी रूप सिर्फ क्रिया के रूप में है।

Imports System.Collections.Generic
Module Translator

Sub Main()
    Dim translation As New Dictionary(Of String, String)
    With translation
        .Add("imports", "وارد‌کردن")
        .Add("system", "دستگاه")
        .Add("collections", "مجموعه")
        .Add("generic", "عمومی")
        .Add("module", "واحد")
        .Add("translator", "مترجم")
        .Add("sub", "زیرروال")
        .Add("main", "اصلی")
        .Add("dim", "بعد")
        .Add("translation", "ترجمه")
        .Add("new", "نو")
        .Add("dictionary", "دیکشنری")
        .Add("string", "رشته")
        .Add("with", "با")
        .Add("add", "افزودن")
        .Add("end", "پایان")
        .Add("file", "فایل")
        .Add("create", "درست‌کردن")
        .Add("readalltext", "خواندن‌کل‌متن")
        .Add("writealltext", "نوشتن‌کل‌متن")
        .Add("io", "ورودی‌خروجی")
        .Add("for", "برای")
        .Add("each", "هر")
        .Add("next", "بعدی")
        .Add("tolower", "به‌کوچک")
        .Add("key", "کلید")
        .Add("value", "مقدار")
        .Add("replace", "جایگزین‌کردن")
        .Add("code", "کد")
        .Add("dispose", "رها‌کردن")
        .Add("and", "و")
        .Add("andalso", "و‌همچنین")
        .Add("byte", "بیت")
        .Add("call", "صدا‌کردن")
        .Add("case", "صورت")
        .Add("catch", "گرفتن")
        .Add("object", "شئ")
        .Add("integer", "عدد")
        .Add("if", "اگر")
        .Add("then", "سپس")
        .Add("goto", "برو‌به")
        .Add("true", "درست")
        .Add("false", "نادرست")
        .Add("exit", "خارج‌شدن")
        .Add("loop", "حلقه")
        .Add("function", "تابع")
        .Add("nothing", "هیچی")
        .Add("else", "در‌غیر‌این‌صورت")
        .Add("try", "سعی‌کردن")
        .Add("or", "یا")
        .Add("orelse", "یا")
        .Add("as", "به‌عنوان")
        .Add("of", "از")
        .Add("in", "در")
    End With
    Dim code As String = System.IO.File.ReadAllText("Code.txt").ToLower()
    For Each k In translation
        code = code.Replace(k.Key, k.Value)
    Next
    System.IO.File.Create("Persian.txt").Dispose()
    System.IO.File.WriteAllText("Persian.txt", code)
End Sub

End Module

परिणाम के लिए दाएँ से बाएँ पाठ संपादक की आवश्यकता होती है। मैं इसे यहाँ ठीक से प्रदर्शित नहीं कर सका। लेकिन अगर मैं है यह प्रदर्शित करने के लिए, यहाँ यह है। यहाँ एक तस्वीर है:

कोड

नोट: यह फ़ारसी.नेट नामक फ़ाइल से पढ़ता है और कोड के लिए आउटपुट करता है। मुझे फ़ारसी लिखने या पढ़ने के लिए कंसोल विंडो नहीं मिल सकती थी, क्योंकि यह प्रश्न चिह्न में बदल जाता है। (उदाहरण के लिए चार अक्षर का शब्द ???? में बदल जाएगा)

नोट: यदि आप फ़ारसी में शब्दों को एक-दूसरे से जोड़ते हैं, तो यह लगभग अपठनीय होगा, क्योंकि पत्र एक-दूसरे से जुड़ते हैं और एक अलग रूप प्राप्त करते हैं। इसलिए मुझे उन्हें रिक्त स्थान के साथ अलग करना पड़ा जिसके परिणामस्वरूप रिक्त स्थान वाले शब्द थे। Imports जैसा एक शब्द وارد نردن में बदल गया जो दो शब्द हैं।


अपने हिब्रू पोस्ट में , मैं इसके एक स्क्रीनशॉट को एक संपादक में ठीक से प्रदर्शित करता हूं जो RTL का समर्थन करता है।
15

@Scimonster अच्छा विचार है। मैं अभी यही करूँगा। धन्यवाद।
जेएनवी

2
आपके पास "درست دردن" हो सकता है, बिना किसी स्पेस के, "درست "ردن" में बदलकर, एक यूनिकोड शून्य-चौड़ाई वाले गैर-योजक वर्ण (U + 200C) का उपयोग करके: "درست "ردن": "درست "ردن": "درست "ردن" का उपयोग करते हुए - यह अक्षरों को साइड-बाय-साइड होने के लिए मजबूर करता है। बिना किसी अंतर के, उन्हें एक साथ जोड़े बिना - हालांकि परिणाम अच्छे दिखेंगे या नहीं यह फॉन्ट पर निर्भर करेगा!
भजन

@psmears आप सही कह रहे हैं; मैं इसके विषय मे भूल गया। धन्यवाद!
JNV

14

जावा, जर्मन - जावा

यह कार्यक्रम वास्तव में सीधे आगे है।
यह केवल पहले तर्क के रूप में दी गई फ़ाइल को पढ़ता है और संबंधित जर्मन अनुवाद के साथ अंग्रेजी शब्द की सभी घटनाओं को प्रतिस्थापित करता है।

मैं दो समूहों के साथ एक नियमित अभिव्यक्ति का उपयोग कर रहा हूं ( ([^a-zA-Z\\d:])*) गैर-अल्फ़ान्यूमेरिक वर्ण द्वारा पहले से जारी / पीछा की जाने वाली व्यक्तिगत वस्तुओं से मिलान करने के लिए। इसने ओवरलैपिंग अनुवादों के साथ समस्या को हल किया (संलग्न। List-> गेर। Listeलेकिन फिर Listeबन जाएगा Listee)। उन वर्णों का उपयोग करना $1/ $2जोड़ना और हमें अनुवादित स्रोत कोड के साथ छोड़ देता है।

अपडेट 1:

जैसे रूपों का उपयोग ea, nbeaआदि जर्मन में जावा के नामकरण परंपराओं का पालन करने के लिए।

अपडेट 2:

अब अपने पहले प्रतिस्थापन के बाद तोड़ने के लिए सरणी में एक तीसरे घटक का उपयोग करता है। यह मेरी धोखा घोषणा / संयुग्मन दृष्टिकोण के लिए आवश्यक है। class/ Klasseजर्मन में महिला है और void/ nichtsतटस्थ है, तो मैं बस उत्तरार्द्ध और बाद में प्रतिस्थापित की जगह को छोड़ दिया। एक और संपादन यह newहै neueकि मैं केवल इस पर उपयोग करता हूं String, जो महिला है।

अपडेट 3:

केस सेंसिटिव रेगुलर एक्सप्रेशंस को जोड़कर कैपिटलाइजेशन के साथ उचित व्यवहार करें।

import java.io.IOException;
import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.util.regex.Pattern;

    public class Main {

        public static void main(String[] args) throws IOException {
            String[][] array = new String[][]{
                    {"import", "importiere", ""},
                    {"public", "öffentliche", "break"},
                    {"public", "öffentliches", ""},
                    {"class", "klasse", ""},
                    {"Main", "Haupt", ""},
                    {"main", "haupt", ""},
                    {"static", "statisches", ""},
                    {"void", "nichts", ""},
                    {"String", "Zeichenkette", ""},
                    {"args", "argumente", ""},
                    {"throws", "wirft", ""},
                    {"IOException", "EAAusnahme", ""},
                    {"FileSystems", "Dateisysteme", ""},
                    {"new", "neue", ""},
                    {"Files", "Dateien", ""},
                    {"readAllBytes", "leseAlleBytes", ""},
                    {"getDefault", "holeStandard", ""},
                    {"getPath", "holePfad", ""},
                    {"array", "ansammlung", ""},
                    {"replaceFirst", "ersetzeErstes", ""},
                    {"find", "finde", ""},
                    {"out", "ausgabe", ""},
                    {"println", "druckeZeile", ""},
                    {"pattern", "muster", ""},
                    {"Pattern", "Muster", ""},
                    {"compile", "zusammenstellen", ""},
                    {"matcher", "abgleicher", ""},
                    {"util", "werkzeug", ""},
                    {"regex", "regaus", ""},
                    {"while", "solange", ""},
                    {"nio", "nbea", ""},
                    {"io", "ea", ""},
                    {"for", "für", ""},
                    {"if", "wenn", ""},
                    {"equals", "gleicht", ""},
                    {"break", "unterbrechen", ""}

            };
            String str = new String(Files.readAllBytes(FileSystems.getDefault().getPath(args[0])));
            for (String[] s : array) {
                Pattern pattern = Pattern.compile("(^|[^a-zA-Z\\d]+)" + s[0] + "([^a-zA-Z\\d]+)");
                while(pattern.matcher(str).find(0)) {
                    str = pattern.matcher(str).replaceFirst("$1" + s[1] + "$2");
                    if(s[2].equals("break")) {
                        break;
                    }
                }
            }
            System.out.println(str);
        }
    }

यह निम्नलिखित के लिए आउटपुट System.out:

importiere java.ea.EAAusnahme;
importiere java.nbea.file.Dateisysteme;
importiere java.nbea.file.Dateien;
importiere java.werkzeug.regaus.Muster;

    öffentliche klasse Haupt {

        öffentliches statisches nichts haupt(Zeichenkette[] argumente) wirft EAAusnahme {
            Zeichenkette[][] ansammlung = neue Zeichenkette[][]{
                    {"importiere", "importiere", ""},
                    {"öffentliches", "öffentliche", "unterbrechen"},
                    {"öffentliches", "öffentliches", ""},
                    {"klasse", "klasse", ""},
                    {"Haupt", "Haupt", ""},
                    {"haupt", "haupt", ""},
                    {"statisches", "statisches", ""},
                    {"nichts", "nichts", ""},
                    {"Zeichenkette", "Zeichenkette", ""},
                    {"argumente", "argumente", ""},
                    {"wirft", "wirft", ""},
                    {"EAAusnahme", "EAAusnahme", ""},
                    {"Dateisysteme", "Dateisysteme", ""},
                    {"neue", "neue", ""},
                    {"Dateien", "Dateien", ""},
                    {"leseAlleBytes", "leseAlleBytes", ""},
                    {"holeStandard", "holeStandard", ""},
                    {"holePfad", "holePfad", ""},
                    {"ansammlung", "ansammlung", ""},
                    {"ersetzeErstes", "ersetzeErstes", ""},
                    {"finde", "finde", ""},
                    {"ausgabe", "ausgabe", ""},
                    {"druckeZeile", "druckeZeile", ""},
                    {"muster", "muster", ""},
                    {"Muster", "Muster", ""},
                    {"zusammenstellen", "zusammenstellen", ""},
                    {"abgleicher", "abgleicher", ""},
                    {"werkzeug", "werkzeug", ""},
                    {"regaus", "regaus", ""},
                    {"solange", "solange", ""},
                    {"nbea", "nbea", ""},
                    {"ea", "ea", ""},
                    {"für", "für", ""},
                    {"wenn", "wenn", ""},
                    {"gleicht", "gleicht", ""},
                    {"unterbrechen", "unterbrechen", ""}

            };
            Zeichenkette str = neue Zeichenkette(Dateien.leseAlleBytes(Dateisysteme.holeStandard().holePfad(argumente[0])));
            für (Zeichenkette[] s : ansammlung) {
                Muster muster = Muster.zusammenstellen("(^|[^a-zA-Z\\d]+)" + s[0] + "([^a-zA-Z\\d]+)");
                solange(muster.abgleicher(str).finde(0)) {
                    str = muster.abgleicher(str).ersetzeErstes("$1" + s[1] + "$2");
                    wenn(s[2].gleicht("unterbrechen")) {
                        unterbrechen;
                    }
                }
            }
            System.ausgabe.druckeZeile(str);
        }
    }

यदि आपके पास कोड या अनुवाद में कोई सुधार है, तो मुझे बताएं और मुझे लगता है कि क्या मैं उन्हें लागू कर सकता हूं।


/, 󠀠 और -शायद पहचानकर्ताओं में अच्छे नहीं हैं।
वि।

6
मुझे दो भाषाओं के बीच के पत्राचार से प्यार है - दोनों हर चीज के लिए विनम्र यौगिक शब्दों का उपयोग करते हैं। ;) लेकिन मुझे संदेह है कि जर्मन अभी भी Eingabe/Ausgabeकिसी तरह संक्षिप्त करेंगे - शायद Einaus?
DLosc

1
@ डलास I / O (इनपुट / आउटपुट) आमतौर पर E / A (Eingabe / Ausgabe) के साथ संक्षिप्त है। Einausयह संभव होगा, मुझे भी लगता है लेकिन यह सही नहीं लगता। Rein/Rausसंभव लगता है, साथ ही फिर से सिर्फ एक अच्छा अनुवाद की तरह महसूस नहीं करता है।
जाइंटट्री

@Vi। आप स्ट्रिंग में पात्रों के रूप में मतलब है (बाईं ओर) को बदलने के लिए? उन की जरूरत नहीं है क्योंकि जावा ऐसे पात्रों को नाम / पहचानकर्ता का हिस्सा बनने के लिए अस्वीकार करता है। मुझे लगता है कि आपका मतलब है क्योंकि मैं पूरे स्ट्रिंग को बार-बार देख रहा हूं और आप सोच सकते हैं कि E/Aया इसी तरह के मुद्दों का कारण हो सकता है, लेकिन उन्हें एक नियमित अभिव्यक्ति के रूप में व्याख्या नहीं की जाती है, वे केवल मेल खाते हैं और इस तरह नियमित अभिव्यक्ति को अप्रभावित छोड़ देते हैं। (मैं गलत हो सकता है, लेकिन यह वही है जो मैंने नियमित अभिव्यक्तियों के साथ अनुभव किया है)
विशालकाय

@GiantTree, मेरा मतलब है कि कोड काल्पनिक जर्मन जावा संकलक के लिए पार्स करना मुश्किल होगा।
वि।

14

जूलिया, तातार - जूलिया

यह 2001 में स्थापित -del-Ural तातार के लिए अनौपचारिक लैटिन-आधारित ज़मानालिफ़ वर्णमाला का उपयोग करता है। हालांकि, 2002 में, रूसी संघ ने ज़ैतानालिफ़ को तातारी भाषा के लिए आधिकारिक वर्णमाला बनाने के लिए तातारस्तान की गति पर प्रहार किया, किसी के आधिकारिक उपयोग का अपराधीकरण। सिरिलिक के अलावा अन्य वर्णमाला।

पिछली शताब्दी में, तातार भाषा के लिए 5 अक्षर बने हैं:

  • Theske imlâ, अरबी वर्णमाला का एक प्रकार, 1870-1920 का दशक
  • Yaña imlâ, एक और अरबी संस्करण, 1920 और 30 के दशक
  • Jaalif, लैटिन वर्णमाला का एक प्रकार, 1930 का दशक
  • सिरिलिक, जोसेफ स्टालिन द्वारा 1940 के दशक में प्रस्तुत रूपांतरण
  • ज़मानाली, अनौपचारिक, 2001-वर्तमान

मैंने ज़मानलिफ़ का विकल्प चुना है क्योंकि मुझे लगता है कि अगर मैंने सिरिलिक का इस्तेमाल किया तो मेरे दादाजी निराश होंगे। उनकी पहली भाषा तातार है और 1920 के दशक में पैदा हुई थी, उन्होंने iske imlâ वर्णमाला में पढ़ना और लिखना सीखा।

अंग्रेज़ी:

function translate(source)
    words = Dict([("function", "funktsiya"),
                  ("if",gär"),
                  ("else", "başkaça"),
                  ("elif", "başägär"),
                  ("end", "axır"),
                  ("for", "saen"),
                  ("print", "bastırırga"),
                  ("english", "ingliz"),
                  ("tatar", "tatarça"),
                  ("translate", "tärcemä"),
                  ("words", "süzlär"),
                  ("replace", "alıştıru"),
                  ("Dict", "Süzlek"),
                  ("keys", "açkıçlär"),
                  ("get", "alırga"),
                  ("readall", "ukırgaböten"),
                  ("source", "çıganak")])

    tatar = readall(source)

    for english = keys(words)
        tatar = replace(tatar, english, get(words, english, ""))
    end

    tatar
end

print(translate("tatar.jl"))

टाटर:

funktsiya tärcemä(çıganak)
    süzlär = Süzlek([("funktsiya", "funktsiya"),
                  (gär",gär"),
                  ("başkaça", "başkaça"),
                  ("başägär", "başägär"),
                  ("axır", "axır"),
                  ("saen", "saen"),
                  ("bastırırga", "bastırırga"),
                  ("ingliz", "ingliz"),
                  ("tatarça", "tatarça"),
                  ("tärcemä", "tärcemä"),
                  ("süzlär", "süzlär"),
                  ("alıştıru", "alıştıru"),
                  ("Süzlek", "Süzlek"),
                  ("açkıçlär", "açkıçlär"),
                  ("alırga", "alırga"),
                  ("ukırgaböten", "ukırgaböten"),
                  ("çıganak", "çıganak")])

    tatarça = ukırgaböten(çıganak)

    saen ingliz = açkıçlär(süzlär)
        tatarça = alıştıru(tatarça, ingliz, alırga(süzlär, ingliz, ""))
    axır

    tatarça
axır

bastırırga(tärcemä("~/tatarça.jl"))

मैंने अनुवाद को थोड़ा साफ करने के लिए एक युगल स्वतंत्रता ली। उदाहरण के लिए, forबन गया saen, जो "प्रत्येक" के लिए और अधिक शाब्दिक अनुवाद करता है। मैंने भी संक्षिप्त नहीं किया Süzlek, जिसका अर्थ है "शब्दकोश।" ukırgaböten, मेरे अनुवाद के लिए readall, ukırga(पढ़ें) + böten(सभी / हर) है। başägär, के लिए मेरा अनुवाद elseif, baş(का संक्षिप्त नाम है başkaça, जिसका अर्थ है "और / अन्यथा") + ägär(यदि)।

अगर PPCG पर कोई भी तातार जानता है, तो आप संभवतः मुझे जितना जानते हैं उससे अधिक जानते हैं। किसी भी सुझाव का स्वागत होगा।


13

जंग , बेलारूसी (Ржа)

कार्यक्रम:

#![feature(non_ascii_idents)]

use std::io::stdin;
use std::io::Read;

static ЗАМЕНЫ: &'static [(&'static str, &'static str)] =  &[
    ("match", "супастаўленьне"),
    (" if ", " калі "),
    ("else", "інакш"),
    (" as ", " як "),
    ("panic!", "паніка!"),
    ("assert!", "праверыць!"),
    ("box ", "пак "),
    ("break", "перапыніць"),
    ("continue", "працягнуць"),
    ("fn ", "фн "),
    ("extern", "знешняе"),
    (" for ", " кожная "),
    (" in ", " ў "),
    ("impl ", " увасобіць "),
    ("let ", "хай "),
    ("loop ", "цыкл "),
    ("once", "аднойчы"),
    ("pub ", "адкр"),
    ("return", "выйсці"),
    ("super", "бацькоўскі_модуль"),
    ("unsafe ", "непяспечнае "),
    (" where", " дзе"),
    ("while", "пакуль"),
    ("use ", "вык "),
    ("mod ", "модуль "),
    ("trait ", "рыса "),
    ("struct ", "структура "),
    ("enum ", "пералік"),
    ("type ", "тып "),
    ("move ", "перанесьці"),
    ("mut ", "зьмян "),
    ("ref ", "спасыл "),
    ("static ", "статычнае "),
    ("const ", "нязменнае "),
    ("crate ", "скрыня "),
    ("Copy", "МожнаКапіяваць"),
    ("Send", "МожнаПерадаваць"),
    ("Sized", "МаеПамер"),
    ("Sync", "БяспечнаНаПатокі"),
    ("Drop", "МаеЗавяршальнік"),
    ("FnMut", "ЯкЗьмяняемаяФункцыя"),
    ("FnOnce", "ЯкАднаразоваяФункцыя"),
    ("Fn", "ЯкФункцыя"),
    ("macro_rules!", "новы_макрас!"),
    ("alignof", "выраўненьеяку"),
    ("become", "стала"),
    ("do ", "рабі"),
    ("offsetof", "пазіцыяяку"),
    ("priv", "прыватнае"),
    ("pure", "чыстае"),
    ("sizeof", "памер_ад"),
    ("typeof", "тып_ад"),
    ("unsized", "безпамеравы"),
    ("yield", "вырабіць"),
    ("abstract", "абстрактны"),
    ("virtual", "віртуальны"),
    ("final", "канчатковае"),
    ("override", "перавызначыць"),
    ("macro", "макрас"),
    ("Box", "Каробка"),
    ("ToOwned", "МожнаНабыцьУладара"),
    ("Clone", "МожнаКланаваць"),
    ("PartialOrd", "МаеЧастковыПарадак"),
    ("PartialEq", "ЧастковаПараўнальны"),
    ("Eq", "Параўнальны"),
    ("Ord", "МаеПарадак"),
    ("AsRef", "МожнаЯкСпасылку"),
    ("AsMut", "МожнаЯкЗьмяняемые"),
    ("Into", "МожнаУ"),
    ("From", "МожнаЗ"),
    ("Default", "МаеЗначеньнеПаЗмаўчаньні"),
    ("Extend", "Пашырыць"),
    ("IntoIterator", "МожнаУПаўторнік"),
    ("DoubleEndedIterator", "ДвубаковыПаўторнік"),
    ("ExactSizeIterator", "ПаўторнікЗДакладнымПамерам"),
    ("Iterator", "Паўторнік"),
    ("Option", "Недакладна"),
    ("Some", "Ёсць"),
    ("None", "Нічога"),
    ("Result", "Вынік"),
    ("Ok", "Ок"),
    ("Err", "Збой"),
    ("SliceConcatExt", "АбянднальнікЛустаў"),
    ("ToString", "УРадок"),
    ("String", "Радок"),
    ("Vec", "Вэктар"),
    ("vec!", "вэкрар!"),
    ("self", "сам"),
    ("true", "так"),
    ("false", "не"),
    ("feature", "магчымасьць"),

    ("main", "галоўная"),
    ("replace", "замяніць"),
    ("iter","пераліч"),
    ("print!","друк!"),
    ("println!","друкрад!"),
    ("stdin","звыч_уваход"),
    ("stdout","звыч_выхад"),
    ("stderr","звыч_павед"),
    ("Read", "Чытальнік"),
    ("Write", "Пісальнік"),
    ("read_to_string", "чытаць_у_радок"),
    ("to_string", "у_радок"),
    ("std", "стд"),
    ("io", "ув"),
    ("non_ascii_idents", "ідентыфікатары_з_юнікоду"),

    ("str", "радок"),
];


fn main() {
    let mut зьмест : String = "".to_string();
    match stdin().read_to_string(&mut зьмест) {
        Ok(_) => (),
        Err(памылка) => panic!(памылка),
    }
    for замена in ЗАМЕНЫ.iter() {
        зьмест = зьмест.replace(замена.0, замена.1);
    }
    println!("{}", зьмест);
}

आउटपुट:

#![магчымасьць(ідентыфікатары_з_юнікоду)]

вык стд::ув::звыч_уваход;
вык стд::ув::Чытальнік;

статычнае ЗАМЕНЫ: &'статычнае [(&'статычнае радок, &'статычнае радок)] =  &[
    ("супастаўленьне", "супастаўленьне"),
    (" калі ", " калі "),
    ("інакш", "інакш"),
    (" як ", " як "),
    ("паніка!", "паніка!"),
    ("праверыць!", "праверыць!"),
    ("пак ", "пак "),
    ("перапыніць", "перапыніць"),
    ("працягнуць", "працягнуць"),
    ("фн ", "фн "),
    ("знешняе", "знешняе"),
    (" кожная ", " кожная "),
    (" ў ", " ў "),
    (" увасобіць ", " увасобіць "),
    ("хай ", "хай "),
    ("цыкл ", "цыкл "),
    ("аднойчы", "аднойчы"),
    ("адкр", "адкр"),
    ("выйсці", "выйсці"),
    ("бацькоўскі_модуль", "бацькоўскі_модуль"),
    ("непяспечнае ", "непяспечнае "),
    (" дзе", " дзе"),
    ("пакуль", "пакуль"),
    ("вык ", "вык "),
    ("модуль ", "модуль "),
    ("рыса ", "рыса "),
    ("структура ", "структура "),
    ("пералік", "пералік"),
    ("тып ", "тып "),
    ("перанесьці", "перанесьці"),
    ("зьмян ", "зьмян "),
    ("спасыл ", "спасыл "),
    ("статычнае ", "статычнае "),
    ("нязменнае ", "нязменнае "),
    ("скрыня ", "скрыня "),
    ("МожнаКапіяваць", "МожнаКапіяваць"),
    ("МожнаПерадаваць", "МожнаПерадаваць"),
    ("МаеПамер", "МаеПамер"),
    ("БяспечнаНаПатокі", "БяспечнаНаПатокі"),
    ("МаеЗавяршальнік", "МаеЗавяршальнік"),
    ("ЯкЗьмяняемаяФункцыя", "ЯкЗьмяняемаяФункцыя"),
    ("ЯкАднаразоваяФункцыя", "ЯкАднаразоваяФункцыя"),
    ("ЯкФункцыя", "ЯкФункцыя"),
    ("новы_макрас!", "новы_макрас!"),
    ("выраўненьеяку", "выраўненьеяку"),
    ("стала", "стала"),
    ("рабі", "рабі"),
    ("пазіцыяяку", "пазіцыяяку"),
    ("прыватнае", "прыватнае"),
    ("чыстае", "чыстае"),
    ("памер_ад", "памер_ад"),
    ("тып_ад", "тып_ад"),
    ("безпамеравы", "безпамеравы"),
    ("вырабіць", "вырабіць"),
    ("абстрактны", "абстрактны"),
    ("віртуальны", "віртуальны"),
    ("канчатковае", "канчатковае"),
    ("перавызначыць", "перавызначыць"),
    ("макрас", "макрас"),
    ("Каробка", "Каробка"),
    ("МожнаНабыцьУладара", "МожнаНабыцьУладара"),
    ("МожнаКланаваць", "МожнаКланаваць"),
    ("МаеЧастковыПарадак", "МаеЧастковыПарадак"),
    ("ЧастковаПараўнальны", "ЧастковаПараўнальны"),
    ("Параўнальны", "Параўнальны"),
    ("МаеПарадак", "МаеПарадак"),
    ("МожнаЯкСпасылку", "МожнаЯкСпасылку"),
    ("МожнаЯкЗьмяняемые", "МожнаЯкЗьмяняемые"),
    ("МожнаУ", "МожнаУ"),
    ("МожнаЗ", "МожнаЗ"),
    ("МаеЗначеньнеПаЗмаўчаньні", "МаеЗначеньнеПаЗмаўчаньні"),
    ("Пашырыць", "Пашырыць"),
    ("МожнаУПаўторнік", "МожнаУПаўторнік"),
    ("ДвубаковыПаўторнік", "ДвубаковыПаўторнік"),
    ("ПаўторнікЗДакладнымПамерам", "ПаўторнікЗДакладнымПамерам"),
    ("Паўторнік", "Паўторнік"),
    ("Недакладна", "Недакладна"),
    ("Ёсць", "Ёсць"),
    ("Нічога", "Нічога"),
    ("Вынік", "Вынік"),
    ("Ок", "Ок"),
    ("Збой", "Збой"),
    ("АбянднальнікЛустаў", "АбянднальнікЛустаў"),
    ("УРадок", "УРадок"),
    ("Радок", "Радок"),
    ("Вэктар", "Вэктар"),
    ("вэкрар!", "вэкрар!"),
    ("сам", "сам"),
    ("так", "так"),
    ("не", "не"),
    ("магчымасьць", "магчымасьць"),

    ("галоўная", "галоўная"),
    ("замяніць", "замяніць"),
    ("пераліч","пераліч"),
    ("друк!","друк!"),
    ("друкрад!","друкрад!"),
    ("звыч_уваход","звыч_уваход"),
    ("звыч_выхад","звыч_выхад"),
    ("звыч_павед","звыч_павед"),
    ("Чытальнік", "Чытальнік"),
    ("Пісальнік", "Пісальнік"),
    ("чытаць_у_радок", "чытаць_у_радок"),
    ("у_радок", "у_радок"),
    ("стд", "стд"),
    ("ув", "ув"),
    ("ідентыфікатары_з_юнікоду", "ідентыфікатары_з_юнікоду"),

    ("радок", "радок"),
];


фн галоўная() {
    хай зьмян зьмест : Радок = "".у_радок();
    супастаўленьне звыч_уваход().чытаць_у_радок(&зьмян зьмест) {
        Ок(_) => (),
        Збой(памылка) => паніка!(памылка),
    }
    кожная замена ў ЗАМЕНЫ.пераліч() {
        зьмест = зьмест.замяніць(замена.0, замена.1);
    }
    друкрад!("{}", зьмест);
}

सं 󠀠󠀠󠀠󠀠󠀠󠀠󠀠󠀠󠀠󠀠󠀠󠀠󠀠󠀠󠀠󠀠󠀠󠀠󠀠󠀠

रूसी और सी ++?
GamrCorps

@IonLee, No. संकेत: पहला अनुमान करीब था।
वि।

@IonLee: प्राकृतिक भाषा बेलारूसी है।
एलेक्स ए।

1
जंग और बेलारूसी?
प्रोग्राम फॉक्स

12

डॉगस्क्रिप्ट , स्पेनिश - एल कॉडिगो डेल पेरो

डॉगस्क्रिप्ट की व्याख्या जावास्क्रिप्ट से की जाती है, इसलिए कोई भी मान्य जेएस वैध डॉगस्क्रिप्ट है। मैंने यहां जो अनुवाद दिया है, वह वास्तव में संपूर्ण कीवर्ड विनिर्देश (कार्यक्रम में प्रयुक्त शब्दों को कवर करने के लिए कुछ और) को शामिल करता है।

"अंग्रेज़ी":

 trained

   very speak is prompt()

very doge is {
    'console': 'consola',
    'doge': 'perro',
    'very': 'muy',
    'concern': 'preocupación',
    'word': 'palabra',
    'much': 'mucho',
    'trained': 'entrenado',
    'with': 'con',
    'doge': 'perro',
    'very': 'muy',
    'much': 'mucho',
    'with': 'con',
    'is': 'es',
    'trained': 'entrenado',
    'such': 'tan',
    'wow': 'guau',
    'plz': 'porFavor',
    'but': 'pero',
    'maybe': 'quizás',
    'rly': 'enserio',
    'many': 'muchos',
    'so': 'tanto',
    'not': 'no',
    'and': 'y',
    'or': 'o',
    'next': 'siguiente',
    'as': 'como',
    'more': 'más',
    'less': 'menos',
    'lots': 'montones',
    'few': 'pocos',
    'bigger': 'másGrande',
    'smaller': 'menor',
    'biggerish': 'unPocoMásGrande',
    'smallerish': 'unPocoMásPequeño',
    'prompt': 'preguntar',
    'in': 'en',
    'replace': 'reemplazar',
    'new': 'nuevo',
    'RegExp': 'ExpReg',
    'loge': 'registro',
    'dose': 'punta',
    'speak': 'habla'
}

much very word in doge
         very concern is new RegExp with word 'g'
 doge is speak dose replace with concern doge[word]
      wow

console dose loge with speak

स्पेनिश:

 entrenado

   muy habla es preguntar()

muy perro es {...}

mucho muy palabra en perro
         muy preocupación es nuevo ExpReg con palabra 'g'
 perro es habla punta reemplazar con preocupación perro[palabra]
      guau

consola punta registro con habla

आप देख सकते हैं कि मैंने अनुवाद में कुछ स्वतंत्रताएँ ले ली हैं। यह आंशिक रूप से है क्योंकि मेरा स्पेनिश बल्कि खराब और आंशिक रूप से है क्योंकि मेरी स्पेनिश भाषा के ज्ञाताओं में ज्ञान की कमी है।

यहाँ छवि विवरण दर्ज करें


11

सी #, लैटिन - सी एक्यूटस

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

namespace ToLatin
{
    class Program
    {
        static void Main(string[] args)
        {
            Dictionary<string, string> dx = new Dictionary<string, string>();
            dx.Add("using", "usura");
            dx.Add("System", "Ratio");
            dx.Add("Collections", "Comprensio");
            dx.Add("Text", "Scriptum");
            dx.Add("txt", "scrptm");
            dx.Add("output", "scribo");
            dx.Add("namespace", "nomenspatium");
            dx.Add("class", "classis");
            dx.Add("Program", "Libellus");
            dx.Add("static", "immotus");
            dx.Add("void", "inane");
            dx.Add("Main", "Paelagus");
            dx.Add("string", "chorda");
            dx.Add("args", "argumenta");
            dx.Add("Dictionary", "Lexicon");
            dx.Add("new", "novus");
            dx.Add("Add", "Adaugeo");
            dx.Add("IO", "LecticoScribo");
            dx.Add("abstract", "abstracto");
            dx.Add("break", "confractus");
            dx.Add("Math", "Mathematica");
            dx.Add("File", "Ordo");
            dx.Add("file", "ordo");
            dx.Add("foreach", "prosingulus");
            dx.Add("Read", "Lectico");
            dx.Add("Write", "Scribo");
            dx.Add("All", "Omnes");
            dx.Add("translation", "interpretatio");
            dx.Add("bool", "verumfalsus");
            dx.Add("true", "verum");
            dx.Add("false", "falsus");
            dx.Add("0", "nil");
            dx.Add("||", "aut");
            dx.Add("&&", "et");
            dx.Add("Key", "Clavis");
            dx.Add("Value", "Pretium");
            dx.Add("Replace", "Restituo");
            dx.Add("Generic", "Ordinarius");
            dx.Add("ToLatin", "AdLatinam");
            string file = File.ReadAllText(args[0]);
            foreach (var translation in dx )
            {
                file = file.Replace(translation.Key, translation.Value);
            }
            File.WriteAllText("output.txt", file);
        }
    }
}

कमांड-लाइन आर्ग्स से फाइल पढ़ता है, output.txt को लिखता है।

उदाहरण:

usura Ratio;
usura Ratio.Comprensio.Ordinarius;
usura Ratio.Scriptum;
usura Ratio.LecticoScribo;

nomenspatium AdLatinam
{
    classis Libellus
    {
        immotus inane Paelagus(chorda[] argumenta)
        {
            Lexicon<chorda, chorda> dx = novus Lexicon<chorda, chorda>();
            dx.Adaugeo("usura", "usura");
            dx.Adaugeo("Ratio", "Ratio");
            dx.Adaugeo("Comprensio", "Comprensio");
            dx.Adaugeo("Scriptum", "Scriptum");
            dx.Adaugeo("scrptm", "scrptm");
            dx.Adaugeo("scribo", "scribo");
            dx.Adaugeo("nomenspatium", "nomenspatium");
            dx.Adaugeo("classis", "classisis");
            dx.Adaugeo("Libellus", "Libellus");
            dx.Adaugeo("immotus", "immotus");
            dx.Adaugeo("inane", "inane");
            dx.Adaugeo("Paelagus", "Paelagus");
            dx.Adaugeo("chorda", "chorda");
            dx.Adaugeo("argumenta", "argumenta");
            dx.Adaugeo("Lexicon", "Lexicon");
            dx.Adaugeo("novus", "novus");
            dx.Adaugeo("Adaugeo", "Adaugeo");
            dx.Adaugeo("LecticoScribo", "LecticoScribo");
            dx.Adaugeo("abstracto", "abstractoo");
            dx.Adaugeo("confractus", "confractus");
            dx.Adaugeo("Mathematica", "Mathematicaematica");
            dx.Adaugeo("Ordo", "Ordo");
            dx.Adaugeo("ordo", "ordo");
            dx.Adaugeo("prosingulus", "prosingulus");
            dx.Adaugeo("Lectico", "Lectico");
            dx.Adaugeo("Scribo", "Scribo");
            dx.Adaugeo("Omnes", "Omnes");
            dx.Adaugeo("interpretatio", "interpretatio");
            dx.Adaugeo("verumfalsus", "verumfalsus");
            dx.Adaugeo("verum", "verum");
            dx.Adaugeo("falsus", "falsus");
            dx.Adaugeo("nil", "nil");
            dx.Adaugeo("aut", "aut");
            dx.Adaugeo("et", "et");
            dx.Adaugeo("Clavis", "Clavis");
            dx.Adaugeo("Pretium", "Pretium");
            dx.Adaugeo("Restituo", "Restituo");
            dx.Adaugeo("Ordinarius", "Ordinarius");
            dx.Adaugeo("ToLatin", "AdLatinam");
            chorda ordo = Ordo.LecticoOmnesScriptum(argumenta[nil]);
            prosingulus (var interpretatio in dx )
            {
                ordo = ordo.Restituo(interpretatio.Clavis, interpretatio.Pretium);
            }
            Ordo.ScriboOmnesScriptum("scribo.scrptm", ordo);
        }
    }
}

डारन, अभी देखा C ++ लैटिन संस्करण ।।


s/ToLatin/AdLatinam/... भी, (नपुंसक बहुवचन) नहीं argsहोना चाहिए argumenta?
०५ पर DLosc

@DLosc मुझे नहीं पता कि यह होना चाहिए, मैं लैटिन नहीं जानता, लेकिन मैं इसके लिए आपका शब्द लूंगा।
काडे

अच्छा सामान, मैं सामान्य शब्दों के लिए हमारे अनुवादों की तुलना कर रहा हूं। "या" "ऑट" होना चाहिए।
ल्यूक

System Ratioलैटिन में क्यों है ? फिर लैटिन में अनुपात क्या है?
फुलेव

@ LưuV LnhPhúc ratio->ratione/proportio
केड

8

रूबी, जापानी - आकामा

जापानी में रूबी है rubii जो उबाऊ है (ルビー),, इसलिए मैं यह सचमुच नामित लाल मणि

रूबी में, चर और तरीके ASCII तक ही सीमित नहीं हैं, इसलिए कुछ ऐसा है

def フロートの文字化(フロート)
     = フロート.to_s.split(?.)
    甲[0] = 整数の文字化(甲[0])
    甲[1] = 甲[1].chars.map{|乙|R数字行列[乙]}.join
    甲.join(?点)
end

वैध रूबी है। मैं संभव के रूप में इस के रूप में ज्यादा उपयोग कर रहा हूँ कहानियो के लिए अपने सभी ठिकानों के लिए।

मुझे उम्मीद है कि माणिक्य के उपयोग के लिए रत्नों का उपयोग करना ठीक है, फिर भी कुछ बदसूरत बंदर-पैचिंग की आवश्यकता है।

आप TRANS_TABLEअधिक विधियों के लिए अनुवाद जोड़ने के लिए विस्तार कर सकते हैं । वह सब कुछ जो तालिका में "अनुवादित" नहीं है, इसके उच्चारण (या अधिक वर्तनी की तरह) के आधार पर जापानी में, इसलिए खाने को え becomes え ("ए-आह-टो") हो जाता है।

पूर्णांक को "बहुत" व्यावहारिक संकेतन में परिवर्तित करता है

# encoding:utf-8

require 'parser/current'

# super hack, don't try this at home!!
class Array
    def freeze
        self
    end
end
class Hash
    def freeze
        self
    end
end
class Parser::AST::Node
    def freeze
        self
    end
end
require 'unparser'
class Parser::Source::Comment
    def freeze
        self
    end
end

# translation memory
R翻訳メモリー = {}

# keyword translation
R鍵文字 = {
    :BEGIN => [:K_PREEXE, :"コンパイル時に最初に登録"],
    :END => [:K_POSTEXE, :"コンパイル時に最後に登録"],
    :__ENCODING__ => [:K_ENCODING, :"__エンコーディング__"],
    :__END__ => [:K_EEND, :"__終__"],
    :__FILE__ => [:K_FILE, :"__ソースファイル名__"],
    :alias => [:K_ALIAS, :"別名"],
    :and => [:K_AND, :"且つ"],
    :begin => [:K_BEGIN, :"開始"],
    :break => [:K_BREAK, :"抜ける"],
    :case => [:K_CASE, :"条件分岐"],
    :class => [:K_CLASS, :"クラス"],
    :def => [:K_DEF, :"定義"],
    :define => [:K_DEFINE, :""],
    :defined? => [:K_DEFINED, :"若し定義されたら"],
    :do => [:K_DO, :"実行"],
    :else => [:K_ELSE, :"違えば"],
    :elsif => [:K_ELSIF, :"それとも"],
    :end => [:K_END, :"此処迄"],
    :ensure => [:K_ENSURE, :"必ず実行"],
    :false => [:K_FALSE, :"偽"],
    :for => [:K_FOR, :"変数"],
    :if => [:K_IF, :"若し"],
    :in => [:K_IN, :"の次の値ごとに"],
    :module => [:K_MODULE, :"モジュール"],
    :next => [:K_NEXT, :"次"],
    :nil => [:K_NIL, :"無"],
    :not => [:K_NOT, :"ノット"],
    :or => [:K_OR, :"又は"],
    :redo => [:K_REDO, :"遣り直す"],
    :rescue => [:K_RESCUE, :"救出"],
    :retry => [:K_RETRY, :"再び試みる"],
    :return => [:K_RETURN, :"戻る"],
    :self => [:K_SELF, :"自身"],
    :super => [:K_SUPER, :"スーパー"],
    :then => [:K_THEN, :"成らば"],
    :true => [:K_TRUE, :"真"],
    :undef => [:K_UNDEF, :"定義を取消す"],
    :unless => [:K_UNLESS, :"若し違えば"],
    :until => [:K_UNTIL, :"次の通りである限り"],
    :when => [:K_WHEN, :"場合"],
    :while => [:K_WHILE, :"次の通りで無い限り"],
    :yield => [:K_YIELD, :"ブロックを呼び出す"],
}

R数字行列 = {
"0" => "零",
"1" => "壹",
"2" => "貮",
"3" => "參",
"4" => "肆",
"5" => "伍",
"6" => "陸",
"7" => "漆",
"8" => "捌",
"9" => "玖",
}

R翻訳行列 = {
# Symbols
:+ => :+,
:- => :-,
:/ => :/,
:* => :*,
:** => :**,
:! => :!,
:^ => :^,
:& => :&,
:| => :|,
:~ => :~,
:> => :>,
:< => :<,
:<< => :<<,
:% => :%,
:"!=" => :"!=",
:"=~" => :"=~",
:"~=" => :"~=",
:">=" => :">=",
:"<=" => :"<=",
:"=" => :"=",
:"==" => :"==",
:"===" => :"===",
:"<=>" => :"<=>",
:"[]" => :"[]",
:"[]=" => :"[]=",
:"!~" => :"!~",
# Errors
:ArgumentError => :引数エラー,
:EncodingError => :文字コードエラー,
:FiberError => :ファイバーエラー,
:IOError => :入出エラー,
:IndexError => :添字エラー,
:LoadError => :読込エラー,
:LocalJumpError => :エラー,
:NameError => :未定義エラー,
:NoMemoryError => :メモリー不足エラー,
:NotImplementedError => :未実装エラー,
:RangeError => :範囲エラー,
:RegexpError => :正規表現エラー,
:RuntimeError => :実行時エラー,
:ScriptError => :スクリプトエラー,
:SecurityError => :セキュリティエラー,
:StandardError => :通常エラー,
:SyntaxError => :シンタクスエラー,
:ThreadError => :スレッドエラー,
:TypeError => :タイプエラー,
:ZeroDivisionError => :零除算エラー,
# Constants
:Array => :配列,
:BasicObject => :基本オブジェクト,
:Bignum => :多倍長整数,
:Class => :クラス,
:Complex => :複素数,
:Exception => :例外,
:FalseClass => :偽クラス,
:File => :ファイル,
:Fiber => :ファイバー,
:Fixnum => :固定長整数,
:Float => :浮動小数点数,
:Hash => :ハッシュ表,
:Integer => :整数,
:IO => :入出,
:Kernel => :中核,
:Marshal => :元帥,
:Math => :数学,
:Module => :モジュール,
:NilClass => :無クラス,
:Numeric => :数値,
:Object => :オブジェクト,
:Prime => :素数,
:Proc => :プロック,
:Process => :プロセス,
:Random => :乱数,
:Range => :範囲,
:Rational => :有理数,
:Regexp => :正規表現,
:Set => :集合,
:Socket => :ソケット,
:String => :文字列,
:Symbol => :シンボル,
:Time => :時刻,
:Thread => :スレッド,
:TrueClass => :真クラス,
# Kernel
:inspect => :検査,
:p => :表示,
:print => :書く,
:puts => :言う,
:require => :取り込む,
# Object
:freeze => :凍結,
# String
:gsub => :全文字列置換,
:gsub! => :全文字列置換せよ,
}


INT_TABLE = [
    [7, "倶胝"],
    [14, "阿庾多"],
    [28, "那由他"],
    [56, "頻波羅"],
    [112, "矜羯羅"],
    [224, "阿伽羅"],
    [448, "最勝"],
    [896, "摩婆羅"],
    [1792, "阿婆羅"],
    [3584, "多婆羅"],
    [7168, "界分"],
    [14336, "普摩"],
    [28672, "禰摩"],
    [57344, "阿婆鈐"],
    [114688, "弥伽婆"],
    [229376, "毘攞伽"],
    [458752, "毘伽婆"],
    [917504, "僧羯邏摩"],
    [1835008, "毘薩羅"],
    [3670016, "毘贍婆"],
    [7340032, "毘盛伽"],
    [14680064, "毘素陀"],
    [29360128, "毘婆訶"],
    [58720256, "毘薄底"],
    [117440512, "毘佉擔"],
    [234881024, "称量"],
    [469762048, "一持"],
    [939524096, "異路"],
    [1879048192, "顛倒"],
    [3758096384, "三末耶"],
    [7516192768, "毘睹羅"],
    [15032385536, "奚婆羅"],
    [30064771072, "伺察"],
    [60129542144, "周広"],
    [120259084288, "高出"],
    [240518168576, "最妙"],
    [481036337152, "泥羅婆"],
    [962072674304, "訶理婆"],
    [1924145348608, "一動"],
    [3848290697216, "訶理蒲"],
    [7696581394432, "訶理三"],
    [15393162788864, "奚魯伽"],
    [30786325577728, "達攞歩陀"],
    [61572651155456, "訶魯那"],
    [123145302310912, "摩魯陀"],
    [246290604621824, "懺慕陀"],
    [492581209243648, "瑿攞陀"],
    [985162418487296, "摩魯摩"],
    [1970324836974592, "調伏"],
    [3940649673949184, "離憍慢"],
    [7881299347898368, "不動"],
    [15762598695796736, "極量"],
    [31525197391593472, "阿麼怛羅"],
    [63050394783186944, "勃麼怛羅"],
    [126100789566373888, "伽麼怛羅"],
    [252201579132747776, "那麼怛羅"],
    [504403158265495552, "奚麼怛羅"],
    [1008806316530991104, "鞞麼怛羅"],
    [2017612633061982208, "鉢羅麼怛羅"],
    [4035225266123964416, "尸婆麼怛羅"],
    [8070450532247928832, "翳羅"],
    [16140901064495857664, "薜羅"],
    [32281802128991715328, "諦羅"],
    [64563604257983430656, "偈羅"],
    [129127208515966861312, "窣歩羅"],
    [258254417031933722624, "泥羅"],
    [516508834063867445248, "計羅"],
    [1033017668127734890496, "細羅"],
    [2066035336255469780992, "睥羅"],
    [4132070672510939561984, "謎羅"],
    [8264141345021879123968, "娑攞荼"],
    [16528282690043758247936, "謎魯陀"],
    [33056565380087516495872, "契魯陀"],
    [66113130760175032991744, "摩睹羅"],
    [132226261520350065983488, "娑母羅"],
    [264452523040700131966976, "阿野娑"],
    [528905046081400263933952, "迦麼羅"],
    [1057810092162800527867904, "摩伽婆"],
    [2115620184325601055735808, "阿怛羅"],
    [4231240368651202111471616, "醯魯耶"],
    [8462480737302404222943232, "薜魯婆"],
    [16924961474604808445886464, "羯羅波"],
    [33849922949209616891772928, "訶婆婆"],
    [67699845898419233783545856, "毘婆羅"],
    [135399691796838467567091712, "那婆羅"],
    [270799383593676935134183424, "摩攞羅"],
    [541598767187353870268366848, "娑婆羅"],
    [1083197534374707740536733696, "迷攞普"],
    [2166395068749415481073467392, "者麼羅"],
    [4332790137498830962146934784, "駄麼羅"],
    [8665580274997661924293869568, "鉢攞麼陀"],
    [17331160549995323848587739136, "毘迦摩"],
    [34662321099990647697175478272, "烏波跋多"],
    [69324642199981295394350956544, "演説"],
    [138649284399962590788701913088, "無尽"],
    [277298568799925181577403826176, "出生"],
    [554597137599850363154807652352, "無我"],
    [1109194275199700726309615304704, "阿畔多"],
    [2218388550399401452619230609408, "青蓮華"],
    [4436777100798802905238461218816, "鉢頭摩"],
    [8873554201597605810476922437632, "僧祇"],
    [17747108403195211620953844875264, "趣"],
    [35494216806390423241907689750528, "至"],
    [70988433612780846483815379501056, "阿僧祇"],
    [141976867225561692967630759002112, "阿僧祇転"],
    [283953734451123385935261518004224, "無量"],
    [567907468902246771870523036008448, "無量転"],
    [1135814937804493543741046072016896, "無辺"],
    [2271629875608987087482092144033792, "無辺転"],
    [4543259751217974174964184288067584, "無等"],
    [9086519502435948349928368576135168, "無等転"],
    [18173039004871896699856737152270336, "不可数"],
    [36346078009743793399713474304540672, "不可数転"],
    [72692156019487586799426948609081344, "不可称"],
    [145384312038975173598853897218162688, "不可称転"],
    [290768624077950347197707794436325376, "不可思"],
    [581537248155900694395415588872650752, "不可思転"],
    [1163074496311801388790831177745301504, "不可量"],
    [2326148992623602777581662355490603008, "不可量転"],
    [4652297985247205555163324710981206016, "不可説"],
    [9304595970494411110326649421962412032, "不可説転"],
    [18609191940988822220653298843924824064, "不可説不可説"],
    [37218383881977644441306597687849648128, "不可説不可説転"],
].reverse

Rしヴぁう = {
    :b => :u,
    :c => :u,
    :d => :o,
    :f => :u,
    :g => :u,
    :h => :u,
    :j => :u,
    :k => :u,
    :l => :u,
    :m => :u,
    :n => :u,
    :p => :u,
    :q => :u,
    :r => :u,
    :s => :u,
    :t => :o,
    :v => :u,
    :w => :u,
    :x => :u,
    :y => :u,
    :z => :u,
}

R = {
    :a  => :あ, :i  => :い, :u  => :う, :e  => :え, :o  => :お,
    :ba => :ば, :bi => :び, :bu => :ぶ, :be => :べ, :bo => :ぼ,
    :ca => :か, :ci => :き, :cu => :く, :ce => :け, :co => :こ,
    :da => :だ, :di => :どぃ, :du => :どぅ, :de => :で, :do => :ど,
    :fa => :ふぁ, :fi => :ふぃ, :fu => :ふ, :fe => :ふぇ, :fo => :ふぉ,
    :ga => :が, :gi => :ぎ, :gu => :ぐ, :ge => :げ, :go => :ご,
    :ha => :は, :hi => :ひ, :hu => :ふ, :he => :へ, :ho => :ほ,
    :ja => :じぁ, :ji => :じ, :ju => :じぅ, :je => :じぇ, :jo => :じぉ,
    :ka => :か, :ki => :き, :ku => :く, :ke => :け, :ko => :こ,
    :la => :ら, :li => :り, :lu => :る, :le => :れ, :lo => :ろ,
    :ma => :ま, :mi => :み, :mu => :む, :me => :め, :mo => :も,
    :na => :な, :ni => :に, :nu => :ぬ, :ne => :ね, :no => :の,
    :pa => :ぱ, :pi => :ぴ, :pu => :ぷ, :pe => :ぺ, :po => :ぽ,
    :qa => :か, :qi => :き, :qu => :く, :qe => :け, :qo => :こ,
    :ra => :ら, :ri => :り, :ru => :る, :re => :れ, :ro => :ろ,
    :sa => :さ, :si => :すぃ, :su => :す, :se => :せ, :so => :そ,
    :ta => :た, :ti => :てぃ, :tu => :とぅ, :te => :て, :to => :と,
    :va => :ヴぁ, :vi => :ヴぃ, :vu => :ヴぅ, :ve => :ヴぇ, :vo => :ヴぉ,
    :wa => :わ, :wi => :ゐ, :wu => :ゐぅ, :we => :ゑ, :wo => :を,
    :xa => :くさ, :xi => :くすぃ, :xu => :くす, :xe => :くせ, :xo => :くそ,
    :ya => :いぁ, :yi => :いぃ, :yu => :いぅ, :ye => :いぇ, :yo => :いぉ,
    :za => :ざ, :zi => :ずぃ, :zu => :ず, :ze => :ぜ, :zo => :ぞ,
}

R = {
:が => :ガ,:ぎ => :ギ,:ぐ => :グ,:げ => :ゲ,:ご => :ゴ,
:ざ => :ザ,:じ => :ジ,:ず => :ズ,:ぜ => :ゼ,:ぞ => :ゾ,
:だ => :ダ,:ぢ => :ヂ,:づ => :ヅ,:で => :デ,:ど => :ド,
:ば => :バ,:び => :ビ,:ぶ => :ブ,:べ => :ベ,:ぼ => :ボ,
:ぱ => :パ,:ぴ => :ピ,:ぷ => :プ,:ぺ => :ペ,:ぽ => :ポ,
:あ => :ア,:い => :イ,:う => :ウ,:え => :エ,:お => :オ,
:か => :カ,:き => :キ,:く => :ク,:け => :ケ,:こ => :コ,
:さ => :サ,:し => :シ,:す => :ス,:せ => :セ,:そ => :ソ,
:た => :タ,:ち => :チ,:つ => :ツ,:て => :テ,:と => :ト,
:な => :ナ,:に => :ニ,:ぬ => :ヌ,:ね => :ネ,:の => :ノ,
:は => :ハ,:ひ => :ヒ,:ふ => :フ,:へ => :ヘ,:ほ => :ホ,
:ま => :マ,:み => :ミ,:む => :ム,:め => :メ,:も => :モ,
:ら => :ラ,:り => :リ,:る => :ル,:れ => :レ,:ろ => :ロ,
:わ => :ワ,:を => :ヲ,:ゑ => :ヱ,:ゐ => :ヰ,:ヴ => :ヴ,
:ぁ => :ァ,:ぃ => :ィ,:ぅ => :ゥ,:ぇ => :ェ,:ぉ => :ォ,
:ゃ => :ャ,:ゅ => :ュ,:ょ => :ョ,
:や => :ヤ,:ゆ => :ユ,:よ => :ヨ,
:ん => :ン,:っ => :ッ,:ゎ => :ヮ,
}


def 鍵文字を登録
    R鍵文字.each_pair do |甲,乙|
        Unparser::Constants.const_set 乙[0], 乙[1].to_s
        Unparser::Emitter::REGISTRY[乙[1].to_sym] = Unparser::Emitter::REGISTRY[甲.to_sym]
    end
    Unparser::Emitter::Repetition::MAP[:while] = R鍵文字[:while][1].to_s
    Unparser::Emitter::Repetition::MAP[:until] = R鍵文字[:until][1].to_s
    Unparser::Emitter::FlowModifier::MAP[:return] = R鍵文字[:return][1].to_s
    Unparser::Emitter::FlowModifier::MAP[:next] = R鍵文字[:next][1].to_s
    Unparser::Emitter::FlowModifier::MAP[:break] = R鍵文字[:break][1].to_s
    Unparser::Emitter::FlowModifier::MAP[:or] = R鍵文字[:or][1].to_s
    Unparser::Emitter::FlowModifier::MAP[:and] = R鍵文字[:and][1].to_s
    Unparser::Emitter::FlowModifier::MAP[:BEGIN] = R鍵文字[:BEGIN][1].to_s
    Unparser::Emitter::FlowModifier::MAP[:END] = R鍵文字[:END][1].to_s
end

class Float
    def inspect
        フロートの文字化(self)
    end
end
class BigDecimal
    def inspect
        フロートの文字化(self.to_s('F'))
    end
end
class Integer
    def inspect
        整数の文字化(self)
    end
end
class Fixnum
    def inspect
        整数の文字化(self)
    end
end
class Bignum
    def inspect
        整数の文字化(self)
    end
end

def 整数の文字化(整数)
    数字 = 整数.to_s
    if 数字.size <= 7
        return 数字.chars.map{|甲|R数字行列[甲]}.join
    else
         = INT_TABLE.find{|甲|甲[0] < 数字.size}
        整数の文字化(数字[0...-乙[0]]) + 乙[1] +  整数の文字化(数字[(-乙[0])..-1])
    end
end
def フロートの文字化(フロート)
     = フロート.to_s.split(?.)
    甲[0] = 整数の文字化(甲[0])
    甲[1] = 甲[1].chars.map{|乙|R数字行列[乙]}.join
    甲.join(?点)
end

def 文字を翻訳(文字)
    平片 = :hira
    文字.scan(/([^aeiou])?(\1)?([yj])?([aeiou])?/i).map do |子音甲,子音乙,子音丙,母音|
        母音 = 母音.to_s
        if 子音甲.nil? && 母音.empty?
            nil
        else
            平片 = :kata if (子音甲||母音).downcase!=(子音甲||母音)
            子音甲,子音乙,子音丙,母音 = [子音甲,子音乙,子音丙,母音].map{|x| x ? x.downcase : x }
            if 母音.empty?
                母音 = Rしヴぁう[子音甲.to_sym].to_s
            end
            # hu => ひゅ, qu => きゅ
            if 母音=="u" && (子音甲=="h"||子音甲=="q")
                子音丙 = "y"
            end
            # ja,ju,jo => じゃ、じゅ,じょ
            if (母音=="a"||母音=="u"||母音=="o") && 子音甲 == "j"
                子音丙 = "y"
            end
            # 拗音
            if 子音丙
                if [:a,:u,:o].include?(母音)
                    子音丙 = case 母音
                    when :a ; :ゃ
                    when :u ; :ゅ
                    when :o ; :ょ
                    end
                    母音 = :i
                else
                    子音丙 = nil
                end
            end
            # basic syllable
            仮名 = R平[(子音甲.to_s+母音).to_sym].to_s
            # 促音
            if 子音乙
                if %w[ま         の].include?(子音乙)
                    仮名 = "ん" + 仮名
                else
                    仮名 = "っ" + 仮名
                end
            end
            # 拗音
            if 子音丙
                仮名 = 仮名 + 子音丙
            end
            # lowercase => hiragana, uppercase => katakana
            if 平片==:kata
                仮名 = 仮名.gsub(/./){|丁|R片[丁.to_sym]}.to_s
            end
            仮名
        end
    end.compact.join
end

def 文を翻訳(文)
    文.scan(/(([a-z]+|[0-9]+|[^a-z0-9]+))/i).map do |文字,_|
        if 文字.index(/[a-z]/i)
            文字を翻訳(文字)
        elsif 文字.index(/[0-9]/)
            整数の文字化(文字)
        else
            文字
        end
    end.compact.join
end

def 翻訳(文章=nil)
    if 文章.empty? || 文章.nil?
        文章
    else
        if  = R翻訳行列[文章.to_sym]
             
        elsif  = R翻訳メモリー[文章]
            
        else   
             = 文を翻訳(文章.to_s)        
            R翻訳メモリー[文章] = 
        end
    end
end

def ノード毎に(幹,&塊)
    if 幹.is_a? Parser::AST::Node
        子供 = 幹.children
        yield 幹.type,子供
        幹.children.each{|甲|ノード毎に(甲,&塊)}
        if  = R鍵文字[幹.type] 
            幹.instance_variable_set(:@type,甲[1]) if [:self,:true,:false,:nil].include?(幹.type)
        end
    end
end

def 幹を翻訳(幹)
    ノード毎に(幹) do |類,子|
        case 
        when :arg
            子[0] = 翻訳(子[0]).to_sym
        when :blockarg
            子[0] = 翻訳(子[0]).to_sym
        when :casgn
            子[1] = ('C_'+翻訳(子[1]).to_s).to_sym
        when :const
            子[1] = 翻訳(子[1]).to_sym
        when :def
            子[0] = 翻訳(子[0]).to_sym      
        when :int
        when :kwoptarg
            子[0] = 翻訳(子[0]).to_sym
        when :lvar
            子[0] = 翻訳(子[0]).to_sym
        when :lvasgn
            子[0] = 翻訳(子[0]).to_sym
        when :optarg
            子[0] = 翻訳(子[0]).to_sym
        when :restarg
            子[0] = 翻訳(子[0]).to_sym
        when :send
            子[1] = 翻訳(子[1]).to_sym
        when :str
            子[0] = 翻訳(子[0]).to_s
        when :sym
            子[0] = 翻訳(子[0]).to_sym
        end
    end
end

def ノートを翻訳(ノート)
    ノート.each do |子|
        テキスト = 子.text
        if テキスト[0] == '#'
            子.instance_variable_set(:@text,"#" + 翻訳(テキスト[1..-1]))
        else
            子.instance_variable_set(:@text,"=開始\n" + 翻訳(テキスト[6..-6]) + "\n=此処迄\n")
        end
    end
end

########
# main #
########

# register keywords
鍵文字を登録
# read input, translate, and print result
コード = STDIN.read
コード.encode(Encoding::UTF_8)
コード = "#encoding:utf-8\n" + コード
幹, ノート = Parser::CurrentRuby.parse_with_comments(コード)
幹を翻訳(幹)
ノートを翻訳(ノート)
STDOUT.write Unparser.unparse(幹,ノート)

कुछ अनुवाद तालिकाओं आदि को छोड़ते हुए स्वयं ही चलें:

#えぬこどぃぬぐ:うとふ-捌
# えぬこどぃぬぐ:うとふ-捌
取り込む("ぱるせる/くっれぬと")
# すぺる はくく, どぬ'と とる とひす あと ほめ!!
クラス 配列
  定義 凍結
    自身
  此処迄
此処迄
クラス ハッシュ表
  定義 凍結
    自身
  此処迄
此処迄
クラス パルセル::アスト::ノデ
  定義 凍結
    自身
  此処迄
此処迄
取り込む("うぬぱるせる")
クラス パルセル::ソウルケ::コッメヌト
  定義 凍結
    自身
  此処迄
此処迄
定義 鍵文字を登録
  ル鍵文字.えあくふ_ぱいる 実行 |甲, 乙|
    ウヌパルセル::コヌスタヌトス.こぬすと_せと(乙[零], 乙[壹].と_す)
    ウヌパルセル::エミッテル::レギストル[乙[壹].と_すむ] = ウヌパルセル::エミッテル::レギストル[甲.と_すむ]
  此処迄
  ウヌパルセル::エミッテル::レペティティオヌ::マプ[:ゐぅひれ] = ル鍵文字[:ゐぅひれ][壹].と_す
  ウヌパルセル::エミッテル::レペティティオヌ::マプ[:うぬてぃる] = ル鍵文字[:うぬてぃる][壹].と_す
  ウヌパルセル::エミッテル::フロヰゥモドィフィエル::マプ[:れとぅるぬ] = ル鍵文字[:れとぅるぬ][壹].と_す
  ウヌパルセル::エミッテル::フロヰゥモドィフィエル::マプ[:ねくすと] = ル鍵文字[:ねくすと][壹].と_す
  ウヌパルセル::エミッテル::フロヰゥモドィフィエル::マプ[:ぶれあく] = ル鍵文字[:ぶれあく][壹].と_す
  ウヌパルセル::エミッテル::フロヰゥモドィフィエル::マプ[:おる] = ル鍵文字[:おる][壹].と_す
  ウヌパルセル::エミッテル::フロヰゥモドィフィエル::マプ[:あぬど] = ル鍵文字[:あぬど][壹].と_す
  ウヌパルセル::エミッテル::フロヰゥモドィフィエル::マプ[:ベギヌ] = ル鍵文字[:ベギヌ][壹].と_す
  ウヌパルセル::エミッテル::フロヰゥモドィフィエル::マプ[:エヌド] = ル鍵文字[:エヌド][壹].と_す
此処迄
クラス 浮動小数点数
  定義 検査
    フロートの文字化(自身)
  此処迄
此処迄
クラス ビグデキマル
  定義 検査
    フロートの文字化(自身.と_す("フ"))
  此処迄
此処迄
クラス 整数
  定義 検査
    整数の文字化(自身)
  此処迄
此処迄
クラス 固定長整数
  定義 検査
    整数の文字化(自身)
  此処迄
此処迄
クラス 多倍長整数
  定義 検査
    整数の文字化(自身)
  此処迄
此処迄
定義 整数の文字化(整数)
  数字 = 整数.と_す
  若し (数字.すぃぜ <= 漆)
    戻る 数字.くはるす.まぷ 実行 |甲|
      ル数字行列[甲]
    此処迄.じぉいぬ
  違えば
    乙 = イヌト_タブレ.ふぃぬど 実行 |甲|
      甲[零] < 数字.すぃぜ
    此処迄
    (整数の文字化(数字[零...(-乙[零])]) + 乙[壹]) + 整数の文字化(数字[(-乙[零])..壹])
  此処迄
此処迄
定義 フロートの文字化(フロート)
  甲 = フロート.と_す.すぷりと(".")
  甲[零] = 整数の文字化(甲[零])
  甲[壹] = 甲[壹].くはるす.まぷ 実行 |乙|
    ル数字行列[乙]
  此処迄.じぉいぬ
  甲.じぉいぬ("点")
此処迄
定義 文字を翻訳(文字)
  平片 = :ひら
  文字.すかぬ(/([^あえいおう])?(\壹)?([いぅ])?([あえいおう])?/i).まぷ 実行 |子音甲, 子音乙, 子音丙, 母音|
    母音 = 母音.と_す
    若し (子音甲.にる? && 母音.えむぷと?)
      無
    違えば
      若し ((子音甲 || 母音).どゐぅぬかせ != (子音甲 || 母音))
        平片 = :かた
      此処迄
      子音甲, 子音乙, 子音丙, 母音 = [子音甲, 子音乙, 子音丙, 母音].まぷ 実行 |くす|
        若し くす
          くす.どゐぅぬかせ
        違えば
          くす
        此処迄
      此処迄
      若し 母音.えむぷと?
        母音 = ルしヴぁう[子音甲.と_すむ].と_す
      此処迄
      # ふ => ひゅ, く => きゅ
      若し ((母音 == "う") && ((子音甲 == "ふ") || (子音甲 == "く")))
        子音丙 = "いぅ"
      此処迄
      # じぁ,じぅ,じぉ => じゃ、じゅ,じょ
      若し ((((母音 == "あ") || (母音 == "う")) || (母音 == "お")) && (子音甲 == "じぅ"))
        子音丙 = "いぅ"
      此処迄
      # 拗音
      若し 子音丙
        若し [:あ, :う, :お].いぬくるで?(母音)
          子音丙 = 条件分岐 母音
          場合 :あ
            :ゃ
          場合 :う
            :ゅ
          場合 :お
            :ょ
          此処迄
          母音 = :い
        違えば
          子音丙 = 無
        此処迄
      此処迄
      # ばすぃく すっらぶれ
      仮名 = ル平[(子音甲.と_す + 母音).と_すむ].と_す
      # 促音
      若し 子音乙
        若し ["ま", "み", "む", "め", "も", "な", "に", "ぬ", "ね", "の"].いぬくるで?(子音乙)
          仮名 = ("ん" + 仮名)
        違えば
          仮名 = ("っ" + 仮名)
        此処迄
      此処迄
      # 拗音
      若し 子音丙
        仮名 = (仮名 + 子音丙)
      此処迄
      # ろゑるかせ => ひらがな, うっぺるかせ => かたかな
      若し (平片 == :かた)
        仮名 = 仮名.全文字列置換(/./) 実行 |丁|
          ル片[丁.と_すむ]
        此処迄.と_す
      此処迄
      仮名
    此処迄
  此処迄.こむぱくと.じぉいぬ
此処迄
定義 文を翻訳(文)
  文.すかぬ(/(([あ-ず]+|[零-玖]+|[^あ-ず零-玖]+))/i).まぷ 実行 |文字, _|
    若し 文字.いぬでくす(/[あ-ず]/i)
      文字を翻訳(文字)
    違えば
      若し 文字.いぬでくす(/[零-玖]/)
        整数の文字化(文字)
      違えば
        文字
      此処迄
    此処迄
  此処迄.こむぱくと.じぉいぬ
此処迄
定義 翻訳(文章 = 無)
  若し (文章.えむぷと? || 文章.にる?)
    文章
  違えば
    若し (甲 = ル翻訳行列[文章.と_すむ])
      甲
    違えば
      若し (甲 = ル翻訳メモリー[文章])
        甲
      違えば
        甲 = 文を翻訳(文章.と_す)
        ル翻訳メモリー[文章] = 甲
      此処迄
    此処迄
  此処迄
此処迄
定義 ノード毎に(幹, &塊)
  若し 幹.いす_あ?(パルセル::アスト::ノデ)
    子供 = 幹.くひるどれぬ
    ブロックを呼び出す(幹.とぺ, 子供)
    幹.くひるどれぬ.えあくふ 実行 |甲|
      ノード毎に(甲, &塊)
    此処迄
    若し (甲 = ル鍵文字[幹.とぺ])
      若し [:せるふ, :とるえ, :ふぁるせ, :にる].いぬくるで?(幹.とぺ)
        幹.いぬすたぬけ_ヴぁりあぶれ_せと(:@とぺ, 甲[壹])
      此処迄
    此処迄
  此処迄
此処迄
定義 幹を翻訳(幹)
  ノード毎に(幹) 実行 |類, 子|
    条件分岐 類
    場合 :あるぐ
      子[零] = 翻訳(子[零]).と_すむ
    場合 :ぶろくかるぐ
      子[零] = 翻訳(子[零]).と_すむ
    場合 :かすぐぬ
      子[壹] = ("ク_" + 翻訳(子[壹]).と_す).と_すむ
    場合 :こぬすと
      子[壹] = 翻訳(子[壹]).と_すむ
    場合 :でふ
      子[零] = 翻訳(子[零]).と_すむ
    場合 :いぬと
    場合 :くをぷたるぐ
      子[零] = 翻訳(子[零]).と_すむ
    場合 :るヴぁる
      子[零] = 翻訳(子[零]).と_すむ
    場合 :るヴぁすぐぬ
      子[零] = 翻訳(子[零]).と_すむ
    場合 :おぷたるぐ
      子[零] = 翻訳(子[零]).と_すむ
    場合 :れすたるぐ
      子[零] = 翻訳(子[零]).と_すむ
    場合 :せぬど
      子[壹] = 翻訳(子[壹]).と_すむ
    場合 :すとる
      子[零] = 翻訳(子[零]).と_す
    場合 :すむ
      子[零] = 翻訳(子[零]).と_すむ
    此処迄
  此処迄
此処迄
定義 ノートを翻訳(ノート)
  ノート.えあくふ 実行 |子|
    テキスト = 子.てくすと
    若し (テキスト[零] == "#")
      子.いぬすたぬけ_ヴぁりあぶれ_せと(:@てくすと, "#" + 翻訳(テキスト[壹..壹]))
    違えば
      子.いぬすたぬけ_ヴぁりあぶれ_せと(:@てくすと, ("=開始\n" + 翻訳(テキスト[陸..陸])) + "\n=此処迄\n")
    此処迄
  此処迄
此処迄
########
# まいぬ #
########
# れぎすてる けいぅをるどす
鍵文字を登録
# れあど いぬぷと, とらぬすらて, あぬど ぷりぬと れすると
コード = ストドィヌ.れあど
コード.えぬこで(エヌコドィヌグ::ウトフ_捌)
コード = ("#えぬこどぃぬぐ:うとふ-捌\n" + コード)
幹, ノート = パルセル::クッレヌトルブ.ぱるせ_ゐとふ_こっめぬとす(コード)
幹を翻訳(幹)
ノートを翻訳(ノート)
ストドウト.ゐぅりて(ウヌパルセル.うぬぱるせ(幹, ノート))

या

# Output "I love Ruby"
say = "I love Ruby"
puts say

# Output "I *LOVE* RUBY"
say['love'] = "*love*"
puts say.upcase

# Output "I *love* Ruby"
# five times
5.times { puts say }

हो जाता है

#えぬこどぃぬぐ:うとふ-捌
# オウトプト "イ ろヴぇ ルブ"
さいぅ = "イ ろヴぇ ルブ"
言う(さいぅ)
# オウトプト "イ *ロヴェ* ルブ"
さいぅ["ろヴぇ"] = "*ろヴぇ*"
言う(さいぅ.うぷかせ)
# オウトプト "イ *ろヴぇ* ルブ"
# ふぃヴぇ てぃめす
伍.てぃめす 実行
  言う(さいぅ)
此処迄

8
यह कटकाना के बजाय हीरागाना का उपयोग करते हुए लगभग अनुमानित अंग्रेजी के लिए बहुत ही अस्वाभाविक लगता है (भले ही यह कितना शिथिल हो)।
स्टीफन

8

HTML5 / जावास्क्रिप्ट फ़्रेंच (HTML5 avec le Script au Caoua)

<Script>
    var a = document.currentScript.outerHTML;
    चेतावनी (a.replace (/ var a / g, "la variable« a »")
    .replace (/ चेतावनी \ (/ जी, "Alerter (")
    .replace (/ = / g, "स्था")
    .replace (/ outerHTML / जी, "HTMLExtérieur")
    .replace (/ \। प्रतिस्थापित \ ((+। +) \, (। +) \) / जी, "avec $ 1 remplacé par $ 2")
    .replace (/ \ / \ * और \ * \ // जी, "एट")
    .replace (/"(.+?)"/ जी, "« $ 1 »")
    /*and*/.replace(/currentScript/g,"scriptCourant ")
    );
</ Script>

आउटपुट:

<Script>
    la variable «a» est document.scriptCourant.HTMLExtérieur;
    alerter (avec / la variable «a» / g remplacé par «la variable« a »»
     avec / alert \ (/ g remplacé par «अलर्ट (»
     avec / est / g remplacé par «स्थि»
     avec / HTMLExtérieur / g remplacé par «HTMLExtérieur»
     avec /\.replace\((.+)\,(.+)\)/g remplacé par «avec $ 1 remplacé par $ 2»
     avec / \ / \ * और \ * \ // जी remplacé बराबर «et»
     avec / and(.+))/g remplacé par «« $ 1 »»
     et avec / scriptCourant / g remplacé par «scriptCourant»
    );
</ Script>

1
मुझे वास्तव में पसंद है कि आपने सिंटैक्स को अधिक फ्रेंच होने के लिए कैसे फिर से काम किया है! लेकिन क्या फ्रांसीसी भाषा का नाम वास्तव में " कॉफ़ीस्क्रिप्ट " का संकेत नहीं है ?
DLosc 16

तकनीकी रूप से, हाँ। लेकिन उस समय मैं सबसे अच्छा सोच सकता था। क्या आपके पास बेहतर सुझाव है?
SuperJedi224

1
"HTML5 avec le Script au Café de Java" उल्लसित है: D हमारे पास "कॉफी" के लिए एक समान (संबंधित) शब्द है: caoua ("का-वा")।
क्वेंटिन

3
मुझे गुइलेट्स का उपयोग बहुत पसंद है।
TRIG

1
यह ला वेरिएबल होना चाहिए , ले
लेमो लैम

8

जावास्क्रिप्ट, फ्रेंच - काऊस्क्रिप्ट

var input = prompt('Enter code');

var translations = {
  'alert': 'informe',
  'code': 'le code',
  'else': 'sinon',
  'Enter': 'Entrez',
  'if': 'si',
  'input': 'donnée',
  'function': 'fonction',
  'output': 'résultat',
  'prompt': 'soulève',
  'replace': 'remplace',
  'replacement': 'pièceDeReplacement',
  'return': 'remet',
  'translate': 'traduit',
  'translations': 'traductions',
  'typeof': 'typede',
  'undefined': 'indéterminé',
  'var': 'var',
  'w': 'm', // word
  'word': 'mot'
};

var output = input.replace(/(["'])(.*?[^\\])?\1/g, '« $2 »')
.replace(/\w+/g, function(word) {
  var replacement = translations[word];
  if (typeof replacement != 'undefined') {
    return replacement;
  } else {
    return word;
  }
});

alert(output);

मुझे पता है कि पहले से ही एक जावास्क्रिप्ट + फ्रेंच उत्तर है, लेकिन मेरा अलग-अलग अनुवाद और कोडिंग विधियों का उपयोग करता है।

कोड काफी सीधा है: यह इनपुट कोड में सभी शब्दों के माध्यम से पुनरावृत्त करता है, और उन्हें translationsऑब्जेक्ट से उनके संबंधित फ्रांसीसी शब्द से बदल देता है । यदि शब्द सूचीबद्ध नहीं है, तो इसे बदला नहीं गया है।

फ्रेंच उद्धरण चिह्नों के बजाय « गुइलेमेट्स » का उपयोग करता है , इसलिए यह पहली बार स्ट्रिंग का उपयोग करता है। (हां, यह स्ट्रिंग्स को पार्स करने के लिए regu͘͜l̴͝a ,r̶̸͢ ̵͜e̸͝x̵͞͞pr͘͘e͘͘s̵ś̸̷i̴͜o parns str का उपयोग करता है, इसलिए यह हमेशा पूरी तरह से काम नहीं करता है।) यहां आउटपुट तब होता है जब स्वयं ही चलाया जाता है:

var donnée = soulève(« Entrez le code »);

var traductions = {
  « informe »: « informe »,
  « le code »: « le le code »,
  ...
  « mot »: « mot »
};

var résultat = donnée.remplace(/(["« ])(.*?[^\\])?\1/g,  »« $2 »')
.remplace(/\m+/g, fonction(mot) {
  var pièceDeReplacement = traductions[mot];
  si (typede pièceDeReplacement != « indéterminé ») {
    remet pièceDeReplacement;
  } sinon {
    remet mot;
  }
});

informe(résultat);

कोड को आसानी से चलाने के लिए आप नीचे दिए गए स्टैक स्निपेट का उपयोग कर सकते हैं।


3
औई, ट्रे बिएन।
एलेक्स ए।

आपको विराम चिह्न के बाद रिक्त स्थान जोड़ना चाहिए - यह अच्छा दिखता है XD
कॉनर ओ'ब्रायन

7

कमोडोर 64 बुनियादी - बोस्नियाई / क्रोएशियाई / सर्बियाई

10 FOR I=40960 TO 49151:POKE I,PEEK(I):NEXT
20 DATA "KRAJ","ZA","OPET","PODACI","UZM#","UZMI","DIM","CITAJ","DE"
30 DATA "HAJD","TRCI","AKO","VRATI","IDIU","NAZAD","KOM","STOJ","NA"
40 DATA "CEKAJ","UCITAJ","SPASI","VIDI","DEF","GURNI","PIS#","PISI"
50 DATA "NAST","POPIS","BRIS","KOM","SIS","OTVORI","ZATVORI","UZMI"
60 DATA "NOV","TAB(","DO","FU","RAZ(","ONDA","NE","KORAK","+","-"
70 DATA "*","/","↑","I","ILI",">","=","<","ZN","C","ABS","KOR"
80 DATA "SLO","POZ","KOR","SLU","LOG","EKS","KOS","SIN","TAN","ATN"
90 DATA "VIRI","DUZ","NIZ$","VRI","ASK","KAR$","LEVO$","DESNO$","SRE$"
100 DATA "ID",""
110 D=41118
120 READ A$
130 IF A$="" THEN 210
140 L=LEN(A$)
150 IF L=1 THEN 190
160 FOR I=1 TO L-1
170 POKE D,ASC(MID$(A$,I,1)):D=D+1
180 NEXT
190 POKE D,ASC(MID$(A$,L,1))+128:D=D+1
200 GOTO 120
210 POKE 1, PEEK(1) AND 254

यह वास्तव में अनुवादित कीवर्ड के साथ BASIC कीवर्ड को बदल देता है, इसलिए आप कर सकते हैं जब आप नया कोड लिखते हैं तो उनका उपयोग करना चाहिए

बोस्नियाई बुनियादी

यह काम किस प्रकार करता है?

FOR I=40960 TO 49151:POKE I,PEEK(I):NEXT

यद्यपि ऐसा प्रतीत होता है कि यह रेखा बहुत कुछ नहीं करती है, यह वास्तव में BASIC ROM से RAM तक बाइट्स की प्रतिलिपि बनाता है। ROM स्थान पर लिखा गया डेटा उसी पते पर RAM में संग्रहीत किया जाता है।

कार्यक्रम की अंतिम पंक्ति BASIC की RAM कॉपी में बदल जाती है:

POKE 1,PEEK(1) AND 254

मेमोरी एड्रैस 41118-41373 में आरक्षित बुनियादी कीवर्ड की पूरी सूची है। इन शब्दों के ASCII वर्ण टोकन संख्या क्रम में संग्रहीत किए जाते हैं। प्रत्येक शब्द के अंतिम अक्षर का बिट # 7 शब्द के अंत (ASCII मूल्य + 128) को इंगित करने के लिए सेट किया गया है।

लाइन्स 20-100 में अनूदित कीवर्ड होते हैं। लाइन्स 110-200 ऊपर बताए अनुसार मेमोरी में कीवर्ड्स को पढ़ते हैं।


5
आप पहले व्यक्ति हो सकते हैं जिनका कोड परिवर्तन के बाद काम करता है !
सीजे डेनिस

जब C64 BASIC के निर्माता ने अपना काम पूरा किया, तो उन्होंने कहा कि "मैं उस दिन के लिए लंबे समय तक घोषणा करता हूं कि लोग बोस्नियाई में C64 का कार्यक्रम कर सकते हैं"। (शर्म की बात है कि वह> 640k RAM के बारे में ऐसे दूरदर्शी नहीं थे)
मार्क के कोवान

लेकिन अनुवाद राम में किया गया है और एक रिबूट के कारण रैम साफ हो जाएगा, हाँ?
बिल्ली

5

PHP - पुर्तगाली (pt-PT / अर्ध pt-BR)

यह काफी जटिल, और विशाल निकला!

<?

    echo preg_replace_callback(
        '@\b([\wâêçãáú]+)\b|(?:[\$\>]|[=\.]=|=\>?|&&)@i',
        function($match){

            $word = $match[0];

            if($word == '_')
            {
                return '_';
            }

            $list = array(
                'echo' => 'ecoar',
                'match' => 'equivalência',
                'array' => 'conjunto',
                'file' => 'ficheiro',
                'replace' => 'substitui',
                'callback' => 'executável',
                'function' => 'função',
                'list' => 'lista',
                'if' => 'se',
                'else' => 'senão',
                'word' => 'palavra',
                'piece' => 'pedaço',
                'pieces' => 'pedaços',
                'explode' => 'explosão',
                'implode' => 'implosão',
                'count' => 'conta',
                'tmp' => 'temporário',
                'k' => 'chave',
                'get' => 'busca',
                'contents' => 'conteúdos',
                'preg' => 'expressão_regular',
                'as' => 'como',
                'return' => 'retorna',
                'use' => 'utiliza',
                'strtoupper' => 'corda_para_maiúscula',
                'strtolower' => 'corda_para_minúscula',
                'unset' => 'remover_definição',
                'isset' => 'está_definido',
                'str' => 'corda',
                '$' => '€',
                '.=' => '.=',
                '=>' => 'recebe',
                '==' => 'igual',
                '=' => 'atribuí',
                '>' => 'maior_que',
                '&&' => 'e'
            );

            if($word[0] == '_' && $word[1] == '_')
            {
                return preg_replace_callback(
                    '@([A-Z]+)@',
                    function($word) use (&$list){
                        return strtoupper($list[strtolower($word[1])]);
                    },
                    $word
                );
            }
            else
            {
                $word = explode('_', $word);
                $pieces = count($word);
                if( $pieces > 1 )
                {
                    $tmp = $word[0];
                    $word[0] = $word[1];
                    $word[1] = $tmp;
                    unset($tmp);
                }

                foreach($word as $k => $piece)
                {
                    $word[$k] = isset($list[$piece])?$list[$piece]:$piece;
                    if( $k == 0 && $pieces > 1 )
                    {
                        $word[$k] .= 'r';
                    }
                }

                return implode('_', $word);
            }
        },
        file_get_contents(__FILE__)
    );

याद रखें कि यह कोड अपने आप से मेल खाने के लिए बनाया गया था! यह आंशिक रूप से अन्य कोड के साथ काम कर सकता है।


आउटपुट, अनुवादित:

<?

    ecoar substituir_expressão_regular_executável(
        '@\b([\wâêçãáú]+)\b|(?:[\€\maior_que]|[atribuí\.]atribuí|atribuí\maior_que?|e)@i',
        função(€equivalência){

            €palavra atribuí €equivalência[0];

            se(€palavra igual '_')
            {
                retorna '_';
            }

            €lista atribuí conjunto(
                'ecoar' recebe 'ecoar',
                'equivalência' recebe 'equivalência',
                'conjunto' recebe 'conjunto',
                'ficheiro' recebe 'ficheiro',
                'substitui' recebe 'substitui',
                'executável' recebe 'executável',
                'função' recebe 'função',
                'lista' recebe 'lista',
                'se' recebe 'se',
                'senão' recebe 'senão',
                'palavra' recebe 'palavra',
                'pedaço' recebe 'pedaço',
                'pedaços' recebe 'pedaços',
                'explosão' recebe 'explosão',
                'implosão' recebe 'implosão',
                'conta' recebe 'conta',
                'temporário' recebe 'temporário',
                'chave' recebe 'chave',
                'busca' recebe 'busca',
                'conteúdos' recebe 'conteúdos',
                'expressão_regular' recebe 'regularr_expressão',
                'como' recebe 'como',
                'retorna' recebe 'retorna',
                'utiliza' recebe 'utiliza',
                'corda_para_maiúscula' recebe 'parar_corda_maiúscula',
                'corda_para_minúscula' recebe 'parar_corda_minúscula',
                'remover_definição' recebe 'definiçãor_remover',
                'está_definido' recebe 'definidor_está',
                'corda' recebe 'corda',
                '€' recebe '€',
                '.=' recebe '.=',
                'recebe' recebe 'recebe',
                'igual' recebe 'igual',
                'atribuí' recebe 'atribuí',
                'maior_que' recebe 'quer_maior',
                'e' recebe 'e'
            );

            se(€palavra[0] igual '_' e €palavra[1] igual '_')
            {
                retorna substituir_expressão_regular_executável(
                    '@([A-Z]+)@',
                    função(€palavra) utiliza (&€lista){
                        retorna corda_para_maiúscula(€lista[corda_para_minúscula(€palavra[1])]);
                    },
                    €palavra
                );
            }
            senão
            {
                €palavra atribuí explosão('_', €palavra);
                €pedaços atribuí conta(€palavra);
                se( €pedaços maior_que 1 )
                {
                    €temporário atribuí €palavra[0];
                    €palavra[0] atribuí €palavra[1];
                    €palavra[1] atribuí €temporário;
                    remover_definição(€temporário);
                }

                foreach(€palavra como €chave recebe €pedaço)
                {
                    €palavra[€chave] atribuí está_definido(€lista[€pedaço])?€lista[€pedaço]:€pedaço;
                    se( €chave igual 0 e €pedaços maior_que 1 )
                    {
                        €palavra[€chave] .= 'r';
                    }
                }

                retorna implosão('_', €palavra);
            }
        },
        buscar_ficheiro_conteúdos(__FICHEIRO__)
    );

मैंने व्याकरण का यथासंभव सम्मान करने की कोशिश की है।

पहली पंक्ति में एक उदाहरण सही है:

echo preg_replace_callback

इको एक क्रिया है, और क्रियाएं क्रिया हैं। पुर्तगाली में सभी क्रियाएं समाप्त होती हैं r। बिना संदर्भ के
अनुवाद echoकरना होगा eco, जबकि संदर्भ में इसे ecoar('एक प्रतिध्वनि बनाना') होना है।

साथ ही, फ़ंक्शन preg_replace_callbackमें एक अनूठी बात है।
क्रिया पहले शब्द होना चाहिए।
शाब्दिक रूप से अनुवादित, यह होगा expressão_regular_substitui_executável, जिसे बहुत अनुवाद किया गया है! (इसका मतलब है replace the callback using a regular expression)
इसलिए, विशेष देखभाल की जानी चाहिए और पहले और दूसरे शब्दों को स्वैप करना चाहिए, इसलिए यह है substituir_expressão_regular_executável, जो थोड़ा बेहतर है।

अन्य कार्य, जैसे count, बिना rकिसी आदेश के विस्फोट के लिए छोड़ दिए जाते हैं (जैसे कि आप उबासी लिए जा रहे थे)।

कुछ शब्द अजीब निकले ...
stringमतलब corda, लेकिन अगर मैंने इसका सही अनुवाद किया तो यह होगा cadeia contínua/ininterrupta de caracteres

वह सब पर जोड़ने के लिए, मैं भी कुछ प्रतीकों और ऑपरेटरों (अनुवाद किया है $, =, =>)।
धन्यवाद @DLosc अनुवाद के विचार के लिए $में


2
आप के बजाय एक पुर्तगाली मौद्रिक प्रतीक का उपयोग कर सकते हैं $, इस भाषा के समान ।
DLosc

@DLosc विचार के लिए बहुत बहुत धन्यवाद। मैंने आगे बढ़कर अन्य ऑपरेटरों और प्रतीकों का अनुवाद भी किया।
इस्माईल मिगुएल

4

Fondamentale Visuale .RETE - विजुअल बेसिक .NET, इटैलियन के लिए अनुवादित

कार्यक्रम बहुत सरल है (स्वयं अनुवाद करने के उद्देश्य से)।

कुछ बिंदु:

  • आई / ओ: यह एक मॉड्यूल है जिसे स्पष्ट फ़ंक्शन कहा जाता है

  • व्याकरण ज्यादातर सही है (लगभग प्राकृतिक लगता है)

  • अंग्रेजी और इतालवी शब्द की स्थिति अलग है, इसलिए मैं इसे आसानी से ठीक करने के लिए कुछ फ़ंक्शन नहीं लिख सकता हूं, और स्थिर अनुवाद जोड़े पसंद कर सकता हूं

  • मैं दूसरे व्यक्ति को संयोगात्मक क्रियाओं को मिलाता हूं, जैसा कि एक शाब्दिक इतालवी अनुवाद में वे ध्वनि और गलत महसूस करेंगे (जैसा कि गलत 8d 1+ व्यक्ति में बात कर रहे हैं)

  • अनुवाद जोड़े आपस में जुड़े हुए हैं इसलिए अंग्रेजी अनुवाद भी नहीं मिलता है। इस प्रकार, अगर कोई दुभाषिया होता, तो अनुवादित कार्यक्रम काम करेगा केवल "+"ओवरट्रांसलेशन से बचने के लिए मैंने कुछ छोड़ दिया (कई अंग्रेजी शब्द इतालवी लोगों में निहित हैं, इसलिए यह इतालवी को प्रत्ययों के दोहराव के साथ इतालवी में अनुवाद करना होगा)

मॉड्यूल इतालवी

    नई सूची के रूप में डिम्प टोकन (स्टर्लिंग का, स्ट्रिंग)

    उप AddPair (एक स्ट्रिंग के रूप में, स्ट्रिंग के रूप में बी)
        टोकन। जोड़ें (टपल। क्रेट (ए, बी))
    अंत उप

    उप init ()
        AddPair ("इटालियन", "इटालिया" + "नहीं"): AddPair ("मॉड्यूल", "मोडो")
        AddPair ("अभाव", "नॉन हा"): AddPair ("AddPair", "AggiungiCoppia")
        AddPair ("इटालियन", "लिटलियानो")
        AddPair ("अगला", "Appresso"): AddPair ("टोकन", "फ्रेमेंटी")
        AddPair ("init", "iniz"): AddPair ("अस", "कम")
        AddPair ("Tuple", "Coppia"): AddPair ("प्रत्येक के लिए", "प्रति ओवर")
        AddPair ("", "Di"): AddPair ("केवल", "ई बस्ता")
        AddPair ("Sub", "Proc"): AddPair ("इसलिए मैं जोड़ूंगा", "quindi aggiunger ag")
        AddPair ("फंक्शन", "फ़नज़िओन"): AddPair ("मंद", "Def")
        AddPair ("a", "una"): AddPair ("सपोर्ट", "il s" + "umarkets")
        AddPair ("उपयोग किए गए प्रकार", "मैं टिपी यूज़ज़ीटी")
        REM इतालवी में विशेषणों के लिए लिंग-इंडिपेंडेंट फॉर्म का अभाव है
        REM इसलिए मैं केवल उपयोग किए गए प्रकारों के लिए समर्थन जोड़ूंगा
        AddPair ("नई सूची", "ऊना नुओवा सूची")
        AddPair ("Create", "Crea"): AddPair ("एंड", "फाइन")
        AddPair ("REM", "RIC"): AddPair ("for", "per")
        AddPair ("जेंडर-इंडिपेंडेंट फॉर्म", "फॉर्म इंडिपेंडेंट डल जीनियर")
        AddPair ("स्ट्रिंग", "Sequenza"): AddPair ("विशेषण", "gli aggettivi")
        AddPair ("TranslateToItalian", "TraduciInItaliano")
    अंत उप

    स्ट्रिंग के रूप में
        स्ट्रिंग के रूप में मंद = ओ: init ()
        टोकन में प्रत्येक टी ट्यूपल (स्ट्रिंग, स्ट्रिंग के रूप में) के लिए
            ret = ret.eplace (t.Item1, t.Item2)
        आगे
        वापस लौटो
    अंत समारोह

अंत मॉड्यूल

इतालवी, यहाँ हम चले!

खुद पर परिणाम:

मोडुलो इटैलिक

    Def Frammenti आओ una ​​Nuova Lista (Di Coppia (Di Sequenza, Sequenza))

    Proc AggiungiCoppia (एक सेक्वेन्ज़ा, बी सेक्वेन्ज़ा)
        Frammenti.Add (Coppia.Crea (ए, बी))
    ठीक प्रोक

    प्रोज इंजी ()
        AggiungiCoppia ("Italiano", "Italia" + "no"): AggiungiCoppia ("मोडुलो", "मोडुलो")
        AggiungiCoppia ("नॉन हा", "नॉन हा"): AggiungiCoppia ("एग्रीगुनि कॉपिया", "AggiungiCoppia")
        एग्गुनगि कोप्पिया ("लिटलियानो", "लिटलियानो")
        AggiungiCoppia ("Appresso", "Appresso"): AggiungiCoppia ("Frammenti", "Frammenti")
        AggiungiCoppia ("iniz", "iniz"): AggiungiCoppia ("आओ", "आओ")
        AggiungiCoppia ("Coppia", "Coppia"): AggiungiCoppia ("Per Ogni", "Per Ogni")
        AggiungiCoppia ("Di", "Di"): AggiungiCoppia ("ई बस्ता", "ई बस्ता")
        AggiungiCoppia "
        AggiungiCoppia ("Funzione", "Funzione"): AggiungiCoppia ("Def", "Def")
        AggiungiCoppia ("una", "una"): AggiungiCoppia ("il supporto", "il s" + "upreto")
        AggiungiCoppia ("मैं टिपी यूज़ज़ीति", "आई टिपी यूज़ज़ीति")
        RIC l'italiano non ha una forma indipendente dal genere per gli aggettivi
        RIC quindi aggiungerò il supporto प्रति i टिपी यूज़ज़ीति ई बस्ता
        एग्ग्युंगीकोपिया ("ऊना नुओवा लिस्टा", "ऊना नुओवा लिस्टा")
        AggiungiCoppia ("Crea", "Crea"): AggiungiCoppia ("फाइन", "फाइन")
        AggiungiCoppia ("RIC", "RIC"): AggiungiCoppia ("प्रति", "प्रति")
        AggiungiCoppia ("फ़ॉर्म इंडिपेंडेंट डल जीनरे", "फ़ॉर्म इंडिपेंडेंट डेल जीन"))
        AggiungiCoppia ("Sequenza", "Sequenza"): AggiungiCoppia ("gli aggettivi", "gli aggettivi")
        AggiungiCoppia ("TraduciInItaliano", "TraduciInItaliano")
    ठीक प्रोक

    फ़नज़ियोन ट्रुडुइंसइटलियनो (ओ कम सेक्वेंज़ा) सेक्वेंज़ा आओ
        डिक्वेस्ट आओ आओ सेक्जेनिया = ओ: इंज ()
        फ्रामेंटी में प्रति ओगनी टी कम कोपिया (डि सेक्वेंज़ा, सेक्वेंज़ा)
            ret = ret.eplace (t.Item1, t.Item2)
        Appresso
        वापस लौटो
    ललित फ़नज़िओन

ठीक मोदुलो

आपके उत्तर के लिए धन्यवाद! बस कुछ ही बिंदु: आप टिप्पणियों में अंग्रेजी पाठ का अनुवाद करने वाले हैं और मैं अभी भी कई अंग्रेजी शब्दों को देख सकता हूं "Mod" + "ule"। पत्र के बजाय चुनौती की भावना के लिए अधिक लक्ष्य बनाने का प्रयास करें।
सीजे डेनिस

@CJDennis मैंने तय किया है कि!
beppe9000

3

सी, स्पेनिश - सी

STDIN / STDOUT (उपयोग ./c-spanish < c-spanish.c) के माध्यम से इनपुट / आउटपुट ।

यदि extra = 0इसे बदल दिया जाता है extra = 1, तो इस कार्यक्रम का आउटपुट अनिवार्य रूप से एक आपसी क्वीन है। अन्यथा, आउटपुट एक संकलन योग्य सी प्रोग्राम है जो काम करता है cat

स्रोत में अतिरिक्त स्थान आवश्यक हैं (क्योंकि वे स्पेनिश संस्करण में पात्रों के साथ बदल दिए गए हैं)।

#define B(_, __) __ ## _
#define C(_, __) B(_,__)
#define char C(C(r, ha), c)
#define gets  C(ets, g)
#define if C(f, i)
#define int C(C(ed, n), s##ig)
#define is ==
#define main      C(C(n, ai), m)
#define puts C(C(s, t), C(u, p))
#define void C(id, C(o, v))
#define    while(x) C(r, C(o, f))(;x;)

int x, y, extra = 0;
void count (char *sheep);
void try_replace        (char *cake  , char *bacon , char *sheep);
void translate(char *sheep){
    char *array [] = {
        "array ", "matriz",         "bacon ", "tocino",
        "cake  ", "pastel",         "char", "car ",
        "count ", "cuenta",         "gets ", "traec",
        "if", "si",                 "int ", "ent ",
        "is", "es",                 "main     ", "principal",
        "peace", "paz  ",           "puts", "ponc",
        "sheep", "oveja",           "translate", "traduce  ",
        "truth ", "verdad",         "try_replace        ", "trata_de_reemplazar",
        "void", "nada",             "war   ", "guerra",
        "   while", "mientras",
    };
    int war    = 19, peace = -1;
       while(!(--war    is peace)){
        count (sheep);
        int truth  = x, cake   = 0;
           while(!(cake   is truth )){
            try_replace        (&sheep[cake  ], array [2 * war   ], array [1 + 2 * war   ]);
            if(extra && !y)
                try_replace        (&sheep[cake  ], array [1 + 2 * war   ], array [2 * war   ]);
            ++cake  ;
        }
    }
}

int main     (){
    char bacon [9999];
       while(gets (bacon )){
        translate(bacon );
        puts(bacon );
    }
}

void count (char *sheep){
    x = 0;
       while(*sheep++ && ++x);
}
void try_replace        (char *cake  , char *bacon , char *sheep){
    y = 0;
    char *truth  = bacon ;
       while(*cake   && *truth  && *sheep && *cake   is *truth )
        ++cake  , ++truth , ++sheep;
    if(!*truth ){
           while(!(bacon  is truth )) *--cake   = *(--truth , --sheep);
           y = 1;
    }
}

अनुवादित शब्द:

array               -> matriz
bacon               -> tocino
cake                -> pastel
char                -> car (short for carácter)
count               -> cuenta
gets                -> traec (TRAE la Cadena)
if                  -> si
int                 -> ent (short for entero)
is                  -> es
main                -> principal
peace               -> paz
puts                -> ponc (PON la Cadena)
sheep               -> oveja
translate           -> traduce
truth               -> verdad
try_replace         -> trata_de_reemplazar
void                -> nada
war                 -> guerra
while               -> mientras

उत्पादन

साथ extra = 0:

#define B(_, __) __ ## _
#define C(_, __) B(_,__)
#define car  C(C(r, ha), c)
#define traec C(ets, g)
#define si C(f, i)
#define ent C(C(ed, n), s##ig)
#define es ==
#define principal C(C(n, ai), m)
#define ponc C(C(s, t), C(u, p))
#define nada C(id, C(o, v))
#define mientras(x) C(r, C(o, f))(;x;)

ent x, y, extra = 0;
nada cuenta(car  *oveja);
nada trata_de_reemplazar(car  *pastel, car  *tocino, car  *oveja);
nada traduce  (car  *oveja){
    car  *matriz[] = {
        "matriz", "matriz",         "tocino", "tocino",
        "pastel", "pastel",         "car ", "car ",
        "cuenta", "cuenta",         "traec", "traec",
        "si", "si",                 "ent ", "ent ",
        "es", "es",                 "principal", "principal",
        "paz  ", "paz  ",           "ponc", "ponc",
        "oveja", "oveja",           "traduce  ", "traduce  ",
        "verdad", "verdad",         "trata_de_reemplazar", "trata_de_reemplazar",
        "nada", "nada",             "guerra", "guerra",
        "mientras", "mientras",
    };
    ent guerra = 19, paz   = -1;
    mientras(!(--guerra es paz  )){
        cuenta(oveja);
        ent verdad = x, pastel = 0;
        mientras(!(pastel es verdad)){
            trata_de_reemplazar(&oveja[pastel], matriz[2 * guerra], matriz[1 + 2 * guerra]);
            si(extra && !y)
                trata_de_reemplazar(&oveja[pastel], matriz[1 + 2 * guerra], matriz[2 * guerra]);
            ++pastel;
        }
    }
}

ent principal(){
    car  tocino[9999];
    mientras(traec(tocino)){
        traduce  (tocino);
        ponc(tocino);
    }
}

nada cuenta(car  *oveja){
    x = 0;
    mientras(*oveja++ && ++x);
}
nada trata_de_reemplazar(car  *pastel, car  *tocino, car  *oveja){
    y = 0;
    car  *verdad = tocino;
    mientras(*pastel && *verdad && *oveja && *pastel es *verdad)
        ++pastel, ++verdad, ++oveja;
    si(!*verdad){
        mientras(!(tocino es verdad)) *--pastel = *(--verdad, --oveja);
           y = 1;
    }
}

साथ extra = 1:

#define B(_, __) __ ## _
#define C(_, __) B(_,__)
#define car  C(C(r, ha), c)
#define traec C(ets, g)
#define si C(f, i)
#define ent C(C(ed, n), s##ig)
#define es ==
#define principal C(C(n, ai), m)
#define ponc C(C(s, t), C(u, p))
#define nada C(id, C(o, v))
#define mientras(x) C(r, C(o, f))(;x;)

ent x, y, extra = 1;
nada cuenta(car  *oveja);
nada trata_de_reemplazar(car  *pastel, car  *tocino, car  *oveja);
nada traduce  (car  *oveja){
    car  *matriz[] = {
        "matriz", "array ",         "tocino", "bacon ",
        "pastel", "cake  ",         "car ", "char",
        "cuenta", "count ",         "traec", "gets ",
        "si", "if",                 "ent ", "int ",
        "es", "is",                 "principal", "main     ",
        "paz  ", "peace",           "ponc", "puts",
        "oveja", "sheep",           "traduce  ", "translate",
        "verdad", "truth ",         "trata_de_reemplazar", "try_replace        ",
        "nada", "void",             "guerra", "war   ",
        "mientras", "   while",
    };
    ent guerra = 19, paz   = -1;
    mientras(!(--guerra es paz  )){
        cuenta(oveja);
        ent verdad = x, pastel = 0;
        mientras(!(pastel es verdad)){
            trata_de_reemplazar(&oveja[pastel], matriz[2 * guerra], matriz[1 + 2 * guerra]);
            si(extra && !y)
                trata_de_reemplazar(&oveja[pastel], matriz[1 + 2 * guerra], matriz[2 * guerra]);
            ++pastel;
        }
    }
}

ent principal(){
    car  tocino[9999];
    mientras(traec(tocino)){
        traduce  (tocino);
        ponc(tocino);
    }
}

nada cuenta(car  *oveja){
    x = 0;
    mientras(*oveja++ && ++x);
}
nada trata_de_reemplazar(car  *pastel, car  *tocino, car  *oveja){
    y = 0;
    car  *verdad = tocino;
    mientras(*pastel && *verdad && *oveja && *pastel es *verdad)
        ++pastel, ++verdad, ++oveja;
    si(!*verdad){
        mientras(!(tocino es verdad)) *--pastel = *(--verdad, --oveja);
           y = 1;
    }
}

है defineएक स्पेनिश शब्द? याद रखें कि आपके कोड का अनुवाद होने के बाद अपनी मूल भाषा में काम नहीं करना है, केवल दुभाषिया / संक्षिप्त के काल्पनिक अनुवाद संस्करण में।
सीजे डेनिस

3
@CJDennis defineवास्तव में स्पेनिश में एक शब्द है (दूसरे व्यक्ति के लिए definir)
es1024

3

रूबी, कैटलन - रूबी

यह रूबी में काफी छोटा कोड है, इसलिए यह वह प्रतिनिधि नहीं है, लेकिन मैं फ़ंक्शन नामों में थोड़ा अधिक दिखाने के लिए थोड़ा अधिक क्रिया कर रहा हूं। इस अभ्यास ने मुझे बहुत सारे विश्वविद्यालय कक्षाओं को याद किया जहां हमने "प्रोग्राम" के समान छद्मकोड का उपयोग किया था।

words = {
    while: "mentre",
    words: "paraules",
    end: "fi",
    nil: "res",
    gets: "obtingues_cadena",
    line: "línia",
    each: "per_cada_una",
    do: "fes",
    original: "original",
    replacement: "intercanvi",
    gsub: "substitueix_globalment",
    puts: "posa_cadena"
}

while (line = gets) != nil
    words.each do |original,replacement|
        line.gsub! original.to_s,replacement
    end
    puts line
end

खुद के लिए लागू हो जाता है:

paraules = {
    # Eliminat per simplificar codi
}

mentre (línia = obtingues_cadena) != res
    paraules.per_cada_una fes |original,intercanvi|
        línia.substitueix_globalment! original.to_s,intercanvi
    fi
    posa_cadena línia
fi

1
मुझे यकीन है कि मैं अनुमान लगा सकता हूं कि क्या Eliminat per simplificar codiमतलब है!
CJ डेनिस

मुझे यकीन है कि आप भी कर सकते हैं!
रोरलर्क

3

पायथन 3, लोजबान

जहाँ मुझे सम्मत स्थानों को फिर से लिखने की आवश्यकता थी, मैंने शब्दों को कोष्ठक में संलग्न किया, उदाहरण के लिए (ते tcidu fe)

कोड:

dictionary = [
    ('basti fa', 'with'),
    ('ro', 'for'),
    ("vidnyja'o", 'print'),
    ('nenri', 'in'),
    ('lujvo', 'word'),
    ('jbovlaste', 'dictionary'),
    ('basygau', 'replace'),
    ('(te tcidu fe)', 'read'),
    ('datnyvei','file'),
    ('vlamei', 'text'),
    ('kargau', 'open'),
    ('la .lojban.', 'lojban'),
    ('no', '0'),
    ('pa', '1'),
    ('as', ''),
    ('with', 'basti fa'),
    ('for', 'ro'),
    ('print', "vidnyja'o"),
    ('in', 'nenri'),
    ('word', 'lujvo'),
    ('dictionary', 'jbovlaste'),
    ('replace', 'basygau'),
    ('read', '(te tcidu fe)'),
    ('file', 'datnyvei'),
    ('text', 'vlamei'),
    ('open', 'kargau'),
    ('lojban', 'la .lojban.'),
    ('0', 'no'),
    ('1', 'pa')
]

with open('lojban.py', 'r') as file:
    text = file.read()

for word in dictionary:
    text = text.replace(word[0], word[1])

print(text)

और इसका आउटपुट:

jbovlaste = [
    ('basti fa', 'basti fa'),
    ('ro', 'ro'),
    ("vidnyja'o", 'vidnyja'o'),
    ('nenri', 'nenri'),
    ('lujvo', 'lujvo'),
    ('jbovlaste', 'jbovlaste'),
    ('basygau', 'basygau'),
    ('(te tcidu fe)', '(te tcidu fe)'),
    ('datnyvei','datnyvei'),
    ('vlamei', 'vlamei'),
    ('kargau', 'kargau'),
    ('la .lojban.', 'la .lojban.'),
    ('no', 'no'),
    ('pa', 'pa'),
    ('', ''),
    ('basti fa', 'basti fa'),
    ('ro', 'ro'),
    ('vidnyja'o', "vidnyja'o"),
    ('nenri', 'nenri'),
    ('lujvo', 'lujvo'),
    ('jbovlaste', 'jbovlaste'),
    ('basygau', 'basygau'),
    ('(te tcidu fe)', '(te tcidu fe)'),
    ('datnyvei', 'datnyvei'),
    ('vlamei', 'vlamei'),
    ('kargau', 'kargau'),
    ('la .lojban.', 'la .lojban.'),
    ('no', 'no'),
    ('pa', 'pa')
]

basti fa kargau('la .lojban..py', 'r')  datnyvei:
    vlamei = datnyvei.(te tcidu fe)()

ro lujvo nenri jbovlaste:
    vlamei = vlamei.basygau(lujvo[no], lujvo[pa])

vidnyja'o(vlamei)

readबस बन जाता है (te tcidu fe)। क्या इसे कुछ और करना चाहिए?
सीजे डेनिस

@CJDennis नहीं, हालांकि मुझे लगता है कि मैं रिक्त स्थान के बजाय अंडरस्कोर का उपयोग कर सकता था और कोष्ठक खोद सकता था।
तुओमास लाककोनेन

ठीक। कोड के ऊपर टिप्पणी से मुझे लगा कि यह कुछ पुनर्व्यवस्थित करने वाला था!
CJ डेनिस

1

जावास्क्रिप्ट ES6, एस्पेरांतो, criptavoskripto

f=_=>f.toString().replace(/toString/g,'konvertiLaĉi').replace(/replace/g,'anstataŭigi');f()

मैंने कैमलकासिंग और शब्दांकन के साथ कुछ स्वतंत्रताएं लीं (मैंने 'स्ट्रिंग टू' के बजाय 'कन्वर्ट टू स्ट्रिंग' में अनुवाद किया)। जब मेरे पास अधिक समय होगा तो मैं बाद में चीजों को जटिल करूंगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.