Apakah ada cara untuk mendapatkan bahasa yang digunakan saat ini di pengontrol (tanpa $translateProvider
)?
Tidak dapat menemukan apa pun dalam $translate
layanan ini.
angularjs
angular-translate
jviotti
sumber
sumber
{ "LANG_CODE": "en" }
dan menggunakantranslate
filter di lihat seperti biasa, seperti:<video controls poster="img/poster-{{ 'LANG_CODE' | translate }}.png"> […] </video>
Jawaban:
$translate.use()
adalah pengambil dan penyetel.Lihat demo ini ditemukan di tautan dokumen:
http://jsfiddle.net/PascalPrecht/eUGWJ/7/
sumber
$translate.use()
adalah cara untuk pergi. Selain itu, saat pemuat asinkron dijalankan, Anda mungkin ingin menggunakan$translate.proposedLanguage()
yang mengembalikan kunci bahasa dari bahasa yang saat ini dimuat tetapi belum selesai dimuat.sumber
$translate.use()
tidak disetel.$translate.proposedLanguage()
beri saya bahasa yang benar.$translate.proposedLanguage()
di app.config? saya hanya memiliki $ translateProvider dan saya perlu menemukan hasil dari fungsi ini di konfigurasi, bukan nanti di kontroler. Apakah kamu punya ide Terima kasih banyakproposedLanguage()
Saat menggunakan angular-translate-loader-static-files, saya perhatikan bahwa itu
$translate.proposedLanguage()
kembaliundefined
saat menggunakan bahasa default sementara$translate.use()
selalu mengembalikan bahasa yang diusulkan.Oleh karena itu saya memperbaikinya dengan menggunakan:
var currentLang = $translate.proposedLanguage() || $translate.use();
sumber
$translate.use()
tampaknya tidak berfungsi pada pemuatan awal aplikasi, untuk mendapatkan bahasa yang terakhir dipilih dari penyimpanan:$translate.storage().get( $translate.storageKey() )
atau hanya$translate.proposedLanguage();
sumber
The
$translate
layanan memiliki metode yang disebutpreferredLanguage()
yang kembali apa yang Anda inginkan. Kembalinya fungsi ini adalah string bahasa, seperti 'en'.Di sini saya menulis Anda sebuah contoh:
angular.module('traslateApp').controller('myController', ['$scope', '$translate', function($scope,$translate){ $scope.changeLanguage = function (langKey) { $translate.use(langKey); }; $scope.getCurrentLanguage = function () { $translate.preferredLanguage(); }; }])
sumber
translate.currentLang digunakan untuk memeriksa bahasa yang dipilih saat ini di i18n
sumber
Saya pikir ini adalah cara yang lebih baik untuk menentukan bahasa -
$window.navigator.language || $window.navigator.userLanguage
sumber
Mungkin tidak ada hubungannya tapi bisa bermanfaat. Di angular2 + cara untuk mengakses bahasa saat ini adalah
... import { TranslateService } from '@ngx-translate/core'; export class MyComponent implements OnInit { constructor(private translate: TranslateService) {} ngOnInit() { translate.use('it'); const currentLang = this.translate.currentLang; } }
sumber