স্থানীয়করণের স্ট্রিং রিসোর্সগুলি কীভাবে সংগঠিত করবেন?


14

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

স্থানীয়করণের স্ট্রিংগুলি সংগঠিত ও নামকরণের জন্য সর্বোত্তম পন্থা কোনটি?

এখন পর্যন্ত আমার চিন্তাভাবনাগুলি এখানে:

সদৃশ হ্যান্ডলিং

একই পাঠ্য (বলুন, "জিপ কোড") প্রদত্ত প্যাকেজের মধ্যে একাধিকবার ঘটতে পারে। প্রোগ্রামিং প্রবৃত্তি (ডিআরওয়াই) আমাকে সমস্ত ঘটনার দ্বারা ভাগ করে নেওয়া একটি একক স্ট্রিং রিসোর্স তৈরি করতে বলে ।

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

নামকরণ

যদি আমরা সদৃশগুলি মুছে ফেলার লক্ষ্য করি তবে বিষয়বস্তু দ্বারা সংস্থানগুলির নামকরণ করা বোধগম্য হয় , সম্ভবত উপসর্গের মাধ্যমে ব্যবহারের ধরণের ইঙ্গিত দেওয়া। সুতরাং আমাদের labelOK= "ওকে" থাকতে পারে , messageFileTooLarge= "ফাইলটি সর্বোচ্চ ফাইলের আকার ছাড়িয়েছে ce" , এবং labelZipCode= "জিপ কোড"

বিষয়বস্তু দ্বারা নামকরণে ফর্ম্যাট আর্গুমেন্টগুলি প্রাকৃতিকভাবে পরিচালনা করার সুবিধা রয়েছে: উত্সটি messageFileHas_0_MBWhileMaximumIs_1_MBস্পষ্টভাবে দুটি ফর্ম্যাটিং আর্গুমেন্ট গ্রহণ করে, প্রকৃত ফাইলের আকার এবং সর্বোচ্চ ফাইলের আকার size

তবে আমরা যদি সদৃশগুলিকে অনুমতি দিই তবে কেবলমাত্র সামগ্রী দ্বারা নামকরণ করা কোনও অর্থবোধ করে না। অনন্য রিসোর্সের নামগুলি পেতে, আমাদের অবশ্যই কোনওভাবে ব্যবহারের জায়গাটি সম্পদের নামে অন্তর্ভুক্ত করতে হবে । এটি গ্রাফিকাল নিয়ন্ত্রণের জন্য কাজ করে, যদিও শনাক্তকারীরা কিছুটা দীর্ঘ সময় নিয়ে যায়: fileSelectionConfirmationButtonText= "ঠিক আছে" , customerDetailsTableColumnZipCode= "জিপ কোড" । তবে, অ-ভিজ্যুয়াল কোড ফাইলগুলির জন্য, এটি আরও শক্ত হয়ে যায়। কোনও স্ট্রিংয়ের নির্দিষ্ট ব্যবহারের নাম আপনি কীভাবে রাখবেন যদি আপনি না জানেন যে এটি শেষ পর্যন্ত প্রদর্শিত হবে? কোড ফাইল এবং ফাংশন নাম দ্বারা? আমার কাছে বরং আনাড়ি এবং ভঙ্গুর মনে হচ্ছে।

সব মিলিয়ে, আমি নকলকে অনুমতি দেওয়ার দিকে ঝুঁকছি, তবে আমি এটি সমর্থন করে একটি ধারাবাহিক নামকরণের স্কিম খুঁজতে লড়াই করছি।

সম্পাদনা করুন: এই প্রশ্নের দুটি দিক রয়েছে: কীভাবে সংস্থানগুলি (ডিআরওয়াই বনাম ডুপ্লিকেট) সংগঠিত করবেন এবং কীভাবে তাদের নামকরণ করবেন। এখনও অবধি উত্তরগুলি প্রথম দিকটিতে মনোনিবেশ করেছে। নামকরণ কনভেনশন সম্পর্কিত কিছু প্রতিক্রিয়া আমি উপলব্ধি করব!


1
আপনার যদি প্রতিটি লকের সেট সহ ছোট প্যাকেজ থাকে তবে প্রশ্ন উঠছে যে আপনি অনেকগুলি নকল দেখতে পাবেন কিনা। আমি নকলগুলি নিয়ে যাব এবং কোডে শনাক্তকারীদের সম্পর্কে খুব বেশি চিন্তা করব না।
মার্টিন বা

"আপনি যদি কোনও স্ট্রিংয়ের নির্দিষ্ট ব্যবহারের নাম রাখেন তবে শেষ পর্যন্ত কোথায় প্রদর্শিত হবে তা আপনি জানেন না?" এটি কি ডিজাইনের কোনও ত্রুটির চিহ্ন নয়, যেখানে এটি যুক্তির সাথে মিশ্রিত হয় ( এটি কোথায় দেখানো হবে তা স্থির করে) এবং উপস্থাপনা (আসলে এটি প্রদর্শিত হচ্ছে)। আঞ্চলিক ডেটা সহ কিছু পাঠ্য তৈরি করা আপনার পক্ষে খুব অদ্ভুত হবে তবে এটিকে অন্য যে কোনও অভ্যন্তরীণ ডেটা অবজেক্টের মতো আচরণ করে যা আপনি ঘুরে আসতে পারেন।
আলফা

উত্তর:


8

আমি অনুলিপি গ্রহণ করব যখনই আপনি একেবারে নিশ্চিত হতে পারবেন না যে কোনও ক্ষেত্রে একটি নির্দিষ্ট স্ট্রিং ব্যবহৃত হয় তবে অর্থটি একই রকম।

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

উদাহরণ হিসাবে: "কন্ডিশন" লেবেলটি বিবেচনা করুন, যা - প্রসঙ্গে নির্ভর করে জার্মান "জাস্ট্যান্ড" বা "বেদিংং" তে অনুবাদ হতে পারে (প্রচুর অন্যান্য সম্ভাব্য অনুবাদগুলির মধ্যে)।



2

কিছু সদৃশ গ্রহণ করুন।

অতিরিক্ত নিয়ন্ত্রণ তৈরি করে আপনি কয়েকটি একাধিক অনুবাদ এড়াতে পারবেন। উদাহরণস্বরূপ, এ CancelButtonএবং একটি OKButtonযা ইতিমধ্যে তাদের পাঠ্য রয়েছে এবং বাতিল করুন / আব্রেচেন ঠিক আছে / ঠিক আছে কেবল একবার অনুবাদ করা দরকার। তবে এটি প্রায় একটি বিশেষ ক্ষেত্রে।


2

এইভাবে আমরা আমাদের সংস্থায় এটি পরিচালনা করি:

নামকরণের সম্মেলন: আমরা লেবেলগুলিকে তাদের শ্রেণি / বিভাগ / ফর্ম / ইত্যাদি দিয়ে উপসর্গ করে নামকরণ করি। উদাহরণ হিসেবে বলা যায় loadFile_loadButton, loadFile_fileNameLabel, loadFile_cancelবোঝা ফাইল সংলাপ একাত্মতার সমস্ত লেবেল আছে। যদিও এই আন্ডারকর্ডিং নামকরণ কনভেনশনটি সর্বাধিক সাধারণ নয়, আমরা আরও বেশি স্ট্যান্ডার্ড কনভেনশনগুলির পক্ষে এটি সমর্থন করি কারণ এটি পাঠযোগ্যতা এবং "গ্রুপিবিলিটি" উন্নত করে: লক্ষ্য করুন যে লেবেলগুলি কোন উপাদানটির সাথে সম্পর্কিত, এবং প্রতিটি লেবেল কী লেবেলগুলির প্রতিনিধিত্ব করে তা দেখতে কতটা সহজ লেবেলের তুলনায় নাম loadFileLoadButton, loadFileNameLabelএবং loadFileCancel। আপনি মনে করতে পারেন যে পার্থক্যটি এত বড় নয়, তবে আপনার যখন কয়েক হাজার লেবেল থাকে, তখন যৌগিক প্রভাবটি এটির পক্ষে উপযুক্ত।

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

"ন্যায়সঙ্গত" ডুপ্লিকেটগুলি আকাঙ্ক্ষিত: উপরে উল্লিখিত হিসাবে, এই অনুশীলনগুলি অবশ্যই ডুপ্লিকেট লেবেলগুলির দিকে পরিচালিত করবে, তবে আমরা এটির সাথে কোনও সমস্যা দেখি না (ব্যবসায়ের সরঞ্জামগুলিতে এটি কীভাবে পরিচালনা করতে হবে))

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

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

এর সংক্ষিপ্তসার: যুক্তিযুক্ত ডুপ্লিকেশন এবং প্রাসঙ্গিক উপায়ে লেবেল গোষ্ঠীবদ্ধ করা অনুবাদকদের সত্যই তাদের কাজ করতে সহায়তা করে। বড় সময়. কেবল এটির জন্য চিন্তা করুন: প্রসঙ্গটি সঠিক অনুবাদ নির্বাচন করতে অনুবাদককে সহায়তা করার ক্ষেত্রে অনেক বেশি এগিয়ে যায়। এবং "ন্যায়সঙ্গত" অনুলিপিগুলিকে মঞ্জুরি দেওয়ার ফলে এমন একটি অনুবাদ নির্বাচন করার দ্বন্দ্ব দূর হয় যা কিছু প্রাসঙ্গিকভাবে ফিট করে না (তবে যাইহোক এটি সর্বোত্তম সামগ্রিক ফিট)।

আশা করি এটা কাজে লাগবে!


1

অতীতে আমি যখন এটি করেছি তখন আমরা সম্পূর্ণ বাক্যযুক্ত রিসোর্স ফাইলের রুটে নেমেছি। যদি একই একই বাক্যটি বারবার দুর্দান্ত ব্যবহৃত হয় তবে এটি যদি কেবলমাত্র একটি বাক্যের মধ্যে থেকে পৃথক শব্দ হয় তবে এই শব্দগুলি নকল হত।

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

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

আপনার জিপ কোড উদাহরণটি ব্যবহার করে, আপনি যদি এটি চেষ্টা করে নিজেই এটি অনুবাদ করেন এবং এটি ব্যবহার করে এমন সমস্ত বাক্যে এটি প্রতিস্থাপন করেন তবে আপনি খুব খারাপ অনুবাদ পেয়ে যাবেন।

উদাহরণস্বরূপ, "জিপ কোড অবশ্যই প্রবেশ করাতে হবে" এর জন্য অন্য ভাষায় "প্রবেশ করা জিপ কোড অবশ্যই" এর আক্ষরিক সমান অনুবাদ করতে হতে পারে। আপনি যদি একটি বাক্য কেটে ফেলেন তবে আপনি অন্য ভাষায় প্রয়োজনীয় শব্দের বিপরীতমুখীটি পাবেন না।

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

আমরা সর্বদা বাক্যগুলি না ভাঙিয়ে সামগ্রিকভাবে অনুবাদ করা ভাল বলে মনে করি। আমাদের কাছে এমন ডেটা রাখার জন্য স্থানধারক ছিল যা সন্নিবেশ করানো দরকার (যেমন "পার্ট নম্বর @ 1 রিডানড্যান্ট") এবং অনুবাদক স্থান অনুবাদককে সেই অবস্থানটিতে নিয়ে যেতে পারে যে তারা এটি একটি ভাল অনুবাদের জন্য চেয়েছিল।

তবে আমরা দেখতে পেলাম যে জায়গাগুলি ঠিক একই বাক্যটি ব্যবহার করেছিল বা একই ডেটা প্রম্পট বা একই বোতামের লেবেল ইত্যাদি অনুবাদগুলি ভাগ করে নেওয়া ভাল ছিল। এটি কখনই সমস্যা হিসাবে আসে নি এবং অনুবাদকের জন্য সময় / খরচ বাঁচায়।


যথাযথভাবে। আমরা এটিও করি। অনুবাদে লেবেল / বাক্য ভাঙার চেষ্টা করবেন না।
মার্টিন বা

1
আমি ভীত যে সত্যিই আমার প্রশ্নের সমাধান করতে পারে না। আমি পুরোপুরি একমত যে বাক্যগুলি কখনই ভাঙা উচিত নয়। তবে বেশিরভাগ সংস্থানগুলি বাক্য নয় তবে সাধারণ লেবেল (বোতামের পাঠ্য, টেবিল শিরোনাম, ফর্ম লেবেল ইত্যাদি)।
ড্যানিয়েল ওল্ফ

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

আমি স্প্যানিশ থেকে এবং এর থেকে বেশ কয়েকটি বড় অ্যাপ্লিকেশন অনুবাদ করে কাজ করেছি এবং আমি আপনাকে বলতে পারি যে আপনার যদি সঠিক অনুবাদ সরঞ্জাম রয়েছে তবে ডুপ্লিকেটগুলি কোনও সমস্যা নয় (তারা এমনকি পছন্দসই)। কীভাবে এটি কার্যকরভাবে পরিচালনা করতে হয় তার জন্য আমার উত্তর দেখুন।
carlossierra

0

নামকরণের বিষয়ে আপনার চিন্তাভাবনা ভাল।

উদ্দেশ্য

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

বাস্তবায়ন

  • সুপরিচিত সংক্ষিপ্তসারগুলির ধারাবাহিক ব্যবহারের সাথে জ্ঞানীয় লোড হ্রাস করুন (উদাহরণস্বরূপ, প্রতিলিপি = বার্তা, lbl = লেবেল, বিটিএন = বোতাম, ...)
  • বর্ণমালার তালিকাগুলিতে সরঞ্জামগুলি ভেরিয়েবল / লেবেল উপস্থাপন করে, সুতরাং সম্পর্কিত লেবেলগুলি এক সাথে গোষ্ঠীবদ্ধ হওয়ার সাথে সাথে মানব দৃষ্টিভঙ্গি সবচেয়ে ভাল। নামগুলিকে সর্বাধিক সাধারণ থেকে সর্বাধিক নির্দিষ্ট করে নিন। (অর্থাত্‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ही‍‍‍‍‍‍‍‍‍‍ੀ’কে ফাইল ফাইল বিস্ফোরিত করা হবে,
  • ইংরেজি একটি ক্রিয়াপদ- বিশেষ্য অর্ডার করা ভাষা। অনেক (সর্বাধিক?) অন্যান্য ভাষা বিশেষ্য ক্রিয়া হয়। ক্রিয়াকলাপ শ্রেণিবদ্ধকরণের জন্য সেরা কাজ করে।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.