कोणीय-अनुवाद के साथ वर्तमान भाषा प्राप्त करें


86

क्या नियंत्रक (बिना $translateProvider) में वर्तमान उपयोग की भाषा प्राप्त करने का एक तरीका है ?

$translateसेवा में कुछ भी नहीं मिला ।


1
यदि किसी देवता के कारण के लिए आपको कुछ हद तक विश्व स्तर पर इसे सीधे उपयोग करने की आवश्यकता है, तो संभवतः कम से कम प्रयास की विधि आपके अनुवाद प्रदाता (यानी वास्तविक अनुवाद फ़ाइल में भाषा कोड) को परिभाषित करने के लिए है { "LANG_CODE": "en" }और जैसे translateफ़िल्टर का उपयोग करें । हमेशा की तरह देखें, जैसे:<video controls poster="img/poster-{{ 'LANG_CODE' | translate }}.png"> […] </video>
जरी कीनलेन

$ Window.navigator
Aleksandr

जवाबों:


155

$translate.use() एक गेट्टर और सेटर है।

डॉक्स के लिंक में पाया गया यह डेमो देखें:

http://jsfiddle.net/PascalPrecht/eUGWJ/7/


क्या मुझे इस सेवा का उपयोग केवल उसी सुविधा के लिए करना चाहिए जिससे वर्तमान ब्राउज़र की भाषा मिल सके? यहां तक ​​कि अगर मैं अनुवाद करने की योजना नहीं बना रहा हूं
ses

5
इसने मुझे वर्तमान भाषा नहीं दी बल्कि डिफ़ॉल्ट रूप दिया। $ Translation.proposedLanguage () ने मुझे प्रश्न के अनुसार एक नियंत्रक में वर्तमान में प्रयुक्त भाषा दी
जोआन-डिएगो रॉड्रिग्ज

41

$translate.use()जाने का रास्ता है। इसके अलावा, जब एक अतुल्यकालिक लोडर निष्पादित किया जाता है, तो आप उपयोग करना चाहते हैं हो सकता है $translate.proposedLanguage()कि कौन सी भाषा है कि वर्तमान में लोड लेकिन है भाषा कुंजी रिटर्न नहीं अभी तक लोड खत्म कर दिया।


2
मैं अनुवाद लोड होने से पहले भाषा को निर्धारित करने की कोशिश कर रहा था, लेकिन $translate.use()सेट नहीं किया गया था। $translate.proposedLanguage()मुझे सही लैंग दिया।
ncabral

3
क्या $translate.proposedLanguage()app.config में इसका उपयोग संभव है ? मेरे पास केवल $ TranslProvider है और मुझे इस फ़ंक्शन के परिणाम को कॉन्फ़िगर करने की आवश्यकता है, बाद में नियंत्रक में नहीं। क्या आपके पास कोई विचार है ? बहुत बहुत धन्यवाद
maxime1992

2
+ के लिएproposedLanguage()
हेर डेब

38

जब कोणीय-अनुवाद-लोडर स्थैतिक-फ़ाइलों का उपयोग कर रहा देखा है कि $translate.proposedLanguage()लौट आए undefinedजब डिफ़ॉल्ट भाषा का उपयोग करते समय $translate.use()हमेशा प्रस्तावित भाषा लौट आए।

इसलिए मैंने इसका उपयोग करके इसे ठीक किया:

var currentLang = $translate.proposedLanguage() || $translate.use();

3
यह एकमात्र तरीका है जिससे मुझे सभी स्थितियों में वर्तमान भाषा मिल सकती है।
सैमुली पाहोजा

8

$translate.use()लगता है कि एप्लिकेशन के प्रारंभिक लोड पर काम नहीं करना है, भंडारण से अंतिम चयनित भाषा प्राप्त करने के लिए: $translate.storage().get( $translate.storageKey() ) या बस $translate.proposedLanguage();


8

$translateसेवा एक विधि कहा जाता है preferredLanguage()कि वापसी आप क्या चाहते हैं। इस फ़ंक्शन की वापसी भाषा का स्ट्रिंग है, जैसे 'एन'।

यहाँ मैंने आपको एक उदाहरण लिखा है:

angular.module('traslateApp').controller('myController', ['$scope', '$translate', function($scope,$translate){
   $scope.changeLanguage = function (langKey) {
      $translate.use(langKey);
   };
   $scope.getCurrentLanguage = function () {
       $translate.preferredLanguage();
   };
}])

2
यह आपको "पसंदीदा" भाषा देगा, जरूरी नहीं कि "वर्तमान" भाषा का चयन किया जाए। यदि आप भाषाओं के बीच स्विच करते हैं, तो मेरी समझ यह है कि यह इसी तरह नहीं करता है।
आर्केल्डन

2
var currentLanguage = $ translation.use (); परिवर्तन पर स्विच करता है, जवाब के अनुसार charlietfl
arcseldon

1

i.cn में वर्तमान चयनित भाषा की जांच करने के लिए Translate.currentLang का उपयोग किया जाता है



0

शायद संबंधित नहीं है, लेकिन उपयोगी हो सकता है। कोणीय 2 में + वर्तमान भाषा तक पहुंचने का तरीका है

...
import { TranslateService } from '@ngx-translate/core';

export class MyComponent implements OnInit {
  constructor(private translate: TranslateService) {}

  ngOnInit() {
   translate.use('it');
   const currentLang = this.translate.currentLang;
  }
 }
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.