2016-04-25 2 views
12

मेरे पास मेरे नियंत्रक में कोड नीचे है।भाषा अनुवाद पॉपअप ब्राउज़र में तैयार डोम पर गायब है: Laravel 5.2

public function AllCountries() { 
    $Countries = (new \App\DataAccess\CountryData())->GetAllCountries(); 
    app()->setLocale('fr'); 
    return view('Country.List')->with('Countries', $Countries->getData()->CountryList); 
} 

डेटा प्राप्त करने का विधि की परिभाषा के नीचे है।

public function GetAllCountries() { 
    return response()->json(['CountryList' => \App\Models\CountryModel::all()]); 
} 

अंग्रेजी भाषा फ़ाइल में मैं कोड के नीचे है।

return [ 
    'CountryName' => "E Country" 
]; 

फ्रेंच भाषा फ़ाइल में मैं कोड के नीचे है।

return [ 
    'CountryName' => "F Country" 
]; 

देखें फ़ाइल में मैं कोड के नीचे है।

{!! trans('CountriesList.CountryName') !!} 

आम तौर पर जब हम एक वेबसाइट है कि हमारे ब्राउज़र में सेट हम पृष्ठ लोड पर पृष्ठ का अनुवाद करने के लिए एक सूचना दिखाई डिफ़ॉल्ट भाषा नहीं है पर जाएँ।

enter image description here

बहरहाल, यह अपनी वेबसाइट के लिए नहीं हो रहा है: नीचे स्क्रीनशॉट देखें। हालांकि मैं फ्रेंच भाषा देख सकता हूं, अनुवाद अधिसूचना पॉप-अप नहीं हो रही है ताकि मैं इसे अंग्रेजी में अनुवाद कर सकूं। क्यूं कर?

+0

जब आप अपने वेबपृष्ठ पर राइट क्लिक करते हैं, तो क्या आप एक अनुवाद विकल्प उपलब्ध देखते हैं? – Derek

+0

मैंने वेब पेज पर दायाँ क्लिक किया और फिर मैंने अनुवाद विकल्प देखा, लेकिन जब मैंने अनुवाद विकल्प पर क्लिक किया, तो उसने 'देश नाम' कुंजी का अनुवाद नहीं किया और आप मेरे नियंत्रक को जांच सकते हैं कि भाषा सेट फ्रेंच है। एक और बात यह है कि मैं पृष्ठ लोड पर अनुवाद करने का विकल्प क्यों नहीं देख सकता हूं? मुझे अनुवाद करने के लिए पृष्ठ पर राइट क्लिक क्यों करना चाहिए? – Pankaj

उत्तर

8

क्रोम अनुवाद आपके टेम्पलेट चर बदलता नहीं है या आपकी वेबसाइट को बताता है कि इसे दूसरी भाषा प्रदर्शित करनी चाहिए। यह अनुवाद करने के लिए Google अनुवाद का उपयोग करता है (दूसरे शब्दों में: यह "एफ कंट्री" से "ई कंट्री" का अनुवाद करने के लिए आपके सर्वर पर अंग्रेजी भाषा फ़ाइल नहीं देखेगा, लेकिन Google अनुवाद के साथ "एफ कंट्री" का अनुवाद करेगा)।

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

यदि आपको संदेश नहीं मिलता है, तो अपनी क्रोम सेटिंग्स ("जब कोई वेबपृष्ठ नहीं है ...") पृष्ठ की पेशकश करें, या यदि आपने इसे अपनी साइट के लिए अक्षम कर दिया है।

फिर जांचें कि आपकी साइट मेटाडाटा में <meta name=”google” value=”notranslate”> है, तो यह आपकी साइट के लिए संदेश अक्षम कर देगा।

आपका ट्रांस (...) आपकी साइट को आपके अंत में अनुवाद करने के लिए उपयोग किया जा सकता है: आप उदा। ब्राउजर भाषा सेटिंग्स या किसी अन्य माध्यम से उपयोगकर्ता को इसे बदलने के लिए "मैं फ्रेंच हूं" बटन द्वारा स्थानीय भाषा (सत्र) चर सेट करें - लेकिन इसका क्रोम अनुवाद से कोई लेना देना नहीं है और विशेष रूप से काम करेगा अन्य ब्राउज़रों भी। जब आप अपनी फ़ाइलों को पार्स

वे उपयोग किया जाता है (उदाहरण के लिए जब आप पृष्ठ उपयोगकर्ता अनुरोधों बनाने);:

अद्यतन जब से तुम उनसे पूछा गया कि भाषा फ़ाइलों को कर रहे हैं के लिए यह आपका कोड बनाता है (जो आमतौर पर भाषा को निष्क्रिय करता है) और सामग्री प्रबंधित करने योग्य: किसी भाषा को जोड़ने या संपादित करने के लिए, आपको कोडिंग-फ़ाइलों को बदलने और किसी चीज़ को नष्ट करने का जोखिम नहीं है, आप केवल एक बिंदु पर app()->setLocale बदल सकते हैं। लेकिन सामग्री को उपयोगकर्ता के सामने आने से पहले यह पार्सिंग किया जाता है: इसलिए मूल रूप से आप या तो फ्रेंच में या अंग्रेजी में उस विशिष्ट वाक्य को उपयोगकर्ता को भेजते हैं, लेकिन दोनों नहीं।

आप निश्चित रूप से उपयोगकर्ता (या "सत्र") के लिए विशिष्ट चर के साथ ऐप() -> setLocale का उपयोग कर सकते हैं। कुछ समारोह में उपयोगकर्ता कॉल कर सकते हैं कि (जैसे कुछ फार्म की action) का उपयोग

Session::put('language','fr'); 

इस सत्र-चर सेट होगा, और आप भाषा आप अपने पार्स करने के लिए का उपयोग निर्धारित करने के लिए अब से इस चर का उपयोग कर सकते हैं क्या आप अभी भी सिर्फ एक भाषा उपयोगकर्ता के लिए में अपनी सामग्री भेजने के लिए, लेकिन या उपयोगकर्ता चुन सकते हैं जो: फ़ाइलें (अपने अंत पर!) एक निश्चित मूल्य के साथ नहीं है, लेकिन तो फिर

app()->setLocale(Session::get('language',Config::get('app.locale')));  

के माध्यम से सत्र-चर एक होना चाहिए। अनुरोध को पार्स करने से पहले हमेशा सक्रिय भाषा को सेट करने की आवश्यकता होती है (उदा। इसे एक मिडलवेयर क्लास में रखें जो हर अनुरोध के लिए चलता है (हो))।

आप ब्राउज़र भाषा सेटिंग्स, यूआरएल (जैसे mysite.com या fr.mysite.com या mysite.fr दर्ज करने के आधार पर सत्र-चर सेट कर सकते हैं, आप केवल भाषा चर के मान को सेट कर सकते हैं) और इसके बारे में 404 अन्य संभावनाएं

+0

यदि क्रोम Google अनुवादक का उपयोग करेगा तो भाषा फ़ाइलों को लागू करने के लिए उपयोग क्या है? मेरा मतलब था, लार्वेल वास्तुकला में 'संसाधन/लैंग' फ़ोल्डर का पीछा क्या है? – Pankaj

1

लैरवेल संसाधन लैंग ब्राउज़र में अनुवाद से संबंधित कुछ भी नहीं है। अनुरोध में लोकेल और लार्वेल संसाधन संसाधन-लैंग के माध्यम से सम्मान कर सकते हैं। नतीजतन लार्वेल आपके द्वारा लिखे गए कोड के माध्यम से क्लाइंट ब्राउज़र स्थानीय सेटिंग्स में पाठ प्रस्तुत करेगा। अधिक जानकारी यहां content negotiation

4

Google भाषा निर्धारित करने के लिए साइट के विभिन्न हिस्सों का उपयोग करता है और (शायद) इसके लिए अनुवाद संकेत प्रदान करता है।

निम्नलिखित बातें आप सुनिश्चित करें कि वे ठीक से सेट और आशा कर रहे हैं बनाने के लिए कोशिश कर सकते हैं, क्रोम इन विचार कर रहा है:

  • एचटीएमएल lang विशेषता
    • उदाहरण: <html lang="fr-FR" dir="ltr">
    • यह वेबसाइट प्रस्तुत की गई भाषा में इंगित करता है।
  • लिंक के लिए hreflang
    • उदाहरण: यदि आप अपनी साइट पर विभिन्न भाषाओं के लिए लिंक हैं तो <link rel="alternate" hreflang="fr" href="http://fr.example.com/" />
    • आप मदद कर सकते हैं गूगल जो लिंक निर्धारित करने के लिए अपनी साइट
    • के लिए किस भाषा संस्करण के लिए सुराग
    • स्रोत: https://support.google.com/webmasters/answer/189077?hl=en
  • निकालें notranlate
    • @Solarflare जैसा कि पहले ही सुझाव दिया: अपनी साइट
  • पर <meta name=”google” value=”notranslate”> शामिल न करें क्रोम
    • में अपनी भाषा सेटिंग्स की जाँच करें Settings > Show advanced settings वाया आप की जाँच करनी चाहिए "भाषा" अनुभाग और उन पृष्ठों का अनुवाद करने के लिए ऑफ़र के बगल वाले बॉक्स को चेक या अनचेक करें जो आपके द्वारा पढ़ी जाने वाली भाषा में नहीं हैं। वैकल्पिक: आप कौन सी भाषाएं अनुवादित करना चाहते हैं, यह बदलने के लिए भाषा और इनपुट सेटिंग्स पर क्लिक करें। एक विस्तृत गाइड के लिए यह जांचें कि Google help page चेक करें।

कि Google Chrome सही भाषा का पता लगाता है कोई 100% है और यह भी नहीं 100% निश्चितता गूगल द्वारा गाइड है।

1

आपके पास परिभाषित भाषाओं के साथ ड्रॉपडाउन का चयन बीटीएन क्यों नहीं है? आप इस लाइब्रेरी का उपयोग कर सकते हैं: https://github.com/ruyadorno/dom-i18n यह काम करने के लिए

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