আপনার ইংরেজি উত্স কোডটি একটি বিদেশী ভাষায় অনুবাদ করুন [বন্ধ]


66

আমি লক্ষ্য করেছি যে ইংরেজি ভিত্তিক কম্পিউটার ভাষার একটি অসম্পূর্ণ সংখ্যা রয়েছে number আমি বিদ্যমান কম্পিউটারের ভাষাগুলি বিদেশী ভাষায় অনুবাদ করে এটি ঠিক করার প্রস্তাব দিচ্ছি!

  • একটি কম্পিউটার ভাষা চয়ন করুন যা ইংরাজী কীওয়ার্ড / ফাংশন ব্যবহার করে
  • ইংরেজি ব্যতীত অন্য যে কোনও প্রাকৃতিক ভাষা বেছে নিন
  • এমন একটি প্রোগ্রাম লিখুন যা নিজস্ব উত্স কোড বা অন্য কোনও প্রোগ্রামে কীওয়ার্ড / ফাংশনগুলির একই উপসেট ব্যবহার করে রচিত অন্য কোনও প্রোগ্রামকে অন্য ভাষায় অনুবাদ করে
  • উত্স কোড এবং আউটপুট পোস্ট (অনুবাদকৃত কোড)

আপনার পোস্টটি এমন কিছু দিয়ে শুরু করুন:

বেসিক, ফরাসি

অথবা

বেসিক, ফরাসি - ফন্ডমেনটাল

আপনি না চাইলে আপনাকে ভাষার নামটি অনুবাদ করতে হবে না, এটি কেবল মজাদার জন্য!

আপনার নির্বাচিত ভাষায় আপনাকে সমস্ত কীওয়ার্ড / ফাংশন অনুবাদ করতে হবে না, কেবলমাত্র আপনার উত্স কোডে আপনি যা ব্যবহার করেন তা কেবল। উদাহরণস্বরূপ, পিএইচপি-র হাজার হাজার রয়েছে তাই আপনাকে অবশ্যই এগুলি সমস্ত অনুবাদ করার দরকার নেই! এছাড়াও, আপনি যদি কোনও মন্তব্য ব্যবহার করেন তবে দয়া করে সেগুলিও অনুবাদ করার জন্য যথাসাধ্য চেষ্টা করুন! আপনার প্রোগ্রামটি শেষ হওয়ার পরে কোনও স্বীকৃত ইংরেজি শব্দ থাকা উচিত নয়, যদি না সেগুলি বিদেশী ভাষার জন্য উপযুক্ত হয়। স্ট্রিংয়ে থাকা শব্দগুলিরও খুব অনুবাদ করা উচিত (অর্থাত আপনার অনুবাদিত প্রোগ্রামটি আর ইংরাজী উত্স কোডে কাজ করবে না, এমনকি এটি চালানো যেতে পারে!)। আশা করি আপনার প্রোগ্রামটি এমন কোনও প্রোগ্রামারকে অন্যরকম ভাষায় কথা বলার জন্য কিছুটা উপলব্ধি করবে!

উদাহরণস্বরূপ, ফ্রেঞ্চ if () {} elseif () {} else {}হয়ে উঠতে পারে si () {} sinonsi () {} sinon {}! আপনি পার্ল এর অনুবাদ হয়েছে elsifফরাসি, হয়ত আপনি দ্বিতীয় ড্রপ চাই nপথ দ্বিতীয় eইংরেজিতে অবনমিত হয়েছে: sinosi। ফরাসি ইন অন্যথায় সম্ভাবনা বেশি হবে autre কিন্তু বিকল্প sinon ( বা অন্য , অন্যথায় ) আমার nicer লাগছে!

সৃজনশীল হও! কম্পিউটার এবং প্রাকৃতিক ভাষা উভয়ের অনুভূতি ক্যাপচার চেষ্টা করুন! ব্রেইনফাক, সিজেম ইত্যাদির মতো ভাষা যেমন ইংরাজী টোকেন নেই সেগুলি ব্যবহার করা যায় না। বেসিক বা কোবলের মতো ভাষা অনেক বেশি উপযুক্ত। অর্থপূর্ণ পরিবর্তনশীল নামগুলি ব্যবহার করুন এবং সেগুলিও অনুবাদ করুন যদি না আপনার ভাষা ইংরেজি শব্দ হতে পারে এমন ভেরিয়েবল নামগুলিকে সমর্থন করে না।

আপনি কম্পিউটার / প্রাকৃতিক ভাষার প্রতিটি সংমিশ্রণের জন্য একাধিক উত্তর পোস্ট করতে পারেন। অনুবাদ করতে আপনি কোনও গ্রন্থাগার বা কোনও বাহ্যিক সরঞ্জাম ব্যবহার করতে পারেন না! আপনার কোডটি অনুবাদটি নিজেই করা উচিত, অন্য কোনও অনুবাদকে কল না করা! এটি কোড গল্ফ নয়! যদি আপনার প্রোগ্রামটি কোনও ইনপুট নেয় তবে এটি অবশ্যই তার নিজস্ব উত্স কোড হতে হবে, যদি এটি ডিস্ক থেকে পড়ে তবে এটি কেবল উত্স ফাইল, ইত্যাদি হতে পারে etc.

* এই চ্যালেঞ্জের উদ্দেশ্যে আমি এস্পেরান্তো, লোজবান, ভোলাপাক, ইন্টারলিঙ্গুয়া ইত্যাদি প্রাকৃতিক ভাষা হিসাবে বিবেচনা করব। এই চ্যালেঞ্জের জন্য আপনি নিজের ভাষা আবিষ্কার করতে পারেন না!

আমি স্পষ্ট কুইনগুলি রোধ করার জন্য একটি বিধি যুক্ত করেছি। অনুবাদ করতে আপনি কীওয়ার্ড / ফাংশনগুলির - এমনকি তাদের সমস্ত - এর যে কোনও উপসেট বেছে নিতে পারেন। আপনার প্রোগ্রামটি অবশ্যই নিজেকে ন্যূনতম হিসাবে অনুবাদ করতে সক্ষম হবে, অর্থাত্ যদি আপনার মূল উত্সটিতে শব্দটি অন্তর্ভুক্ত থাকে তবে ইনপুট কোডে যে কোনও জায়গায় 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
@ সিজেডেনিস ফরাসী সিউডোকোডে আমি সর্বদা অনন্যকে দেখেছি, তবে প্রয়োজনে হাত দিতে পারি: পি
কোয়ান্টিন

উত্তর:


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)

কোডটি নিজের উপর চালানোর ফলাফল (বড় অনুবাদ তালিকার সাথে redacted):

μετὰ ἀνεῳξάτω(__βιβλίον__, τύπος="ουτφ-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" সম্পর্কে শোনাচ্ছে যদি আপনি এটি উচ্চারণ করার চেষ্টা করুন।

এটি এখনও ব্যাকরণ-ভিত্তিক পছন্দসই হওয়ার জন্য অনেক কিছু ছেড়ে যায়। গ্রীক হ'ল ইংরাজির তুলনায় অনেক বেশি সংক্রামিত ভাষা এবং আমার কোডটি সমস্ত কেস এবং নম্বরগুলি সঠিকভাবে পাওয়ার জন্য যথেষ্ট পরিশীলিত নয়। উদাহরণস্বরূপ, gen παλαιόν, νέον ἐκ জেনেটিক ক্ষেত্রে প্রিপোজিশনের অবজেক্ট সহ ἐκ νεολόγ read পড়া উচিত । যাইহোক, আমি সম্পর্কে লাগাতে নই যে এই মধ্যে অনেক সময়! চেহারাটি যথেষ্ট পরিমাণে গ্রীক (কমপক্ষে প্রশিক্ষণপ্রাপ্ত চোখের কাছে) এবং উচ্চ পর্যায়গুলি একটি সুন্দর স্পর্শ যুক্ত করে। সব মিলিয়ে আমি ফলাফল নিয়ে বেশ সন্তুষ্ট।


4
এটি আমার কাছে গ্রিকের মতো দেখাচ্ছে! আমি গ্রীক বুঝতে পারি না তবে দেখে মনে হচ্ছে আপনি ব্যাকরণটি সঠিকভাবে পেতে কিছুটা সমস্যায় পড়েছেন, এত ভাল! আপনার অনুবাদ তালিকার কয়েকটি লাইন অন্তর্ভুক্ত করে কি আপত্তি করবেন?
সিজে ডেনিস

আমি এখনও দেখতে পাচ্ছি νεόλογοι = [...]। আপনি কি সেখানে কয়েক লাইন রাখতে পারেন? পুরো তালিকার দরকার নেই!
সিজে ডেনিস

সত্য, এটি মারাত্মক আকর্ষণীয় নয় তবে এটি পুরো আউটপুটটির ইঙ্গিত দেয়!
সিজে ডেনিস

অনুবাদটি কি স্ট্রিং ধ্রুবককে একা রেখে কেবল কীওয়ার্ডগুলি (এবং সম্ভবত পরিবর্তনশীল নাম) অনুবাদ করার কথা নয়?
ক্যাস্পার্ড

@kasperd এইউ contraire : Words in strings should be translated too
DLosc

65

চিকেন , চাইনিজ - 鸡

চিকেনটি ব্যবহার করা আমার পক্ষে যতটা কঠিন তার চেয়ে বেশি শক্ত।

ট্রেলিং নিউলাইন নেই। তবে ফাইনালটি chickenকেবল এই প্রোগ্রামটির শেষ চিহ্নিত করার জন্য যা একটি খালি লাইন দিয়ে প্রতিস্থাপন করা যেতে পারে।

আমি এই দোভাষীটি ব্যবহার করছি , যা অতিরিক্ত নিউলাইন প্রিন্ট করে এবং দমন করা যায় না। সুতরাং আউটপুটটিতে আসলটির তুলনায় আরও একটি লাইন রয়েছে এবং এটি একটি চিকেন প্রোগ্রামটি ভাঙ্গতে পারে। আমি আশা করি এটি এটিকে অবৈধ করে তুলবে না।

এটি ইনপুট-এর সূচি -1 থেকে একটি খালি স্ট্রিং পাওয়া এবং খালি স্ট্রিংগুলির সাথে তুলনা করে ইওএফ সনাক্তকরণের মতো কিছু কৌশল ব্যবহার করেছিল। ধরণের compareঅপ্রয়োজনীয় আইটেমগুলি বাদ দেওয়ার জন্য আমি কমান্ডটিও ব্যবহার করেছি । তারা অন্য দোভাষীতে কাজ নাও করতে পারে। এবং এটি স্ট্রিংটিকে ইউটিএফ -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! চাইনিজ মুরগি! আমি মনে করি আউটপুটটি মূল প্রোগ্রামের চেয়ে বোঝা সহজ! অন্য কারও কি এখন টেক-অফ করার মতো মনে হচ্ছে?
সিজে ডেনিস

2
সুন্দর কাজ, জিমি
অ্যালেক্স এ

18
@AlexA। তখন আমার ব্যবহারকারীর নাম পরিবর্তন করা হয়েছে।
জিমি 23013


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পরিবর্তন করবেন না। তারা এখন জন্য দাঁড়ানো constante , enumeratum , integrum , এবং অপারেটর
  • আমি ভাবিনি যে রোমানরা _একটি শব্দ বিভাজক হিসাবে পরিণত হবে , তাই আমি ইন্টারপ্যাঙ্কগুলি ব্যবহার করেছি ।
  • অনুবাদটি খুব বোবা এবং অকার্যকর, শব্দের সীমানা উপেক্ষা ইত্যাদি is

আউটপুট:

#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
ধন্যবাদ। আমি @ ভিওজ-এর বইয়ের একটি পাতা নিয়েছি এবং শূন্যতার জন্য 'ইনানে' ব্যবহার করেছি, যাতে আমি খালি জন্য 'ভ্যাকুয়াম' ব্যবহার করতে পারি।
লুক

25

জাভাস্ক্রিপ্ট (নোডজেএস) - হিব্রু

এনকোডিংয়ের জন্য আমার পদ্ধতিটি ডিএলসকের পাইথন প্রোগ্রামের সাথে বেশ অনুরূপ : এটি উত্স কোডটি পড়ে, টোকেনের একটি তালিকা রয়েছে, এবং অনুসন্ধান এবং প্রতিস্থাপন চালায়।

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">, তবে এটি সবে এসেছিল। :( কোডটি আসলে দেখতে এই জাতীয় বলে মনে করা হচ্ছে: (জিডির স্ক্রিনশট)

কোডটি আরটিএল ফর্ম্যাটিংয়ের সাথে সঠিকভাবে প্রদর্শিত হয়

হিব্রু পাঠ্য সম্পর্কে কিছু বিষয় লক্ষণীয়:

  • সংক্ষিপ্তসারগুলির জন্য হিব্রু পদ্ধতিটি (যা এই কোডে একাধিকবার ব্যবহৃত হয়) হ'ল একক শব্দের সংক্ষিপ্তকরণের জন্য শেষে একটি একক উদ্ধৃতি চিহ্ন এবং একাধিক শব্দ হলে শেষ বর্ণের আগে ডাবল উদ্ধৃতি ব্যবহার করা। একটি শব্দের জন্য, আমাদের কাছে এটি varঅনুবাদ করা হয়েছে מש', "משתנה" (পরিবর্তনশীল) এর জন্য সংক্ষিপ্ত। উপরে বর্ণিত "system ac" এর প্রথম অক্ষর fsহিসাবে "ফাইল সিস্টেম" এর একটি সংক্ষিপ্ত מ"קরূপটি অনুবাদ হয়েছে ।
  • হিব্রুতে মূল / ছোট হাতের অক্ষর নেই। কয়েকটি বর্ণের স্বাভাবিক / চূড়ান্ত রূপ রয়েছে (যথাক্রমে כמנפצ এবং।,) তবে এটি। সুতরাং "রিডফিল" এবং "ফাইলের নাম" এর মতো ম্যাসআপ শব্দের মধ্যে আমি হিব্রু "קרא קובץ" এবং "שם קובץ" একসাথে ছড়িয়ে দিয়েছি, যদিও দ্বিতীয়টি শব্দের মাঝখানে একটি চূড়ান্ত অক্ষর দিয়ে শেষ হয়েছিল।
  • উপরেরটি প্রযোজ্য নয় toString। হিব্রু ভাষায়, প্রস্তুতিগুলি হ'ল একক অক্ষর যা শব্দের সাথে যুক্ত হয়ে যায়। সুতরাং, যদি "স্ট্রিং" "מחרוזת" হয়, "স্ট্রিং" থেকে "למחרוזת" হয়। এই কারণেই for..inব্লকটিতে, inটোকেনটিতে স্থান অন্তর্ভুক্ত থাকে, যাতে এটি পরবর্তী শব্দটির সাথে সংযুক্ত word in wordsহয়ে যায় ( হয়ে যায় מילה במילים)।
  • আমি আমার কম্পিউটার থেকে এটি পুনরুত্পাদন করতে অক্ষম, কিন্তু যখন আমি আমার আইপ্যাড থেকে অনুবাদ.regex google.com এ গিয়েছিলাম এবং এটি me back ফিরিয়ে দেয়, যার আক্ষরিক অর্থে "আদেশিত অভিব্যক্তি"। কি দারুন! আমি এটিকে সংক্ষেপে ביטס"ד এ জেএসের মতো করে রেখেছি RegExp
  • gRegex পতাকা আমি অনূদিত ע ', যা עולמי, গ্লোবাল ঘোরা।
  • প্রতিস্থাপনের জন্য জটিল রেজেক্স ফর্মটি নোট করুন new। কারণ হিব্রু ভাষায় বিশেষণ (যেমন "নতুন" - "חדש") বিশেষ্য (যেমন রেজেক্স) এর পরে আসে। সুতরাং, পরিবর্তে new RegExp(), এটি "RegExp [যে] নতুন ()` হবে `
  • আমি উদ্ধৃতি চিহ্নগুলি মুছে ফেলেছি, কারণ এগুলি ক্লাসিক হিব্রুতে নেই। এটি অবশ্যই ব্যাকরণকে আরও শক্ত করে তোলে! আমি এখনও নিশ্চিত নই যে এটি একটি ভাল সিদ্ধান্ত ছিল কিনা।
  • দেখে মনে হচ্ছে যে আমি সমস্ত টার্মিনেটিং সেমিকোলনগুলি কলোন দিয়ে প্রতিস্থাপন করছি। এটি আসলে একটি ইউ + 05 সি 3 সফফ পাসুক , একটি বিরাম চিহ্ন যা বাইবেলের একটি আয়াত শেষ করে।

এই কোড অবশ্যই প্রতিটি বৈধ জেএস প্রোগ্রাম অনুবাদ করে না। আসলে এটি সম্ভবত এটির অনুবাদ করে tes তবে এই চ্যালেঞ্জের জন্য এটি যথেষ্ট ভাল। ;)

যাইহোক, আপনি যদি হিব্রুয়ের প্রতি আগ্রহী হন, এসো হিব্রু। (উত্স: stackexchange.com )
স্ট্যাক এক্সচেঞ্জ প্রশ্নোত্তর সাইটের প্রস্তাব: হিব্রু ভাষা


9
পিএইচপি দিয়ে যেতে হবে — তারা ইতিমধ্যে T_PAAMAYIM_NEKUDOTAYIMকভার হয়ে গেছে !
wchargin

2
আরটিএল উত্সের শেষ লাইনটি দাড়িওয়ালা একজন দু: খিত লোকের মতো দেখাচ্ছে। :)
ম্যাট লিয়নস

(যে কোনও একটি কারণে, কোনও কারণে আমি এটি এলটিআর উত্সে লক্ষ্য করি না)
ম্যাট লায়ন্স

@ ম্যাটলায়ন্স আপনি সম্ভবত ইংরেজিতে খেয়াল করেননি কারণ এটি আসলে এর চেয়ে বেশি দেখা যায় না।
স্কিমোনস্টার

1
P קורה @proudhaskeller
sagiksp

22

পার্ল, পিগল্যাটিন - এরলপে

প্রথমত, আসল প্রোগ্রামটি খুব সংক্ষিপ্ত, সুতরাং লেখার দীর্ঘতর অংশগুলির জন্য এটি কীভাবে আচরণ করে তা প্রদর্শনের জন্য আমি কিছু পার্ল কবিতা ইনপুট / আউটপুটটির আরও একটি উদাহরণ হিসাবে অন্তর্ভুক্ত করেছি। যেহেতু কবিতাটি শেষের লাইনের পরে অন্তর্ভুক্ত রয়েছে এটি আসলে কার্যকর হয় না।

আসল অ্যালগরিদম বেশ সোজা এগিয়ে:

  • শব্দ সীমানায় টোকেনগুলিতে ইনপুট বিভক্ত করুন
  • কমপক্ষে দুটি আলফা অক্ষরযুক্ত যে কোনও শব্দের জন্য পিগ ল্যাটিনে অনুবাদ করুন
    • শব্দটিতে শীর্ষস্থানীয় ব্যঞ্জনবর্ণগুলি সন্ধান করুন
    • এগুলিকে শেষ দিকে নিয়ে যান এবং তাদের উপর 'আই' প্রত্যয় স্থাপন করুন
  • সবকিছু মুদ্রণ করুন। নন আলফা ইনপুট (এবং একক অক্ষর) অনুবাদ করা হয় না

#!/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
অনুবাদকৃত ভাষার নামটি অবশ্যই এলপেই হওয়া উচিত এবং এটির ফলাফল যদি হয় তবে আমি এটি পছন্দ করব __DENAY__openayএবং acceptayহওয়া উচিত নয় enopayএবং ceptacay?
সিজে ডেনিস

1
চ্যালেঞ্জটি "বিদেশী ভাষা" নির্দিষ্ট করে। পিগ ল্যাটিন গণনা করে না।
mbomb007

6
আমার ধারণা, আমি আপনাকে পরামর্শ দিচ্ছি যে আপনারা সবাই বিদেশী ভাষা হিসাবে পিগল্যাটিনের গ্রহণযোগ্যতা সম্পর্কে হালকা করে নিন। আপনি যদি আমার সমাধান পছন্দ না করেন তবে এটির জন্য ভোট দিন না। আমি বিশ্বাস করি যে সিজে এটির সাথে যথেষ্ট খুশি এবং এটি যেহেতু এটি কেবল একটি মজাদার সামান্য অনুশীলন আমি নিজের ইনপুটটি দিয়ে আছি।
রাল্ফ মার্শাল

17

ভিজ্যুয়াল বেসিক। নেট, ফারসি

আমি ভার্ভোজ ভাষা বেছে নিয়েছি যাতে এটি আরও শক্ত হয়। দেখা যাচ্ছে, আমার ব্যাকরণ পরিবর্তন করতে হবে না। কোডটির পার্সিয়ান রূপটি ঠিক ভারবস।

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

ফলাফলের জন্য ডান থেকে বাম পাঠ্য সম্পাদক দরকার। আমি এখানে এটি সঠিকভাবে প্রদর্শন করতে পারি না। কিন্তু আমি যদি আছে এটা প্রদর্শন করে, এখানে এটা। এখানে একটি ছবি:

কোড

দ্রষ্টব্য: এটি Persian.txt নামে একটি ফাইল থেকে পড়ে এবং কোড.txt এ আউটপুট দেয়। আমি প্রশ্ন চিহ্নে রূপান্তর না করে ফারসি লিখতে বা পড়তে কনসোল উইন্ডোটি পেতে পারি না। (যেমন একটি চার অক্ষরের শব্দ রূপান্তরিত হবে ????)

দ্রষ্টব্য: আপনি যদি ফার্সি ভাষায় শব্দগুলির সাথে একে অপরের সাথে সংযোগ স্থাপন করেন তবে এটি প্রায় অপঠনযোগ্য হবে কারণ অক্ষরগুলি একে অপরের সাথে সংযুক্ত থাকে এবং একটি আলাদা রূপ লাভ করে। সুতরাং আমি তাদের স্পেস দিয়ে আলাদা করতে হয়েছিল যার ফলশ্রুতিতে শব্দের শূন্যস্থান রয়েছে। আমদানির মতো শব্দ ওয়ার্ড کردن রূপান্তরিত হয় যা দুটি শব্দ।


আমার হিব্রু পোস্টে , আমি এটির একটি স্ক্রিনশট আরটিএল সমর্থন করে এমন একটি সম্পাদকের মধ্যে সঠিকভাবে প্রদর্শিত হচ্ছে।
স্কিমনস্টার

@ সিমনস্টার ভাল ধারণা। আমি এখনই এটি করব। ধন্যবাদ।
জেএনভি

2
ইউনিকোড শূন্য-প্রস্থের নন-জোড়ান অক্ষর (ইউ + 200 সি) ব্যবহার করে আপনি "درست کردن" কোনও স্থান ছাড়াই থাকতে পারেন: "درست‌کردن" - এটি অক্ষরগুলিকে পাশাপাশি থাকতে বাধ্য করে কোনও ফাঁক ছাড়াই, তাদের একসাথে যোগদান না করে - ফলাফল ভাল দেখায় কিনা ফন্টের উপর নির্ভর করে!
শ্রদ্ধেয়

@psmears আপনি ঠিক বলেছেন; আমি এটি সম্পর্কে ভুলে গেছি। ধন্যবাদ!
জেএনভি

14

জাভা, জার্মান - জাভা

এই প্রোগ্রামটি সত্যিই সরাসরি এগিয়ে।
এটি কেবল প্রথম আর্গুমেন্ট হিসাবে দেওয়া ফাইলটি পড়ে এবং একটি জার্মান শব্দের সমস্ত উপস্থিতি সম্পর্কিত জার্মান অনুবাদ সহ প্রতিস্থাপন করে।

আমি ([^a-zA-Z\\d:])*পৃথক আইটেমগুলি মেশানো / অ-অক্ষরীয় অক্ষর অনুসারে দুটি আইটেম ( ) এর সাথে নিয়মিত এক্সপ্রেশন ব্যবহার করছি । এটি ওভারল্যাপিং অনুবাদগুলিতে সমস্যার সমাধান করেছে (ইঞ্জিনি। List-> জর। Listeতবে তারপরে Listeপরিণত হবে Listee)। এই অক্ষরগুলি ফিরে ব্যবহার $1/ $2যুক্ত করে আমাদের অনুবাদকৃত উত্স কোড সহ ছেড়ে দেয় leaves

আপডেট 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);
        }
    }

কোড বা অনুবাদে আপনার যদি কিছু উন্নতি হয় তবে আমাকে জানান এবং আমি সেগুলি বাস্তবায়ন করতে পারি কিনা তা আমি জানি।


/, 󠀠 এবং -সম্ভবত সনাক্তকারী ভাল না।
vi।

6
আমি দুটি ভাষার মধ্যে চিঠিপত্রটি পছন্দ করি - উভয়ই প্রতিটি কিছুর জন্য স্বতন্ত্র যৌগিক শব্দ ব্যবহার করে। ;) তবে আমার সন্দেহ হয় জার্মানরা এখনও কোনওরকমে সংক্ষিপ্ত বিবরণ দিবে Eingabe/Ausgabe- সম্ভবত Einaus?
ডিএলসাস

1
@ ডিএলকস আই / ও (ইনপুট / আউটপুট) সাধারণত ই / এ এর ​​সাথে সংক্ষেপিত হয় (আইঙ্গাবে / অসগাবে) abe Einausসম্ভব হবে, আমিও মনে করি তবে এটি সঠিক মনে হচ্ছে না। Rein/Rausসম্ভব বলে মনে হয়, তবে আবার একটি ভাল অনুবাদ বলে মনে হয় না।
জায়েন্টটি ট্রি

@Vi। আপনি প্রতিস্থাপন স্ট্রিং অক্ষর হিসাবে বোঝাতে (বাম পাশ)? নামগুলি / সনাক্তকারী হিসাবে অংশ হিসাবে জাভা এই জাতীয় অক্ষরগুলিকে অনুমতি দেয় না কারণ এগুলি প্রয়োজন হয় না। আমি মনে করি আপনার অর্থ হ'ল কারণ আমি পুরো স্ট্রিংটি বারবার যাচাই করছি এবং আপনি ভাবতে পারেন E/Aবা এর অনুরূপ সমস্যার কারণ হতে পারে তবে এগুলি একটি নিয়মিত প্রকাশ হিসাবে ব্যাখ্যা করা হয় না, সেগুলি কেবল মিলে যায় এবং এভাবে নিয়মিত অভিব্যক্তিটি প্রভাবিত না করে ছেড়ে যায়। (আমি ভুল হতে পারি, তবে নিয়মিত প্রকাশের সাথে আমি এটিই অনুভব করেছি)
জায়ান্টটি ট্রি

@ জায়ান্ট্রি, আমার অর্থ কোডটি অনুমান করা জার্মান জাভা সংকলকটির পক্ষে পার্স করা শক্ত হবে hard
vi।

14

জুলিয়া, তাতার - জুলিয়া

এটি ২০০১ সালে প্রতিষ্ঠিত আডেল-উরাল তাত্তরের আনুষ্ঠানিকভাবে লাতিন-ভিত্তিক জামানালিফ বর্ণমালা ব্যবহার করে। তবে, ২০০২ সালে রাশিয়ান ফেডারেশন তাতারস্তানের গতিবিধি বাতিল করে জামাতলিফকে তাতার ভাষার সরকারী বর্ণমালা তৈরি করে এবং যে কোনওটির সরকারী ব্যবহারকে অপরাধী করে তোলে সিরিলিক ব্যতীত অন্য বর্ণমালা।

বিগত শতাব্দীতে, তাতার ভাষার জন্য 5 টি বর্ণমালা রয়েছে:

  • ইস্ক ইম্লি, আরবি বর্ণমালার এক রূপ, 1870s-1920 এর দশকে
  • ইয়াসা ইম্লি, আরবী রূপ, 1920 এবং 30 এর দশক
  • জালালিফ, 1930 এর দশকের লাতিন বর্ণমালার একটি রূপ
  • সিরিলিক, রূপান্তর রূপান্তর হ'ল জোসেফ স্টালিন, 1940-এর বর্তমান
  • জামানালিফ, বেসরকারী, 2001-বর্তমান

আমি জামানালিফকে বেছে নিয়েছি কারণ আমি মনে করি যদি আমি সিরিলিক ব্যবহার করি তবে আমার দাদা হতাশ হবেন। তাঁর প্রথম ভাষাটি তাতারি এবং 1920 সালে জন্মগ্রহণ করার পরে, তিনি ইস্কে 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(যদি)।

পিপিসি-তে থাকা কেউ যদি তাতারকে জানেন, আপনি সম্ভবত আমার চেয়ে বেশি জানেন। কোন পরামর্শ স্বাগত হবে।


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);
    }
    друкрад!("{}", зьмест);
}

নং
vi।

রাশিয়ান এবং সি ++?
গ্যামারকম্পস

@ আইনলি, নং ইঙ্গিত: প্রথম অনুমানটি আরও কাছে ছিল।
vi।

@ আইনলি: প্রাকৃতিক ভাষা বেলারুশিয়ান।
অ্যালেক্স এ।

1
মরিচা এবং বেলারুশিয়ান?
প্রোগ্রামফক্স

12

ডেজস্ক্রিপ্ট , স্প্যানিশ - এল কেডিগো দেল পেরো

ডোজস্ক্রিপ্টটি জাভাস্ক্রিপ্টে ব্যাখ্যা করা হয়েছে, সুতরাং যে কোনও বৈধ জেএস বৈধ ডোজস্ক্রিপ্ট। আমি এখানে যে অনুবাদটি দিয়েছি তা আসলে পুরো কীওয়ার্ডের স্পেসিফিকেশন (প্লাসে ব্যবহৃত শব্দগুলি coverাকতে আরও কিছু) অন্তর্ভুক্ত করে।

"ইংরেজি":

 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);
        }
    }
}

কমান্ড-লাইন আরগস থেকে ফাইল পড়ে, আউটপুট.টেক্সটে লেখেন।

উদাহরণ:

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);
        }
    }
}

ডার্ন, সবেমাত্র সি ++ ল্যাটিন সংস্করণটি দেখেছে ..


s/ToLatin/AdLatinam/... এছাড়াও, করা উচিত নয় argsহতে argumenta(ক্লীব বহুবচন)?
DLosc

@DLosc আমি জানি না এটি হওয়া উচিত কিনা, আমি লাতিন ভাষা জানিনা, তবে আমি আপনার কথাটি এটির জন্য নেব।
কেড

ভাল জিনিস, আমি সাধারণ পদগুলির জন্য আমাদের অনুবাদগুলির সাথে তুলনা করছি। "বা" "অটো" হওয়া উচিত।
লুক

System Ratioলাতিন ভাষায় কেন ? তাহলে লাতিন ভাষায় অনুপাত কী?
ফুক্লভি

@ LưuVĩnhPhúc ratio->ratione/proportio
কেড

8

রুবি, জাপানি - আকাদামা

জাপানি ভাষায় রুবি হয় rubii যা বিরক্তিকর (ルビー), তাই আমি এটা আক্ষরিক নামে লাল মণি

রুবিতে, ভেরিয়েবল এবং পদ্ধতিগুলি ASCII এ সীমাবদ্ধ নয়, তাই এর মতো কিছু

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

বৈধ রুবি হয়। আমি আপনার সমস্ত ঘাঁটির জন্য নিস্পত্তি করার জন্য এটি যথাসম্ভব ব্যবহার করছি ।

আমি আশা করি রুবীর পার্সিংয়ের জন্য রত্নগুলি ব্যবহার করা ঠিক আছে, এটির জন্য এখনও কিছু কুরুচিপূর্ণ বানর-প্যাচিং দরকার।

TRANS_TABLEআরও পদ্ধতির জন্য অনুবাদ যুক্ত করতে আপনি প্রসারিত করতে পারেন । যা কিছু টেবিলে নয় মধ্যে জাপানি "অনূদিত" হয় ঢিলেঢালাভাবে তার উচ্চারণ (বা আরো বানান মত) উপর ভিত্তি করে, তাই খাওয়া হয়েえあと( "একটি অই অঙ্গুলী")।

পূর্ণসংখ্যাকে একটি "খুব" ব্যবহারিক স্বরলিপিতে রূপান্তর করে ।

# 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

এইচটিএমএল 5 / জাভাস্ক্রিপ্ট থেকে ফরাসি (এইচটিএমএল 5 স্ক্রিপ্ট আউ কাউউ)

<স্ক্রিপ্ট>
    var a = ডকুমেন্ট.কোর্নস্ক্রিপ্ট.উটার এইচটিএমএল;
    সতর্কতা (a.replace (/ var a / g, "লা ভেরিয়েবল« a »"))
    .replace (/ সতর্কতা \ (/ ছ, "alerter (")
    .replace (/ = / g, "ইস্ট")
    .replace (/ outerHTML / ছ, "HTMLExtérieur")
    .replace (/ \। প্রতিস্থাপন \ ((। +) \, (। +) /) / জি, "অ্যাভেক $ 1 রিম্প্লেক পার $ 2")
    .replace (/ \ / \ * এবং \ * \ // g, "এবং")
    .replace (/"(.+?)"/ ছ, "« $ 1 »")
    /*and*/.replace(/currentScript/g,"scriptCourant ")
    );
</ স্ক্রিপ্ট>

আউটপুট:

<স্ক্রিপ্ট>
    লা ভেরিয়েবল »এ» ইস্ট ডকুমেন্ট.স্রিপ্টকৌরেন্ট.এইচটিএমএলেক্সটরিউর;
    সতর্কতা (avec / la ভেরিয়েবল «একটি» / জি রেম্প্লেক পের «লা ভেরিয়েবল« এ »»
     avec / সতর্কতা \ (/ জি রিম্প্লেক পার «সতর্কতা (»
     অ্যাভেক / এএসটি / জি রিম্প্লেক পার «ইস্ট»
     avec / HTMLExtérieur / g remplacé par «HTMLExtérieur
     avec /\.replace\((.+)\,(.+)\)/g remplacé par «avec $ 1 remplacé par $ 2
     আভেক / \ / \ * এবং \ * \ // জি রিম্প্লেক পার «এট»
     avec /«(.+?)»/g remplacé par «« $ 1 »
     এট এভেক / স্ক্রিপ্টকৌরেন্ট / জি রিম্প্লেক পার «স্ক্রিপ্টকৌরেন্ট»
    );
</ স্ক্রিপ্ট>

1
আমি সত্যিই পছন্দ করি আপনি কীভাবে আরও ফরাসি হতে সিনট্যাক্সটি পুনর্নির্মাণ করেছেন! কিন্তু ফরাসি ভাষার নামটি আসলে " কফিস্ক্রিপ্ট " বোঝায় না ?
ডিএলসাস

প্রযুক্তিগতভাবে, হ্যাঁ তবে আমি সেই সময়ে সবচেয়ে ভাল চিন্তা করতে পারি। আপনার কি আরও ভাল পরামর্শ আছে?
সুপারজেডি ২২৪

1
"এইচটিএমএল 5 এভেক লে স্ক্রিপ্ট আ ক্যাফে দে জাভা" হাস্যকর: ডি আমাদের কাছে "কফি": কৌয়া ("কা-ওয়া") এর জন্য অনুরূপ (সম্পর্কিত?) যুক্তিযুক্ত শব্দ রয়েছে ।
কোয়ান্টিন

3
আমি গিলমেট ব্যবহার পছন্দ করি।
ট্রিগ

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̴ns̴͜ ব্যবহার করে, তাই এটি সর্বদা নিখুঁতভাবে কাজ করে না)) নিজে চালিত হওয়ার সময় এখানে আউটপুট দেওয়া হয়:

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
ওউই, ট্রেস বিয়েন
অ্যালেক্স এ।

বিরামচিহ্নের পরে আপনার স্পেসগুলি যুক্ত করা উচিত - এটি দেখতে দুর্দান্ত এক্সডি লাগছে
কনর ও'ব্রায়েন

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

এটি আসলে অনুবাদকৃতগুলির সাথে বেসিক কীওয়ার্ডগুলি প্রতিস্থাপন করে, তাই আপনিও করতে পারা আপনি নতুন কোড লেখার সময় এগুলি অবশ্যই ব্যবহার করা উচিত

বসনিয়ান বেসিক

কিভাবে এটা কাজ করে?

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

যদিও মনে হয় যে এই লাইনটি খুব বেশি কিছু করে না, বাস্তবে এটি বেসিক রম থেকে র‌্যামে বাইটগুলি অনুলিপি করে। একটি রম অবস্থানে লিখিত ডেটা একই ঠিকানায় র‌্যামে সংরক্ষণ করা হয়।

প্রোগ্রামের শেষ লাইনটি বেসিকের র্যাম কপিটিতে স্যুইচ করে:

POKE 1,PEEK(1) AND 254

মেমরি ঠিকানাগুলি 41118-41373 টি সংরক্ষিত বেসিক কীওয়ার্ডগুলির একটি সম্পূর্ণ তালিকা রয়েছে। এই শব্দের ASCII অক্ষর টোকেন নম্বর ক্রমে সংরক্ষণ করা হয়। প্রতিটি শব্দের শেষ অক্ষরের বিট # 7 শব্দের শেষ (ASCII মান + 128) নির্দেশ করে।

20-100 লাইনে অনূদিত কীওয়ার্ড রয়েছে। 110-200 রেখা উপরে বর্ণিত অনুসারে মেমরিতে কীওয়ার্ডগুলি পড়ে।


5
আপনি প্রথম ব্যক্তি হতে পারেন যার কোড রূপান্তরের পরে কাজ করে!
সিজে ডেনিস

সি B৪ বেসিকের স্রষ্টা যখন তাঁর কাজ শেষ করেছেন, তখন তিনি দাঁড়িয়ে ঘোষণা দিয়েছিলেন যে "আমি সেই দিনের জন্য অপেক্ষা করি যেদিন লোকেরা সি 64৪ বসনিয়ায় প্রোগ্রাম করতে পারে"। (লজ্জা তিনি 640k র্যাম সম্পর্কিত কোনও স্বপ্নদর্শী ছিলেন না)
মার্ক কে কোয়ান

তবে অনুবাদটি র‍্যামে তৈরি করা হয়েছে এবং একটি রিবুট র‌্যামকে পরিষ্কার করার কারণ হবে, হ্যাঁ?
বিড়াল

5

পিএইচপি - পর্তুগিজ (পিটি-পিটি / আধা পিটি-বিআর)

এটি বেশ জটিল, এবং দৈত্য পরিণত!

<?

    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
আপনি এই ভাষাটির$ মতো একটি পর্তুগিজ আর্থিক চিহ্ন ব্যবহার করতে পারেন did
ডিএলসাস

@ ডিএলকাস এই ধারণার জন্য অনেক ধন্যবাদ। আমি এগিয়ে গিয়েছিলাম এবং অন্যান্য অপারেটর এবং চিহ্নগুলিও অনুবাদ করেছি।
ইসমাইল মিগুয়েল

4

Fondamentale ভিজুয়াল .আরটিই - ভিজ্যুয়াল বেসিক। নেট, ইতালিতে অনুবাদ করা

প্রোগ্রামটি খুব সহজ (নিজেই অনুবাদ করার উদ্দেশ্যে)।

কিছু বিষয়:

  • আই / ও: এটি বলা একটি স্পষ্ট ফাংশন সহ একটি মডিউল

  • ব্যাকরণ বেশিরভাগ ক্ষেত্রে সঠিক (প্রায় প্রাকৃতিক বোধ হয়)

  • ইংরাজী এবং ইতালীয় শব্দের অবস্থান পৃথক, সুতরাং আমি (সহজেই) এটি ঠিক করতে কিছু ফাংশন লিখতে পারি না এবং স্থির অনুবাদ জোড়াকে পছন্দ করি

  • আমি আধ্যাত্মিক ইতালিয়ান অনুবাদ হিসাবে তারা শব্দ এবং ভুল অনুভব করতে হবে হিসাবে দ্বিতীয় ব্যক্তির কাছে আবশ্যকীয় ক্রিয়াগুলি সংহত করে ফেলেছি (উইন্ডোজ ৮++ 1 ডি তে কথা বলার মতোই ভুল)

  • অনুবাদগুলির জোড়গুলি অবিচ্ছিন্ন থাকে যাতে ইংরেজিগুলিও অনুবাদ না করে translated সুতরাং, যদি কোনও দোভাষী থাকে, তবে অনুবাদকৃত প্রোগ্রামটি কাজ করবে যে আমি কিছু "+"ছাড়িয়ে যেতে পেরেছি (অনেক ইংরেজি শব্দ ইটালিয়ান শব্দগুলিতে রয়েছে, তাই এটি প্রত্যয়গুলির অনুলিপি সহ ইতালীয় ভাষায় ইতালিয়ান অনুবাদ করে)

মডিউল ইতালিয়ান

    দিম টোকেনগুলি নতুন তালিকা হিসাবে (স্টুপের (স্ট্রিংয়ের, স্ট্রিংয়ের)

    সাব অ্যাড পেয়ার (স্ট্রিং হিসাবে একটি স্ট্রিং, বি)
        টোকেন্স.এড (টিপল.ক্রেট (ক, খ))
    শেষ সাব

    উপ-উদ্যোগ ()
        অ্যাডপায়ার ("ইতালিয়ান", "ইতালি" + "না"): অ্যাডপায়ার ("মডিউল", "মডুলো")
        অ্যাডপায়ার ("অভাব", "নন হা"): অ্যাডপায়ার ("অ্যাডপায়ার", "অ্যাগ্রিওঙ্গিওকপিয়া")
        অ্যাডপায়ার ("ইতালিয়ান", "এল'তালিয়ানো")
        অ্যাডপায়ার ("পরবর্তী", "অ্যাপ্রেসো"): অ্যাডপায়ার ("টোকেনস", "ফ্রেমেনটি")
        অ্যাডপায়ার ("init", "ইনিজ"): অ্যাডপায়ার ("যেমন", "আসুন")
        অ্যাডপায়ার ("টিপল", "কোপিয়া"): অ্যাডপায়ার ("প্রত্যেকের জন্য", "প্রতি ওগনি")
        অ্যাডপায়ার ("অফ", "ডি"): অ্যাডপায়ার ("কেবল", "ই বাস্তা")
        অ্যাডপায়ার ("সাব", "প্রোক"): অ্যাডপায়ার ("তাই আমি যুক্ত করব", "কুইন্ডি অ্যাগিগুঞ্জারò")
        অ্যাডপায়ার ("ফাংশন", "ফানজিওন"): অ্যাডপায়ার ("ডিম", "ডিএফ")
        অ্যাডপায়ার ("এ", "উনা"): অ্যাডপায়ার ("সমর্থন", "ইল এস" + "বড়ো")
        অ্যাডপায়ার ("ব্যবহৃত ধরণের", "আমি টিপি ইউজিজটি")
        আরইএম ইটালিয়ান বিশেষণের জন্য একটি লিঙ্গ-ইন্ডিপেন্ডেন্ট ফর্মের অভাব রয়েছে
        আরইএম তাই আমি কেবল ব্যবহৃত ধরণের জন্য সমর্থন যুক্ত করব
        অ্যাডপায়ার ("নতুন তালিকা", "আনুয়া তালিকার তালিকা")
        অ্যাডপায়ার ("তৈরি করুন", "ক্রিয়া"): অ্যাডপায়ার ("শেষ", "ফাইন")
        অ্যাডপায়ার ("আরইএম", "আর আই সি"): অ্যাড পেয়ার ("জন্য", "প্রতি")
        অ্যাডপায়ার ("লিঙ্গ-ইন্ডিপেন্ডেন্ট ফর্ম", "ফর্মা ইন্ডিপেন্ডেন্ট ডাল জেনার")
        অ্যাডপায়ার ("স্ট্রিং", "সিকোয়েঞ্জা"): অ্যাডপায়ার ("বিশেষণ", "গ্লি অ্যাগেজটিভি")
        অ্যাডপায়ার ("ট্রান্সপোর্টিও ইটালিয়ানো"
    শেষ সাব

    স্ট্রিং হিসাবে ফাংশন ট্রান্সলেশনটোইটালিয়ান (ও স্ট্রিং হিসাবে)
        স্ট্রিং হিসাবে ধীর ret = o: init ()
        টোকেন্সে প্রতিটি টি টুপল (স্ট্রিং, স্ট্রিং) হিসাবে
            ret = ret.Play (t.Item1, t.Item2)
        পরবর্তী
        রিটার্ন রিট
    ফাংশন শেষ

শেষ মডিউল

ইতালিয়ান, আমরা এখানে!

নিজেই ফলাফল:

মডুলো ইটালিয়ানো

    ডিফ ফ্রেমেন্তি আন উওোয়া তালিকা (ডি কোপ্পিয়া (ডি সিকুয়েঞ্জা, সিকুয়েঞ্জা)) আসুন

    প্রোক অ্যাগ্রিওঙ্গি কোপ্পিয়া (আসুন সিকোয়েঞ্জা, বি সিকোয়েঞ্জা)
        ফ্রেমেনটি.এড (কপ্পিয়া.ক্রিয়া (ক, খ))
    ফাইন প্রো

    ইনক ()
        অ্যাগিগিঙ্গিপ্পিয়া ("ইতালিয়ানানো", "ইতালি" + "না"): অ্যাগিগিঙ্গিপ্পিয়া ("মোডুলো", "মোডুলো")
        অ্যাগ্রিওঙ্গিও কপ্পিয়া ("নন হা", "নন হা"): অ্যাগিগিঙ্গিও কপ্পিয়া ("অ্যাগ্রিওঙ্গিপ্পিয়া", "অ্যাগ্রিওঙ্গি কোপ্পিয়া")
        অ্যাগিগিঙ্গিপ্পিয়া ("এল'িটালিয়ানো", "এল'টালিয়ানো")
        অ্যাগিগিঙ্গিপ্পিয়া ("অ্যাপ্রেসো", "অ্যাপ্রেসো"): অ্যাগিগিঙ্গি কপ্পিয়া ("ফ্রেমেনটি", "ফ্রেমেনটি")
        অ্যাগিগিঙ্গিপ্পিয়া ("ইনিজ", "ইনিজ"): অ্যাগিগিঙ্গি কপ্পিয়া ("আসুন", "আসুন")
        অ্যাগিওঙ্গিপ্পিয়া ("কোপ্পিয়া", "কোপ্পিয়া"): অ্যাগিগিঙ্গি কপ্পিয়া ("পের ওগনি", "পের ওগনি")
        অ্যাগ্রিওঙ্গিও কপ্পিয়া ("দি", "দি"): অ্যাগিগিঙ্গি কপ্পিয়া ("ই বাস্তা", "ই বাস্তা")
        অ্যাগ্রিওঙ্গিও কপ্পিয়া ("প্রোক", "প্রোক"): অ্যাগিগিঙ্গি কপ্পিয়া ("কুইন্ডি অ্যাগ্রিওঙ্গারò", "কুইন্ডি অ্যাগ্রিওঙ্গারò")
        অ্যাগিগিঙ্গিপ্পিয়া ("ফানজিওনি", "ফানজিওন"): অ্যাগিগিঙ্গি কপ্পিয়া ("ডিএফ", "ডিএফ")
        অ্যাগিগিঙ্গিপ্পিয়া ("উনা", "উনা"): অ্যাগিগিঙ্গিও কপ্পিয়া ("ইল সাপোর্টো", "ইল এস" + "আপপুরো)
        অ্যাগিগিঙ্গিও কপ্পিয়া ("আমি টিপি ইউলিজেটি", "আমি টিপি ইউটিলিটি")
        RIC লিগ্যালিয়ানো নন হাউস ফর্ম ইনডিপেন্ডেন্ট ডাল জেনার প্রতি গিগা অ্যাগ্রিটিভিটি
        টিআইপি ইউজডিজি এবং বাসস্ট্যান্ডে রিকস কন্ডিশন সাফল্য
        অ্যাগিগিঙ্গি কপ্পিয়া ("উনা নুভা তালিকা", "উনা নুভা তালিকা")
        অ্যাগিগিঙ্গিপ্পিয়া ("ক্রিয়া", "ক্রিয়া"): অ্যাগিগিঙ্গি কপ্পিয়া ("ফাইন", "ফাইন")
        অ্যাগ্রিওঙ্গিও কপ্পিয়া ("আর আই সি", "আর আই সি"): অ্যাগিগিঙ্গি কপ্পিয়া ("প্রতি", "প্রতি")
        অ্যাগিগিঙ্গিপ্পিয়া ("ফর্মা ইন্ডিপেন্ডেন্ট ডাল জেনার", "ফর্মা ইন্ডিপেন্ডেন্ট ডাল জেনার")
        অ্যাগ্রিওঙ্গিওকোপিয়া ("সিকুয়েঞ্জা", "সিকোয়েঞ্জা"): অ্যাগিগিঙ্গিও কপ্পিয়া ("গ্লি অ্যাগেজটিভি", "গ্লি অ্যাগেজটিভি")
        অ্যাগিগিঙ্গিপ্পিয়া ("ট্র্যাডাসিআইএনটালিয়ানো", "ট্র্যাডাক্সিআইটালিয়ানো")
    ফাইন প্রো

    ফানজিওন ট্র্যাড্যাসিআইএনটিয়ালিয়ানো (ওক সিকোয়েঞ্জা) আসুন সিকোয়েঞ্জা
        ডিফ রিট এস সিকোয়েঞ্জা = ও: ইনিজ ()
        ফ্রেমেন্তিতে Per Ogni t Come Coppia (Di Sequenza, Sequenza)
            ret = ret.Play (t.Item1, t.Item2)
        Appresso
        রিটার্ন রিট
    ফাইন ফানজিওন

ফাইন মডুলো

আপনার উত্তর করার জন্য আপনাকে ধন্যবাদ! মাত্র কয়েকটি পয়েন্ট: আপনি মন্তব্যগুলিতে খুব সহজেই ইংরেজী পাঠ্য অনুবাদ করার কথা বলেছিলেন এবং আমি এখনও অনেকগুলি ইংরেজী শব্দ আকারে দেখতে পাচ্ছি "Mod" + "ule"। চিঠির চেয়ে চ্যালেঞ্জের মনোভাবের জন্য আরও লক্ষ্য করার চেষ্টা করুন।
সিজে ডেনিস

@ সিজেডেনিস আমি ঠিক করেছি!
beppe9000

3

সি, স্পেনীয় - সি

STDIN / STDOUT (ব্যবহার ./c-spanish < c-spanish.c) এর মাধ্যমে ইনপুট / আউটপুট ।

যদি extra = 0পরিবর্তিত হয় extra = 1, তবে এই প্রোগ্রামটির আউটপুটটি মূলত একটি পারস্পরিক কুইন is অন্যথায়, আউটপুটটি একটি সংকলনযোগ্য সি প্রোগ্রাম যা এর মতো কাজ করে 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
@ সিজেডেনিস defineহ'ল স্প্যানিশ ভাষায় একটি শব্দ (দ্বিতীয় ব্যক্তির কমান্ড definir)
এসি 1024

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মানে কি অনুমান করতে পারি !
সিজে ডেনিস

আমিও নিশ্চিত যে আপনি পারবেন!
rorlork

3

পাইথন 3, লোজবান

যেখানে আমার সুমিটি জায়গাগুলি পুনঃক্রম করতে হবে, আমি বন্ধনীগুলিতে শব্দগুলি আবদ্ধ করেছি, যেমন (te 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)। এটা অন্য কিছু করার কথা?
সিজে ডেনিস

@ সিজেডেনিস না, যদিও আমি মনে করি আমি স্পেসগুলির পরিবর্তে আন্ডারস্কোর ব্যবহার করতে পারি এবং বন্ধনীগুলি খালি করতে পারি।
টুওমাস লাককোনেন

ঠিক আছে. কোডটির উপরের মন্তব্য থেকে আমি ভেবেছিলাম এটি কিছু পুনর্বিন্যাস করার কথা ছিল!
সিজে ডেনিস

1

জাভাস্ক্রিপ্ট ES6, এস্পেরান্তো, আভাস্ক্রিপ্টো

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

আমি ক্যামেলকেসিং এবং শব্দের সাথে কিছু স্বাধীনতা নিয়েছি (আমি 'স্ট্রিং'-এর পরিবর্তে' স্ট্রিংতে রূপান্তরিত 'অনুবাদ করেছি)। আমার আরও সময় পেলে পরে জিনিসগুলিকে জটিল করে তুলব।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.