Apakah ada cara untuk mendapatkan bahasa yang digunakan saat ini di pengontrol (tanpa $translateProvider)?
Tidak dapat menemukan apa pun dalam $translatelayanan ini.
Apakah ada cara untuk mendapatkan bahasa yang digunakan saat ini di pengontrol (tanpa $translateProvider)?
Tidak dapat menemukan apa pun dalam $translatelayanan ini.
Jawaban:
$translate.use() adalah pengambil dan penyetel.
Lihat demo ini ditemukan di tautan dokumen:
$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.
$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 banyak
proposedLanguage()
Saat menggunakan angular-translate-loader-static-files, saya perhatikan bahwa itu $translate.proposedLanguage()kembali undefinedsaat menggunakan bahasa default sementara $translate.use()selalu mengembalikan bahasa yang diusulkan.
Oleh karena itu saya memperbaikinya dengan menggunakan:
var currentLang = $translate.proposedLanguage() || $translate.use();
The $translatelayanan memiliki metode yang disebut preferredLanguage()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();
};
}])
translate.currentLang digunakan untuk memeriksa bahasa yang dipilih saat ini di i18n
Saya pikir ini adalah cara yang lebih baik untuk menentukan bahasa -
$window.navigator.language || $window.navigator.userLanguage
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;
}
}
{ "LANG_CODE": "en" }dan menggunakantranslatefilter di lihat seperti biasa, seperti:<video controls poster="img/poster-{{ 'LANG_CODE' | translate }}.png"> […] </video>