$ NON-NLS-1 $ এর অর্থ কী?


320

এক্সিলিপ সোর্স কোডে, আমি এর মতো মন্তব্যে কিছু '$ NON-NLS-1 $' পেয়েছি:

private String toolTip = ""; //$NON-NLS-1$

ওটার মানে কি ?

উত্তর:


370

তারা একটি সতর্কবার্তাটি নিঃশব্দ করে রাখে যে যখন স্ট্রিং লিটারেলগুলির মুখোমুখি হয় (এবং অভিযোগের জন্য কনফিগার করা হয়েছে) তখন গ্রহটি নির্গত হয়।

ধারণাটিটি হ'ল যে ইউআই বার্তাগুলি স্ট্রিং লিটারাল হিসাবে এম্বেড করা উচিত নয়, বরং একটি উত্স ফাইল থেকে উত্সাহিত করা উচিত (যাতে সেগুলি অনুবাদ করা যায়, প্রমাণিত করা যায় ইত্যাদি)। ফলস্বরূপ, Eclipse স্ট্রিং আক্ষরিক সনাক্তকরণের জন্য কনফিগার করা যেতে পারে, যাতে আপনি দুর্ঘটনাক্রমে কোডটিতে অব্যক্ত UI স্ট্রিং না ফেলে থাকেন; তবে, এমন স্ট্রিং রয়েছে যা বাহ্যিক হওয়া উচিত নয় (যেমন রেজিেক্সপস) এবং তাই, // $ NON-NLS-1 you আপনাকে সেই তথ্যটি সংকলকের সাথে যোগাযোগ করার একটি উপায় দেয়।


10
তো, এনএলএস কিসের পক্ষে দাঁড়ায়?
ম্যাট্রিক্সফ্রোগ

39
@ ম্যাট্রিক্সফ্রোগ এটি "জাতীয় ভাষা সমর্থন" বলে মনে হচ্ছে, কমপক্ষে এটি এখানে উল্লেখ করা হয়েছে: এমএসডিএন.মাইক্রোসফটকম /en-us/library/ms906482.aspx
ড্যানিয়েল ডিকিসন

23
মূল্যায়নযোগ্য হতে, আমি মনে করি কোডটি যদি বিভিন্ন পরিবেশে পরিবর্তন করা হয় তবে এই জাতীয় IDE- নির্দিষ্ট চিহ্নিতকারী ব্যবহার করা উচিত নয়। যদিও চিহ্নিতকারী কোনও ক্ষতি করে না এটি কোডকে বিশৃঙ্খল করে তোলে এবং এটি বজায় রাখা আরও কঠিন করে তোলে।
মিগু

4
সুতরাং, আপনি কিভাবে স্ট্রিং লিটারালগুলি সনাক্ত করতে একটিলিপসটি কনফিগার করবেন, যাতে অনুপস্থিত // $ NON-NLS-1 a একটি সতর্কতা বা শ্রীমতি উত্থাপন করবে?
আরআরপি

3
নেটবিয়ান্স প্ল্যাটফর্ম একই উদ্দেশ্যে // NOI18N মন্তব্য কীওয়ার্ড ব্যবহার করে
ম্যাট

57

স্ট্রিং অনুবাদযোগ্য নয়। এটি Eclipse সম্পাদককে বলা হয়েছে স্ট্রিংটিকে অনিরসোসিত হিসাবে পতাকাঙ্কিত করবেন না। এটি বহুভাষিক অ্যাপ্লিকেশনগুলির জন্য গুরুত্বপূর্ণ।


8
পতাকাটিকে কেন নন এনএলএস (কোনও জাতীয় ভাষা সমর্থন নয়) বলা ভাল কারণ। ধন্যবাদ।
কাডজিয়া

28

NON-NLSমানে - এন ational এল anguage এস upport
উইকিপিডিয়া এছাড়াও প্রস্তাব - এন ative এল anguage এস upport (পরিবর্তে NLS) কিন্তু এই শেষ এক খুব ব্যবহার করা হয় না।

এনএলএস আপনার অ্যাপ্লিকেশনটিকে আন্তর্জাতিকীকরণের বিষয়ে। আপনার কোডে হার্ড-কোডড স্ট্রিংগুলি সনাক্ত করতে গ্রহপ সহায়তা করুন। স্ট্রিংটি আন্তর্জাতিকীকরণের অংশ নয় তা নির্দেশ করতে, //$NON-NLS-x$x স্ট্রিংয়ের অবস্থান যেখানে মন্তব্য যুক্ত করুন । নিম্নলিখিত উদাহরণে উভয়ই "!"কঠোর কোডেড স্ট্রিংগুলি আন্তর্জাতিকীকরণের অংশ নয়:

 public String foo(String key) { 
   return "!" + key + "!"; //$NON-NLS-1$ //$NON-NLS-2$ 
 } 

মন্তব্য:

  • নেতৃস্থানীয় //প্রতিটি সময় প্রয়োজন
  • $NON-NLS$একই লাইনের একাধিক স্ট্রিংয়ের জন্য কোনও বৈশ্বিক নয়
    (যেমন আপনার লাইনের ছয়টি স্ট্রিং থাকে, আপনাকে ছয়বার লিখতে হবে //$NON-NLS-x$)

250 পৃষ্ঠায় ইএমএফ: এক্সপ্লিপ মডেলিং ফ্রেমওয়ার্ক বইটি বলে:

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

আরও তথ্যের জন্য জেনারেটর জিইউআই পৃষ্ঠা এবং কীভাবে আপনার গ্রহন প্লাগইনকে আন্তর্জাতিকীকরণ করবেন পৃষ্ঠাগুলি দেখুন ।

আপনি এই বৈশিষ্ট্যটি সক্ষম / অক্ষম করতে পারেন। নিগ্রহ নেওন
Project > Properties > Java Compiler > Errors/Warnings
এবং ফিল্ড নির্বাচন করুন
Non-externalized strings (missing/unused $NON-NLS$ tag)

গ্রহের উপর প্রকল্পের বৈশিষ্ট্যগুলির উইন্ডো


14

আপনি যদি অ্যান্ড্রয়েড বিকাশকারী হন। আপনি যে স্ট্রিংটি ব্যবহারকারী দেখতে পাচ্ছেন সেগুলি আপনার আর.স্ট্রিং ব্যবহার করা কোডটিতে স্ট্রিং.এক্সএমএল ফাইল পড়ার জন্য রিসোর্স ফাইল /res/values/strings.xML হওয়া উচিত .. ট্যাগটি যোগ করে // $ NON-NLS- $ আপনি স্ট্রিংটি ব্যবহারকারীরা দেখতে পাবে না তা উল্লেখ করে।

ইক্লিপস হেলিওজে সতর্কতা চালু করা যেতে পারে Window -> preferences -> java -> Compiler -> code style -> "Non-externalized Strings (missing/unused &NON-NLS$ tag)

আপনি যদি নিজের ক্রিয়াকলাপটিকে বহু ভাষা হিসাবে প্রোগ্রাম করার পরিকল্পনা করে থাকেন তবে এটি চালু করার পরামর্শ দেওয়া হবে। এবং তারপরে আপনার ক্রিয়াকলাপের অভ্যন্তরীণ স্ট্রিংগুলিতে & NON-NLS $ ট্যাগ যুক্ত করুন। আপনি যদি সতর্কতা বা ত্রুটিটিতে ডান ক্লিক করেন তবে গ্রহণটি দ্রুত-ফিক্সে & NON-NLS $ ট্যাগ যুক্ত করবে।


9

এটি Eclipse দ্বারা বোঝায় যে কোনও স্ট্রিং অনুবাদ করার দরকার নেই, সম্ভবত এটি অ্যাপ্লিকেশনটির ব্যবহারকারীরা দেখতে পাচ্ছেন না।


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

5

এটি কম্পাইলারকে বলে যে কোনও বহিরাগত স্ট্রিং সম্পর্কে অভিযোগ না করা এবং এটি স্থানীয়করণের প্রয়োজন হয় না।


4
আমি মনে করি না যে এটি সংকলক, আমি মনে করি এটি গ্রহন যা অভিযোগ করে।
পল টমলিন 12

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