আপনি এএসপি. নেট এমভিসি অ্যাপ্লিকেশন বিকাশ করছেন, আপনি কি? অন্যান্য উত্তরগুলি ডেস্কটপ অ্যাপ্লিকেশনগুলির সাথে নির্দিষ্ট বলে মনে হচ্ছে। আমাকে সাধারণ জিনিসগুলি ক্যাপচার করুন:
লোকাল সনাক্তকরণ
আপনার অ্যাপ্লিকেশনটি ব্যবহারকারীর লোকেল সঠিকভাবে সনাক্ত করা অত্যন্ত গুরুত্বপূর্ণ। ডেস্কটপ অ্যাপ্লিকেশনটিতে, সংস্কৃতিআইনফো.কন্ট্রাল কালচারের কাছে পছন্দের ফর্ম্যাটিং লোকেল রয়েছে (যেগুলি নম্বর, তারিখ, মুদ্রা ইত্যাদির ফর্ম্যাট করতে ব্যবহার করা উচিত) যেখানে সংস্কৃতিআইএনফো। বর্তমান সংস্কৃতিতে পছন্দের ইউজার ইন্টারফেস লোকেল (স্থানীয় বার্তাগুলি প্রদর্শনের জন্য ব্যবহার করা উচিত) । ওয়েব অ্যাপ্লিকেশনগুলির জন্য, আপনার উভয় সংস্কৃতি অটোতে সেট করা উচিত (অ্যাকসেপ্টল্যাংগুয়েজার শিরোলেখ থেকে স্বয়ংক্রিয়ভাবে লোকাল সনাক্ত করতে) যদি না আপনি কিছু অভিনব লোকেল সনাক্তকরণের ওয়ার্কফ্লো বাস্তবায়িত করতে চান (যেমন চাহিদা অনুযায়ী ভাষা পরিবর্তন করতে চান না)।
বাহ্যিক স্ট্রিং
সমস্ত স্ট্রিংগুলি রিসোর্স ফাইল থেকে আসা উচিত that উইনফর্মস অ্যাপে এটি স্থানীয়করণযোগ্য সম্পত্তি রূপে সেট করে সহজেই অর্জনযোগ্য। আপনার মডেলগুলি থেকে আসা স্ট্রিংগুলি আপনাকে ম্যানুয়ালি (দুর্ভাগ্যক্রমে) বহিরাগত করতে হবে। এটি তুলনামূলকভাবে সহজও। Asp.Net এ আপনাকে ম্যানুয়ালি সব কিছুতে বাহ্যিক প্রয়োজন হবে ...
লেআউট
আপনার অবশ্যই স্ট্রিং প্রসারণের অনুমতি দেওয়া দরকার। উইনফর্মস ওয়ার্ল্ডে এটি টেবিললআউটপ্যানেলের মাধ্যমে অর্জনযোগ্য যা লম্বা পাঠ্যকে সামঞ্জস্য করার জন্য বিন্যাসটি স্বয়ংক্রিয়ভাবে সামঞ্জস্য হবে তা নিশ্চিত করতে ব্যবহার করা উচিত। ওয়েব জগতে, আপনি ভাগ্য থেকে কিছুটা দূরে are আপনার সিএসএস লোকালাইজেশন মেকানিজম প্রয়োগ করতে হবে - সিএসএস সংজ্ঞা সংশোধন করার (ওভাররাইড) করার উপায়। এটি স্থানীয়করণের লোকদের চাহিদা অনুসারে শৈলী সংক্রান্ত সমস্যাগুলি সংশোধন করার অনুমতি দেবে। নিশ্চিত হয়ে নিন যে রেন্ডারযুক্ত পৃষ্ঠায় প্রতিটি HTML উপাদানটির অনন্য আইডি রয়েছে - এটি এটিকে নিখুঁতভাবে লক্ষ্য করার অনুমতি দেয়।
সংস্কৃতি নির্দিষ্ট সমস্যা
পশ্চিমা সংস্কৃতির জন্য নির্দিষ্ট হতে পারে এমন গ্রাফিক্স, রঙ এবং শব্দগুলি ব্যবহার করা এড়িয়ে চলুন। আপনার যদি সত্যিই এটির প্রয়োজন হয় তবে দয়া করে স্থানীয়করণের মাধ্যম সরবরাহ করুন। দিকনির্দেশক সংবেদনশীল গ্রাফিকগুলি এড়িয়ে চলুন (যেহেতু আপনি আরবি বা হিব্রু ভাষাতে স্থানীয়করণের চেষ্টা করার সময় এটি একটি সমস্যা হবে)। এছাড়াও, ধরে নিবেন না যে পুরো বিশ্ব একই সংখ্যা ব্যবহার করছে (অর্থাত আরবীর পক্ষে সত্য নয়)।
টোস্ট্রিং () এবং পার্স ()
টসস্ট্রিং () সমর্থন না করা থাকলে সর্বদা কালচারআইনফো পাস করার বিষয়টি নিশ্চিত করুন । এইভাবে আপনি আপনার উদ্দেশ্যগুলি মন্তব্য করছেন। উদাহরণস্বরূপ: আপনি যদি কিছু নম্বর অভ্যন্তরীণভাবে ব্যবহার করছেন এবং কোনও কারণে এটি স্ট্রিং ব্যবহারে রূপান্তর করতে হবে:
int i = 42;
var s = i.ToString(CultureInfo.InvariantCulture);
যে ব্যবহারকারীর ব্যবহারের জন্য প্রদর্শিত হবে এমন সংখ্যার জন্য:
var s = i.ToString(CultureInfo.CurrentCulture); // formatting culture used
একইটি পার্স (), ট্রাইপার্স () এবং এমনকি পার্সে এক্স্যাক্ট () -র ক্ষেত্রেও প্রযোজ্য - কালচারআইনফো-র সঠিক ব্যবহার না করে কিছু বাজে বাগ প্রবর্তিত হতে পারে। এর কারণ হ'ল মাইক্রোসফ্টের কিছু দুর্বল আত্মা, ভাল উদ্দেশ্য নিয়ে পূর্ণ সিদ্ধান্ত নিয়েছে যে কালচারইনফো.কন্ট্রন কালচারকে ডিফল্ট হিসাবে বিবেচনা করা ভাল (এটি যদি আপনি কিছু পাস না করেন তবে এটি ব্যবহার করা হবে) - কেউ যখন টসস্ট্রিং ব্যবহার করছেন তখন ( ) তিনি / তিনি এটি ব্যবহারকারীর কাছে প্রদর্শন করতে চান, তাই না? দেখা যাচ্ছে এটি সর্বদা ক্ষেত্রে হয় না - উদাহরণস্বরূপ আপনার অ্যাপ্লিকেশন সংস্করণ নম্বরটি ডাটাবেসে সংরক্ষণ করার চেষ্টা করুন এবং তারপরে সংস্করণ শ্রেণির উদাহরণে রূপান্তর করুন। শুভকামনা।
তারিখ এবং সময় অঞ্চল
সর্বদা ইউটিসিতে ডেটটাইম সংরক্ষণ এবং ইনস্ট্যান্ট করার বিষয়ে নিশ্চিত হন (ডেটটাইম.উইটকিউ এর পরিবর্তে ডেটটাইম.নিউ ব্যবহার করুন)। প্রদর্শনের সময় স্থানীয় ফর্ম্যাটে এটিকে স্থানীয় সময় রূপান্তর করুন:
DateTime now = DateTime.UtcNow;
var s = now.ToLocalTime().ToString(CultureInfo.CurrentCulture);
আপনার যদি শরীরের সময় রেফারেন্স সহ ইমেলগুলি প্রেরণ করতে হয় তবে সময় অঞ্চল সম্পর্কিত তথ্য অবশ্যই অন্তর্ভুক্ত করবেন - ইউটিসি অফসেট এবং শহরগুলির তালিকা উভয়ই অন্তর্ভুক্ত করুন:
DateTime someDate; // i.e. from database
var formattedDate = String.Format("{0} {1}",
someDate.ToLocaleTime().ToString(CultureInfo.CurrentCulture),
TimeZoneInfo.Local.DisplayName);
যৌগিক বার্তা
আপনি ইতিমধ্যে সতর্কতা অবলম্বন করা হয়েছে স্ট্রিং কনটেনেট না করতে। পরিবর্তে আপনি সম্ভবত স্ট্রিং.ফর্ম্যাট () উপরের চিত্র হিসাবে ব্যবহার করবেন। তবে, আমি অবশ্যই জানিয়েছি যে আপনার যৌগিক বার্তাগুলির ব্যবহার কম করা উচিত। এটি কেবলমাত্র কারণ ব্যাকরণের নিয়মগুলি বেশ সাধারণভাবে পৃথক, তাই অনুবাদকদের কেবল বাক্যটি পুনরায় অর্ডার করার প্রয়োজন হতে পারে না (এটি স্থানধারক এবং স্ট্রিং ব্যবহার করে সমাধান করা হবে For ফর্ম্যাট ()), তবে পুরো বাক্যটিকে ভিন্নভাবে অনুবাদ করে এর উপর ভিত্তি করে প্রতিস্থাপন করা হবে কি। আমি আপনাকে কয়েকটি উদাহরণ দেই:
// Multiple plural forms
English: 4 viruses found.
Polish: Znaleziono 4 wirusy. **OR** Znaleziono 5 wirusów.
// Conjugation
English: Program encountered incorrect character | Application encountered incorrect character.
Polish: Program napotkał nieznaną literę | Aplikacja napotkała nieznaną literę.
অন্যান্য কনটেস্টেশন ইস্যু
প্রতিযোগিতা স্ট্রিংয়ের মধ্যে সীমাবদ্ধ নয়। একসাথে নিয়ন্ত্রণ স্থাপন এড়ান, বলুন:
[সংখ্যা সহ পাঠ্য বাক্স] দিনের মধ্যে আমাকে আবার স্মরণ করিয়ে দিন।
এটি এমন কিছুর সাথে আবার নকশা করা উচিত: এই সংখ্যক দিনের মধ্যে আমাকে আবার স্মরণ করিয়ে দিন: [পাঠ্য বাক্স]।
চরিত্রের এনকোডিং এবং হরফ
ইউনিকোডে যেকোনো পাঠ্য (যেমন ইউটিএফ -8 এ) সর্বদা সংরক্ষণ করুন, স্থানান্তর করুন। হার্ড-কোড ফন্টগুলি করবেন না - স্থানীয়করণের এগুলি সংশোধন করার প্রয়োজন হতে পারে এবং এটি ডিফল্ট ফন্ট ফ্যাল-ব্যাক প্রক্রিয়াটি বন্ধ করে দেবে (উইনফর্মের ক্ষেত্রে)। বেশিরভাগ ক্ষেত্রে (অর্থাত্ ব্যবহারকারীর নাম) "অদ্ভুত" অক্ষরগুলি মঞ্জুরি দেওয়া মনে রাখবেন।
পরীক্ষা
আপনার সম্ভবত সম্ভবত তথাকথিত ছদ্ম অনুবাদটি কার্যকর করা দরকার যা জার্মান সংস্কৃতি বলার জন্য সংস্থান তৈরি করে এবং আপনার ইংরেজী স্ট্রিংগুলিকে উপসর্গ এবং প্রত্যয় যুক্ত করে অনুলিপি করে। আপনি সহজেই যৌগিক স্ট্রিং সনাক্ত করতে স্থানধারকগুলিকে মোড়ানো করতে পারেন। সিউডো অনুবাদটির উদ্দেশ্য হ'ল হার্ড-কোডিং স্ট্রিং, লেআউট ইস্যু এবং যৌগিক বার্তাগুলির অতিরিক্ত ব্যবহারের মতো স্থানীয়করণের বিষয়গুলি সনাক্ত করা।