সি # / উইনফোর্মে একাধিক ভাষার আবেদন করার জন্য সেরা অনুশীলন? [বন্ধ]


94

আমি সি # তে একাধিক ভাষার জন্য উপযুক্ত অ্যাপ্লিকেশন তৈরি করার দিকে নজর রেখেছি যেহেতু আমাকে একটি ছোট প্রকল্পে কাজ করা উচিত যেখানে এটিই ঘটেছে। আমি এটি করার জন্য দুটি উপায় খুঁজে পেয়েছি:

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

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

তবে আমি নিশ্চিত যে এটি করার জন্য অন্যান্য পদ্ধতিও রয়েছে।

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


4
আমি লক্ষ করেছি, যে গঠনমূলক নয় (বা অন্যান্য "এসওর জন্য বৈধ নয়" এই জাতীয় প্রশ্নের অন্যতম প্রশ্ন) এটি একটি ভাল প্রশ্নও (আমি মনে করি ভোট প্রমাণ করে) এখানে কীভাবে একটি ভাল বিক্ষোভ রয়েছে মাল্টি ল্যাঙ্গুয়েজ সাপোর্ট youtube.com/watch?v=SNIyP1QQdVs
প্রোকুরার্স

4
কখনও কখনও ইন্টারনেটে জ্ঞানের সমস্ত টুকরো টুকরো টুকরো টুকরো টুকরো করা খুব কঠিন এবং আমি এই মুহূর্তে এই প্রশ্নটিকে অমূল্য মনে করি find নিশ্চয়ই এমন সময় রয়েছে যখন নরম প্রশ্নগুলি বন্ধ করে দেওয়া এগুলি খোলার চেয়ে কম গঠনমূলক হয় এবং আমি মনে করি এটি সেই সময়ের মধ্যে একটি। :)

উত্তর:


20

আমি সর্বদা বহু ভাষা অ্যাপ্লিকেশনগুলির জন্য রিসোর্স ফাইলগুলি ব্যবহার করেছি।
এগুলি কীভাবে ব্যবহার করবেন সে সম্পর্কে ওয়েবে অনেকগুলি নিবন্ধ রয়েছে।

আমি দুটি ভিন্ন উপায় ব্যবহার করেছি:

  • ফর্ম প্রতি একটি উত্স ফাইল
  • একটি গ্লোবাল রিসোর্স ফাইল

রিসোর্স ফাইল / ফর্মটি কার্যকর করা সহজ, আপনার কেবলমাত্র রিসোর্স ফাইলে মান প্রবেশ করতে হবে তবে লেবেলগুলি অ্যাপ্লিকেশন জুড়ে ছড়িয়ে দেওয়ার কারণে আমি এই পদ্ধতির বজায় রাখা আরও কঠিন find

গ্লোবাল রিসোর্স ফাইল আপনাকে সমস্ত লেবেল (চিত্র ইত্যাদি) এক ফাইলে (প্রতি ভাষা) কেন্দ্রীভূত করার অনুমতি দেয় তবে এর অর্থ ফর্ম লোডে ম্যানুয়ালি লেবেল সেট করা। এই ফাইলটি ত্রুটি বার্তাগুলি ইত্যাদির জন্যও ব্যবহার করা যেতে পারে

স্বাদের একটি প্রশ্ন ...

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


4
আপনাকে মাঝে মাঝে উপভাষাগুলি নিয়ে চিন্তা করতে হবে। উদাহরণস্বরূপ চিনা অক্ষরগুলি সাধারণত Chineseতিহ্যবাহী চীনা (তাইওয়ান) বনাম সরলীকৃত চীনা (মূল ভূখণ্ড চীন) এ সম্পূর্ণ আলাদা different
মার্কজে

4
@ মারকজে এমএসডিএন ডকুমেন্টেশনে উল্লেখ করা হয়েছে যে চিরাচরিত চীনা এবং সরলীকৃত চীনাগুলি উপভাষা (দেশ / অঞ্চল) নয় বরং নিরপেক্ষ সংস্কৃতি। এমএসডিএন: "একটি নিরপেক্ষ সংস্কৃতি এমন একটি সংস্কৃতি যা কোনও ভাষার সাথে সম্পর্কিত তবে একটি দেশ / অঞ্চলের সাথে নয় A একটি নির্দিষ্ট সংস্কৃতি এমন একটি সংস্কৃতি যা কোনও ভাষা এবং একটি দেশ / অঞ্চলের সাথে সম্পর্কিত example সংস্কৃতি এবং "ফ্র-এফআর" একটি নির্দিষ্ট সংস্কৃতি Note "জেডএইচ-সিএইচএস" (সরলীকৃত চীনা) এবং "জেডএইচ-সিএইচটি" (ditionতিহ্যবাহী চীনা) নিরপেক্ষ সংস্কৃতি Note
ব্রডব্যান্ড

আমি সম্প্রতি লিঙ্কটির সাহায্যে এটি করেছি , সেখানে 2 টি পদক্ষেপ উল্লেখ করা হয়নি: 1. সমস্ত .resورس ফাইল ক্লিক করুন এবং "সামগ্রী তৈরি করুন" সম্পত্তি "বিল্ড অ্যাকশন" সেট করুন। ২. সমস্ত রিসোর্স ফাইল ক্লিক করুন এবং "আউটপুট ডিরেক্টরিতে অনুলিপি করুন" সম্পত্তিটি "সর্বদা অনুলিপি করুন" এ সেট করুন।
সৌরভ

4
@Kiquenet সম্পূর্ণ (কোড সহ) উত্তর সহ .NET ওয়াইড সমর্থনের জন্য, দেখুন: stackoverflow.com/a/35813707/2901207
CularBytes

9

আমি সম্প্রতি জার্মান এবং ইংরেজি ভাষা সমর্থন সহ একটি প্রোগ্রাম লিখেছিলাম। আমি অবাক হয়ে জানতে পেরেছিলাম যে আমি যদি আমার ইংরেজি সংস্থানগুলি ল্যাঙ্গুয়েজ রিসোর্স.আরেক্স এবং আমার জার্মান উত্স ল্যাঙ্গুয়েজ রিসোর্স.ডি.এক্সএক্স নামকরণ করি তবে এটি স্বয়ংক্রিয়ভাবে সঠিক ভাষাটি নির্বাচন করে। রেসএক্সফিলকোডিজেনারেটর আমার জন্য এটি সমস্ত যত্ন নিয়েছিল।

নোট করুন যে দুটি ফাইলের ক্ষেত্রগুলি একই ছিল এবং এখনও প্রবেশ না করা কোনও জার্মান ক্ষেত্রই ইংরেজি হিসাবে অ্যাপ্লিকেশনটিতে প্রদর্শিত হবে কারণ সর্বাধিক অ-নির্দিষ্ট ফাইল ভাষা অনুসারে ডিফল্ট ফাইল। স্ট্রিং সন্ধান করার সময় এটি সুনির্দিষ্ট (প্রাক্তন .de-DE.resx) থেকে কমপক্ষে নির্দিষ্ট (প্রাক্তন .resx) এ যায়।

আপনার স্ট্রিংগুলি পেতে রিসোর্স ম্যানেজআর.গেটস্ট্রিং বা রিসোর্স ম্যানেজ.আর গেটঅবজেক্ট কলগুলি ব্যবহার করুন। অ্যাপ্লিকেশনটি আপনাকে নিখরচায় রিসোর্স ম্যানেজার দেওয়া উচিত।


6

অন্যদের জন্য যারা এগুলি আসতে পারে (শেষ পোস্টের 1+ বছর পরে), আমি একজন পেশাদার স্থানীয়করণ পণ্যটির রচয়িতা যা পুরো অনুবাদ প্রক্রিয়াটিকে অত্যন্ত সহজ করে তোলে। এটি একটি ভিজ্যুয়াল স্টুডিও অ্যাড-ইন যা কোনও সালিশী সমাধান থেকে সমস্ত ".resx" স্ট্রিংগুলি বের করে আনবে এবং একটি একক ফাইলে লোড করবে যা একটি বিনামূল্যে স্ট্যান্ডেলোন অ্যাপ্লিকেশন ব্যবহার করে অনুবাদ করা যেতে পারে (অনুবাদকরা এটি আমার সাইট থেকে ডাউনলোড করতে পারেন)। একই অ্যাড-ইন এর পরে অনুবাদ করা স্ট্রিংগুলি আপনার সমাধানে আবার আমদানি করবে। অনেকগুলি বিল্ট-ইন সেফগার্ড, প্রচুর ঘণ্টা এবং হুইসেল এবং অনলাইন সহায়তা (আপনার এটির খুব বেশি প্রয়োজন হবে না) দিয়ে ব্যবহার করা চূড়ান্তভাবে সহজ। Http://www.hexadigm.com দেখুন


4
এটি ভিজ্যুষ্টুডিওতে দেশীয় ফাংশন হিসাবে যুক্ত করা উচিত! দুর্দান্ত সফটওয়্যার!
কাওয়ারা 14 ই

অনেক ধন্যবাদ (প্রশংসা) আমি পণ্যটি চালু করার আগে আপনার সাথে একমত হয়েছি (প্রায় 10 বছর আগে) তবে এমএসএফটি যদি আজ এটি বাস্তবায়ন করে তবে এটি আমাকে ব্যবসায়ের বাইরে রাখবে :)
ল্যারি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.