Mevcut kullanılan dili bir kontrol cihazında (olmadan $translateProvider
) almanın bir yolu var mı ?
$translate
Serviste hiçbir şey bulunamadı .
Mevcut kullanılan dili bir kontrol cihazında (olmadan $translateProvider
) almanın bir yolu var mı ?
$translate
Serviste hiçbir şey bulunamadı .
Yanıtlar:
$translate.use()
alıcı ve ayarlayıcıdır.
Doküman bağlantılarında bulunan bu demoya bakın:
$translate.use()
gidilecek yol. Zaman uyumsuz bir yükleyici çalıştırıldığında, ayrıca, kullanımını isteyebilirsin $translate.proposedLanguage()
anda yüklü ancak dilin dil anahtarını döndürür değil henüz yüklü tamamladı.
$translate.use()
ayarlanmadı. $translate.proposedLanguage()
bana doğru dili verdi.
$translate.proposedLanguage()
app.config içinde kullanmak mümkün mü ? Yalnızca $ translateProvider'a sahibim ve bu işlevin sonucunu daha sonra denetleyicide değil, IN config'de bulmam gerekiyor. Bir fikrin var mı Çok teşekkürler
proposedLanguage()
Angular-translate-loader-static-dosyalarını kullanırken, varsayılan dili kullanırken $translate.proposedLanguage()
geri döndüğünü fark ettim.undefined
$translate.use()
daima önerilen dil döndü.
Bu yüzden şunu kullanarak düzelttim:
var currentLang = $translate.proposedLanguage() || $translate.use();
$translate
Servis adlı bir yöntem vardır preferredLanguage()
İstediğin bu dönüş. Bu işlevin dönüşü, 'en' gibi dilin dizgesidir.
İşte sana bir örnek yazdım:
angular.module('traslateApp').controller('myController', ['$scope', '$translate', function($scope,$translate){
$scope.changeLanguage = function (langKey) {
$translate.use(langKey);
};
$scope.getCurrentLanguage = function () {
$translate.preferredLanguage();
};
}])
Bence bu dili belirlemenin daha iyi bir yolu -
$window.navigator.language || $window.navigator.userLanguage
Belki ilişkili değildir, ancak yararlı olabilir. Angular2 + 'da mevcut dile erişimin yolu
...
import { TranslateService } from '@ngx-translate/core';
export class MyComponent implements OnInit {
constructor(private translate: TranslateService) {}
ngOnInit() {
translate.use('it');
const currentLang = this.translate.currentLang;
}
}
{ "LANG_CODE": "en" }
ve içindekitranslate
filtreyi kullanmaktır . her zamanki gibi görüntüleyin, örneğin:<video controls poster="img/poster-{{ 'LANG_CODE' | translate }}.png"> […] </video>