जब आप को हल करने के लिए एक समस्या का सामना करना पड़ता है (और स्पष्ट रूप से, जो इन दिनों नहीं है?), आम तौर पर हमारे द्वारा कंप्यूटर लोगों द्वारा ली गई मूल रणनीति को "विभाजित और जीतना" कहा जाता है। यह इस प्रकार चलता है:
- छोटी उप-समस्याओं के एक सेट के रूप में विशिष्ट समस्या की अवधारणा करें।
- प्रत्येक छोटी समस्या का समाधान करें।
- विशिष्ट समस्या के समाधान में परिणामों को मिलाएं।
लेकिन "फूट डालो और जीतो" केवल संभव रणनीति नहीं है। हम एक अधिक सामान्य दृष्टिकोण भी अपना सकते हैं:
- विशिष्ट समस्या को एक अधिक सामान्य समस्या के विशेष मामले के रूप में संकल्पित करें।
- किसी तरह सामान्य समस्या हल करें।
- विशिष्ट समस्या के लिए सामान्य समस्या के समाधान को अपनाना।
- एरिक लिपर्ट
मेरा मानना है कि इस समस्या के लिए ASP.Net/C# जैसी कई समाधान पहले से मौजूद हैं।
मैंने समस्या के कुछ प्रमुख पहलुओं को रेखांकित किया है
पूर्व। res.de.js, res.fr.js, res.en.js, res.js (डिफ़ॉल्ट भाषा भाषा के लिए)
समस्या: प्रत्येक पृष्ठ के लिए संसाधन फ़ाइलों को अलग किया जाना चाहिए ताकि हमें केवल वह डेटा मिले जो हमें चाहिए
समाधान : हम कुछ उपकरणों का उपयोग कर सकते हैं जो पहले से मौजूद हैं जैसे कि
https://github.com/rgrove/lazyload
समस्या: हमें अपना डेटा बचाने के लिए एक कुंजी / मान युग्म संरचना की आवश्यकता है
समाधान : मैं स्ट्रिंग / स्ट्रिंग हवा के बजाय एक जावास्क्रिप्ट ऑब्जेक्ट का सुझाव देता हूं। हम एक IDE से इंटैलिजेंस से लाभ उठा सकते हैं
समस्या: सामान्य सदस्यों को एक सार्वजनिक फ़ाइल में संग्रहित किया जाना चाहिए और सभी पृष्ठों को उन तक पहुंचना चाहिए
समाधान : इस उद्देश्य के लिए मैं Global_Resource नामक वेब एप्लिकेशन की जड़ में एक फ़ोल्डर बनाता हूं और प्रत्येक उप फ़ोल्डर्स के लिए वैश्विक फ़ाइल संग्रहीत करने के लिए एक फ़ोल्डर जिसे हमने इसे 'Local_Resources' नाम दिया है
समस्या: प्रत्येक सबसिस्टम / सबफ़ोल्डर / मॉड्यूल सदस्य को अपने दायरे में Global_Resources सदस्यों को ओवरराइड करना चाहिए
समाधान : मैंने प्रत्येक के लिए एक फ़ाइल पर विचार किया
आवेदन संरचना
root/
Global_Resources/
default.js
default.fr.js
UserManagementSystem/
Local_Resources/
default.js
default.fr.js
createUser.js
Login.htm
CreateUser.htm
फ़ाइलों के लिए संबंधित कोड:
Global_Resources / default.js
var res = {
Create : "Create",
Update : "Save Changes",
Delete : "Delete"
};
Global_Resources / default.fr.js
var res = {
Create : "créer",
Update : "Enregistrer les modifications",
Delete : "effacer"
};
वांछित भाषा के लिए संसाधन फ़ाइल Global_Resource से चयनित पृष्ठ पर लोड की जानी चाहिए - यह पहली फ़ाइल होनी चाहिए जो सभी पृष्ठों पर लोड की गई हो।
UserManagementSystem / Local_Resources / default.js
res.Name = "Name";
res.UserName = "UserName";
res.Password = "Password";
UserManagementSystem / Local_Resources / default.fr.js
res.Name = "nom";
res.UserName = "Nom d'utilisateur";
res.Password = "Mot de passe";
UserManagementSystem / Local_Resources / createUser.js
// Override res.Create on Global_Resources/default.js
res.Create = "Create User";
UserManagementSystem / Local_Resources / createUser.fr.js
// Override Global_Resources/default.fr.js
res.Create = "Créer un utilisateur";
manager.js फ़ाइल (यह फ़ाइल अंतिम लोड होनी चाहिए)
res.lang = "fr";
var globalResourcePath = "Global_Resources";
var resourceFiles = [];
var currentFile = globalResourcePath + "\\default" + res.lang + ".js" ;
if(!IsFileExist(currentFile))
currentFile = globalResourcePath + "\\default.js" ;
if(!IsFileExist(currentFile)) throw new Exception("File Not Found");
resourceFiles.push(currentFile);
// Push parent folder on folder into folder
foreach(var folder in parent folder of current page)
{
currentFile = folder + "\\Local_Resource\\default." + res.lang + ".js";
if(!IsExist(currentFile))
currentFile = folder + "\\Local_Resource\\default.js";
if(!IsExist(currentFile)) throw new Exception("File Not Found");
resourceFiles.push(currentFile);
}
for(int i = 0; i < resourceFiles.length; i++) { Load.js(resourceFiles[i]); }
// Get current page name
var pageNameWithoutExtension = "SomePage";
currentFile = currentPageFolderPath + pageNameWithoutExtension + res.lang + ".js" ;
if(!IsExist(currentFile))
currentFile = currentPageFolderPath + pageNameWithoutExtension + ".js" ;
if(!IsExist(currentFile)) throw new Exception("File Not Found");
आशा करता हूँ की ये काम करेगा :)