প্রথমে যাওয়ার, gettext
একটি ভাল উপায় হ'ল, সুতরাং যদি প্রথমে এটি সহজ মনে না হয় তবে বরখাস্ত করবেন না; তবে অন্যান্য বিকল্পগুলিও রয়েছে যা জানার জন্য কার্যকর হবে। এটি ব্যাখ্যা করার আগে আসুন প্রথমে আপনার পরামর্শগুলি একবার দেখুন:
এটি করার ক্ষেত্রে আপনার array
কাছে বেশ সহজ সরল সমাধান রয়েছে। ভাল জিনিস আপনি আপনার অনুবাদগুলি একটি ডেটা স্টোরেজে সঞ্চয় করতে পারেন, তারপরে এটি আপনার পিএইচপি স্ক্রিপ্টে অ্যারে হিসাবে লোড করতে পারেন এবং এটিই। তবে আপনি যদি নিজের অ্যারেটি পিএইচপি ফাইলে স্থিতিশীলভাবে সংরক্ষণ করতে চান তবে তার সম্পাদনার দরকার হয় একটি) পিএইচপি প্রোগ্রামার বা একটি অতি অভিজ্ঞ ব্যবহারকারী যিনি পিএইচপি সিনট্যাক্সের সাথে পরিচিত, কেবল ফাইলটি সম্পাদনা করতে খ) এমনকি চার বা পাঁচটি ভিন্ন ভাষা ফাইলের মধ্যেও সিঙ্ক করতে হবে) বেশ বিরক্তিকর এবং ত্রুটির প্রবণ হতে পারে।
আপনার এখানে যা বিবেচনা করা উচিত তা হ'ল: পরে কীভাবে ভাষা ফাইলে নতুন উপাদান যুক্ত করা যায়? আমি কি এটি অনুবাদকের উপরে ছেড়ে দিতে পারি বা পিএইচপি প্রোগ্রামার থাকা উচিত?
আপনার variable
এটি করার পদ্ধতি ব্যবহারিক নয়। কেন? আমি ধরে নিয়েছি আপনার অ্যাপ্লিকেশনটিতে কমপক্ষে কয়েকটি ফাংশন থাকবে, তাই না? তারপরে আপনি যখন ফাংশনটি কল করবেন তখন আপনাকে এই সমস্ত ভেরিয়েবলগুলি পাস করতে হবে বা আপনার global
এগুলি প্রয়োজন । আপনি যদি ভাবেন যে এর মতো দশটিরও বেশি ভেরিয়েবল রয়েছে তবে আমি আপনাকে দৃ strongly়ভাবে এটি করতে নিরুৎসাহিত করব। নাম-বিবাদও হতে পারে - আপনি একই নামের সাথে অন্য কোনও ভেরিয়েবলের মানকে ওভাররাইড করতে পারেন, তবে এটি একটি আন্ডারস্কোর হিসাবে সহজ হিসাবে একটি উপসর্গ যুক্ত করেও সমাধান করা যেতে পারে, সুতরাং $_welcome
উদাহরণস্বরূপ আপনার থাকতে হবে । যাইহোক, আমি আপনি হলে আমি এটি সম্পর্কে এমনকি চিন্তা করব না; এটা করবেন না।
এটি করার একটি ভাল উপায় হ'ল একটি উপসর্গ দিয়ে কনস্ট্যান্টগুলি সংজ্ঞায়িত করা । সুতরাং আপনার মধ্যে উদাহরণস্বরূপ en.lang.php
তোমার মত কিছু থাকবে define( 'LABEL_WELCOME', 'Welcome' );
এবং আপনার no.lang.php
আপনি হবে define ( 'LABEL_WELCOME', 'Velkommen' );
। ভেরিয়েবলের পরিবর্তে ধ্রুবক ব্যবহার করার ভাল জিনিস হ'ল এগুলি আপনার স্ক্রিপ্টে সর্বদা উপলব্ধ। সুতরাং আপনার সেগুলি ইনজেকশন বা গ্লোবাল করার দরকার নেই। অ্যারে এবং ভেরিয়েবল উভয়ের তুলনায়, পিএইচপি যেভাবে তাদের পরিচালনা করে সেগুলির কারণে তারা দ্রুত হয় - তারা স্মৃতিতে কম জায়গা নেয়। ত্রুটিটি হ'ল আপনি সেগুলি অনুবাদকের কাছে পাস করতে পারবেন না, সুতরাং আপনার আবার পিএইচপি বিকাশকারী প্রয়োজন। ফাইলগুলির মধ্যে সিঙ্ক করা আবার কিছুটা ব্যথা হতে পারে।
অন্য বিকল্পটি হ'ল অনুবাদটি পুনরুদ্ধার করার জন্য একটি ফাংশন বা শ্রেণি / পদ্ধতি থাকা। এটি কম দক্ষ হবে - তবে আমি মনে করি না যে আপনার এ ধরণের মাইক্রো-অপ্টিমাইজেশানটি মোটেই প্রয়োজন, তবে যুক্ত সুবিধাটি হ'ল অনুবাদটি পুনরুদ্ধার করার সময় আপনি একটি কাস্টম যুক্তি প্রয়োগ করতে পারেন। উদাহরণস্বরূপ কল্পনা করুন যে কোনও দিন আপনার প্রিয় প্রকল্প পরিচালক আপনাকে জিজ্ঞাসা করতে এসেছেন যে আপনি যদি এই সমস্ত পাঠকে বড় হাতের কাছে গুপ্ত করতে পারেন। আপনি এটি করতে অস্বীকার করতে পারবেন না, সুতরাং আপনার সমস্ত অনুবাদগুলিতে কোনও প্যাটার্ন প্রয়োগ করার / পরিবর্তন করার প্রয়োজন হলে এর মধ্যে একটি ফাংশন থাকা আপনাকে অনেক সহায়তা করতে পারে।
এটি গুটিয়ে রাখতে:
অনুবাদকগণ কীভাবে এটি ব্যবহার করতে পারেন এবং তাদের জন্য একটি ওয়ার্কিং-কেআইএসএস সমাধান নিয়ে আসতে পারেন তা ভেবে দেখুন।
কীভাবে আপনি বিভিন্ন ভাষার মধ্যে সিঙ্ক থাকতে পারেন তা ভেবে দেখুন।
একই অনুবাদটির প্রয়োজন হতে পারে কিনা তা ভেবে দেখুন, মোবাইল অ্যাপটির জন্য বলি। একটি ক্রস প্ল্যাটফর্ম সমাধান আপনার সময় সাশ্রয় করতে পারে। জেএসএন এবং সাধারণ ডেটাবেসগুলিকে বরখাস্ত করবেন না।
অনুবাদগুলি পুনরুদ্ধার করার সময় আপনি কীভাবে যুক্তি প্রয়োগ করতে / পরিবর্তন করতে পারবেন সে সম্পর্কে চিন্তাভাবনা করুন।
পারফরম্যান্স সম্পর্কে ভুলে গেছেন। 99.9% বার আপনি কনস্ট্যান্ট বনাম ভেরিয়েবল বনাম ফাংশন কলগুলির মতো মাইক্রো-অপ্টিমাইজেশানটি করতে পারবেন না । আমি ধরে নিই যে একজন প্রবর্তক / কর্মচারী হিসাবে আপনার সময়টি প্রসেসরের সময়ের চেয়ে বেশি ব্যয়বহুল।
আপডেট # 1
আমার মঙ্গল, আমি এক বছরের পুরানো প্রশ্নের উত্তর পোস্ট করি। এখানে কেউ কিছু বলছে না কেন? আমাদের এই ক্ষেত্রে সতর্কতা প্রয়োজন।
আপডেট # 2
ডানদিকে এটি এক বছরের পুরানো প্রশ্ন; তবে এটা জিজ্ঞাসা করা হয়েছে দুই বছর আগে! এখানে সবকিছু বিভ্রান্ত করছে!