আমাদের কোম্পানিতে আমাদের বিদ্যমান এমএস-এসকিএল টেবিলের সাথে উইক স্টোরগুলির স্ট্রিং রয়েছে:
Id | Key | Language | Value
1 | hello-world | nl-BE | Hallo Wereld
2 | hello-world | en-GB | Hello World
সিস্টেমে 3 টি ভাষা রয়েছে এবং আমি আশা করি এটি ভবিষ্যতে সর্বাধিক 10 টিতে বাড়বে
এই টেবিলটি একাধিক খুব আলাদা প্রকল্প (প্রায় 60 টি প্রকল্প, বেশিরভাগ ওয়েবসাইট / ওয়েব অ্যাপ্লিকেশন এবং কিছু ওয়েব পরিষেবাদি) দ্বারা পড়া হয়, যে প্রত্যেকে অনুবাদ ডাটাবেসের সাথে একটি ডাটাবেস সংযোগ খোলে, অনুবাদগুলিকে ক্যাশে করে
ফ্রন্ট-এন্ড ডেভস থেকে প্রাপ্ত প্রতিক্রিয়া হ'ল আমাদের ইউআইটো ইনপুট বা অনুবাদগুলির সবচেয়ে বড় ক্ষতিটি হ'ল তারা কী বুঝতে পারে না কোন প্রকল্পটি কোন স্ট্রিং ব্যবহার করে।
তারা মাঝে মাঝে স্ট্রিংগুলি সংশোধন করে না জেনে তারা এটি দিয়ে 7 টি প্রকল্প ভঙ্গ করছে।
এখন তাদের ঠিক কিছু টাইপ করতে হবে this.Translate("Hello World")
এবং সিস্টেমটি বাকিটির যত্ন নেয়।
আমি অবশ্যই তাদেরকে এ জাতীয় কিছুতে বাধ্য করতে পারি this.Translate("Hello World","AwesomeApplication1")
তবে মনে হয় এটি অনেকগুলি প্রকল্পের রিফ্যাক্টরিংয়ের জন্য যথেষ্ট প্রয়োজন।
আপনি কীভাবে এই সমাধানটি সরবরাহ করবেন? আপনি কীভাবে দেব হিসাবে অনুবাদে "প্রকল্পের নাম" সরবরাহ করবেন? আপনি এটি ডাটাবেসে কীভাবে সংরক্ষণ করবেন?
গুরুত্বপূর্ণ দ্রষ্টব্য: অনুবাদ পুনরায় ব্যবহার হ'ল কেন্দ্রীভূত ডাটাবেসের পুরো পয়েন্ট, তাই কোনও প্রকল্পে অনুবাদগুলি স্কোপ করে
1|hello-world|nl-BE|Hallo Wereld|MyAwesomeApplicatoin1
5|hello-world|nl-BE|Hallo Wereld!|MyAwesomeApplicatoin2
সত্যিই একটি চেয়েছিলেন বিকল্প নয়।
আমি এই জাতীয় কিছু পছন্দ করব:
1|hello-world|nl-BE|Hallo Wereld|MyAwesomeApplicatoin1,MyAwesomeApplicatoin2
বা কেবলমাত্র নাম টেবিলের মধ্যে রাখার সমতুল্য একটি বিদেশী কী
হালনাগাদ
আমি এখন পর্যন্ত এরকম কিছু নিয়ে এসেছি ডাটাবেসকে স্বাভাবিক করার পরামর্শের ভিত্তিতে:
//this allows me to distinquish if translations where added by developer or by translator
UPDATE2: পাঠ্যের পরিবর্তে edmx এখনো যোগ করেনি। লোকেরা যদি আগ্রহী হয় তবে আমি ডাব্লুসিএফ প্রকল্পটি গিথুব করতে পারি যে আমি এই ধারণাটি মুড়িয়ে দিচ্ছি যাতে অন্যান্য লোকেরা এটি পরীক্ষা করে ব্যবহার করতে পারে।