Внутри моего контроллера angularjs Я инъекционные услуги по переводулокализуют строковые свойства внутри angularjs контроллера
(function() {
"use strict";
app.controller('homeController', ['$scope', translationService) {
//Run translation if selected language changes
$scope.translate = function() {
translationService.getTranslation($scope, $scope.selectedLanguage);
};
$scope.translate();
}
и вид изнутри Я перевод текст как
{{ translation.HelloWorld }}
где HelloWorld является строкой в языке JSON файл.
Поскольку я в состоянии обнаружить выбранный язык с помощью $scope.selectedLanguage
который будет возвращать строку выбранного языка eng
, rus
, fra
как я могу перевести текст вводится в свойства объекта внутри контроллера, например
var myObj = { Id: 1, Name: "Default", Description: "Default" };
Как может Я локализую свойство Name и Description?
Update:
app.service('translationService', function ($resource) {
this.getTranslation = function ($scope, language) {
var languageFilePath = '../app/locStrings/translation_' + language + '.json';
$resource(languageFilePath).get(function (data) {
$scope.translation = data;
});
};
});
где каждый файл имеет префикс translation_
как
translation_eng.json
или translation_fra.json
с содержанием
{
"HELLO_WORLD": "Hello world en",
}
Я назначаю это myObj.Name для внутреннего контроллера $ scope.myName, связанного с представлением. Как я могу перевести это свойство в этом случае? или как вы это сделаете? – user1765862
Я думаю, что вы используете первый метод. Вы отправляете все переводы только в одном файле. Просто удерживайте объект переводов в $ rootScope.translations, тогда вы можете использовать {{translations [myName] [selectedLanguage]}} –
Можете ли вы показать свою схему файла перевода? –