2011-07-07 13 views
6

एंड्रॉइड वेबव्यू में अंतर्राष्ट्रीयकरण/स्थानीयकरण को संभालने का सबसे अच्छा तरीका क्या है।एंड्रॉइड वेबव्यू इंटरनेशनललाइजेशन

res/values ​​/ strings.xml res/values-de/strings.xml ...

किसी को भी एक कुशल तरीके से यह किया गया है: आदर्श रूप में, मैं सभी स्ट्रिंग संसाधनों का उपयोग करना चाहते हैं ?

एंड्रॉयड स्थानीयकरण जानकारी: http://developer.android.com/guide/topics/resources/localization.html

बेस्ट, - थॉमस Amsler

+0

एक तरह से प्रत्येक पृष्ठ के लिए एक जे एस गतिविधि के मूल निवासी कॉल करने के लिए और, जरूरत stings.xml संसाधनों मिलता है और फिर उन्हें jQuery के माध्यम से वेब दृश्य में प्रस्तुत करना है। ऐसा लगता है कि स्टार्टअप पर वेबव्यू पर सभी आवश्यक स्ट्रिंग्स.एक्सएमएल संसाधन भेजने के लिए एक और अधिक प्रभावी तरीका होना चाहिए। – tamsler

उत्तर

10

किसी वेबव्यू में कुछ स्थानीय डेटा लोड करने के लिए, मैंने एक स्थानीय यूआरएल युक्त एक स्ट्रिंग बनाई, और इसका उपयोग HTML फ़ाइल को लोड करने के लिए किया। इसलिए उदाहरण के लिए एक स्ट्रिंग:

<string name="url_to_load">file:///android_asset/localized_ru.html</string> 

गतिविधि में /assets निर्देशिका में एक फ़ाइल localized_ru.html संदर्भ के लिए, और उसके बाद:

webView.loadUrl(getString(R.string.url_to_load)); 

मैं के बाद से assets/ निर्देशिका स्थानीय नहीं है एक स्ट्रिंग के माध्यम से इस अप्रत्यक्ष इस्तेमाल किया , और एक यूआरएल का उपयोग कर संसाधन लोड करना मेरे लिए काम नहीं करता है।


तुम सच में अपने वेब दृश्य से सभी स्ट्रिंग संसाधनों को लोड करने में सक्षम होना चाहते हैं, तो आप एक जावास्क्रिप्ट इंटरफ़ेस और एक सरल सहायक वर्ग बना सकते हैं:

class Localizer { 
    private Resources res; 

    public Localizer(Resources res) { 
     this.res = res; 
    } 
    public String get(String key) { 
     int id = res.getIdentifier(key, "string", "org.example.app"); 
     return res.getString(id); 
    } 
} 

तो में वेबव्यू है कि पारित अपनी गतिविधि: यह करने के लिए

webView.getSettings().setJavaScriptEnabled(true); 
webView.addJavascriptInterface(new Localizer(getResources()), "localizer"); 
0

आप अपने WebView स्थानीयकृत स्ट्रिंग संसाधनों डेटा भेज सकते हैं। WebView.postUrl()

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