2011-06-14 22 views
5

मेरे पास यूके बाजार के लिए एक आवेदन लिखा गया है जो वर्तमान में केवल अंग्रेज़ी (यूके) का समर्थन करता है और एक ग्राहक गैर यूके साइट पर एप्लिकेशन का हिस्सा तैनात करना चाहता है और डेटा को यूके मुख्यालय में वापस सिंक्रनाइज़ करना चाहता है।डेटाबेस स्ट्रिंग्स का अनुवाद

मैं संसाधन फ़ाइलों और स्थानीय संस्कृति की जानकारी का उपयोग कर एप्लिकेशन लेबल और संदेशों को परिवर्तित कर सकता हूं लेकिन यह सोच रहा था कि आप डेटाबेस बाध्य डेटा को कैसे परिवर्तित करेंगे।

ईजी। यहाँ मुख्यालय आधारित तालिका

tblFault 
ID ; Description 
1 ; Not Functional 
2 ; Build Fault 
3 ; Leak 
4 ; Aesthetics 
5 ; Testing 

अगर मैं गैर ब्रिटेन भाषा के लिए डेटा का अनुवाद करने में मैं सिर्फ विवरण की जगह सकता है, लेकिन यह कुछ समस्याओं का कारण होता है, तो डेटा unsyncronised है था?

क्या मुझे अतिरिक्त भाषा के लिए तालिका को एक और कॉलम के साथ विस्तारित करना चाहिए और फिर स्थानीय संस्कृति का उपयोग करके चयन को बदलना चाहिए?

tblFault 
ID ; Description-EN ; Descrption-US ; Description-DE etc 
1 ; Not Functional ;    ; 
2 ; Build Fault ;    ; 
3 ; Leak   ;    ; 
4 ; Aesthetics  ;    ; 
5 ; Testing  ;    ; 

आप किस विधि की सिफारिश करेंगे?

धन्यवाद

फिल

उत्तर

5

जब से तुम एक 1:

tblFault 
-------- 

FaultID ; some other fields 
     1 ; ... 
     2 ; ... 
     3 ; ... 
     4 ; ... 
     5 ; ... 


tblFault_Description 
-------------------- 

FaultID ; lang ; Description 
     1 ; en ; Not Functional 
     1 ; de ; Funktioniert nicht 
     2 ; en ; ... 
+2

मैं मूल तालिका में अंग्रेजी/तटस्थ भाषा संस्करण रखूंगा (और चिह्नित नहीं किया गया) ताकि अगर कुछ अभी तक अनुवाद नहीं किया गया है तो हमेशा एक फॉलबैक होता है। –

+0

मैं इस विधि से बेनिफिट देख सकता हूं लेकिन चूंकि डेटा को ओलाप डाटाक्यूब में समेकित किया जाता है, इसलिए आप समग्र शीर्ष स्तर (सभी भाषाओं) एकत्रीकरण को खो देंगे क्योंकि फॉल्ट के अलग-अलग आईडी के –

+2

@ फिल मुरे - मुझे लगता है कि इरादा यह है कि 'TblFault_Labels' में' आईडी' 'tblFault-> आईडी' के लिए एक एफके है - प्रत्येक गलती में अद्वितीय 'आईडी' है, जो इसे चुनने के लिए उपयोग की जाने वाली भाषा से स्वतंत्र है। –

0

कुछ अधिक की तरह: दोष और उनके विवरणों के बीच एन संबंध, साफ समाधान एक subtable बनाने के लिए किया जाएगा इसलिए, सभी संभावनाओं में:

tblFault 
ID ; Lang ; Description 
1 ; EN ; Not Functional 
... 
1

यह निश्चित रूप से एक दृष्टिकोण है।

एक और दृष्टिकोण जिसे मैंने पहले इस तरह की परिस्थितियों में उपयोग किया था, "भाषा आईडी" कॉलम बनाना था।

StringId, LanguageId, Description 
1   0    Hello 
1   1    Hola 
1   2    Bon Jour 

यह मैं एक प्रश्न लिखने के लिए है कि अगर स्ट्रिंग 35 (उदाहरण के लिए) भाषा मैं तलाश कर रहा हूँ नहीं है, मैं अभी भी प्रदान कर सकता है की अनुमति देते हैं:

आमतौर पर मैं कुछ इस तरह होता है अंग्रेज़ी। विचार के साथ कि कुछ भी कुछ भी बेहतर नहीं है।

इस दृष्टिकोण का नकारात्मक हिस्सा समग्र प्राथमिक कुंजी है, और कुछ तर्क में शामिल हैं।

संबंधित मुद्दे