Có cách nào để lấy ngôn ngữ được sử dụng hiện tại trong bộ điều khiển (không có $translateProvider
) không?
Không thể tìm thấy bất cứ điều gì trong $translate
dịch vụ.
Có cách nào để lấy ngôn ngữ được sử dụng hiện tại trong bộ điều khiển (không có $translateProvider
) không?
Không thể tìm thấy bất cứ điều gì trong $translate
dịch vụ.
Câu trả lời:
$translate.use()
là một getter và setter.
Xem bản trình diễn này được tìm thấy trong liên kết của tài liệu:
$translate.use()
là con đường để đi. Ngoài ra, khi trình tải không đồng bộ được thực thi, bạn có thể muốn sử dụng $translate.proposedLanguage()
nó trả về khóa ngôn ngữ của ngôn ngữ hiện đang được tải nhưng chưa được tải xong.
$translate.use()
chưa được đặt. $translate.proposedLanguage()
đã cho tôi đúng lang.
$translate.proposedLanguage()
trong app.config không? tôi chỉ có $ translateProvider và tôi cần tìm kết quả của chức năng IN cấu hình này, không phải sau này trong bộ điều khiển. Bạn có một ý tưởng ? Thanks a lot
proposedLanguage()
Khi sử dụng angle-translate-loader-static-files, tôi nhận thấy rằng nó được $translate.proposedLanguage()
trả về undefined
khi sử dụng ngôn ngữ mặc định trong khi $translate.use()
luôn trả về ngôn ngữ được đề xuất.
Do đó, tôi đã sửa nó bằng cách sử dụng:
var currentLang = $translate.proposedLanguage() || $translate.use();
Các $translate
dịch vụ có một phương pháp gọi preferredLanguage()
là trở lại những gì bạn muốn. Giá trị trả về của hàm này là chuỗi ngôn ngữ, như 'en'.
Ở đây tôi đã viết cho bạn một ví dụ:
angular.module('traslateApp').controller('myController', ['$scope', '$translate', function($scope,$translate){
$scope.changeLanguage = function (langKey) {
$translate.use(langKey);
};
$scope.getCurrentLanguage = function () {
$translate.preferredLanguage();
};
}])
Tôi nghĩ đây là cách tốt hơn để xác định ngôn ngữ -
$window.navigator.language || $window.navigator.userLanguage
Có thể không liên quan nhưng có thể hữu ích. Trong angle2 +, cách truy cập vào ngôn ngữ hiện tại là
...
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" }
và sử dụngtranslate
bộ lọc trong xem như bình thường, như:<video controls poster="img/poster-{{ 'LANG_CODE' | translate }}.png"> […] </video>