My English translation of the i18n json file is assets/i18n/en.jsonas follows (this is a translation into English, I have several other files for other languages in the same directory):
{
"project": {
"SPONSORINFO": {
"MAIN" : "Select the Sponsor Name",
"SPONSORLIST": [
{"spons" :"SponsorName 1" },
{"spons" :"SponsorName 2" }
]
}
}
}
and here is my html view:
<div class="form-group" >
<label for="form-field-select-1" translate="project.SPONSORINFO.MAIN">
</label>
<select class="form-control" ng-model="myModel.sponsors">
<option ng-repeat="s in spons.SPONSORLIST" value="{{s.spons}}">{{s.spons}}</option>
</select>
</div>
translate="project.SPONSORINFO.MAIN" in shortcut fairly displays the value "Choose sponsor name . " No problem on this side.
Question:
How to ng-repeat items in a SPONSORLIST drop-down menu?
what I have now does not show anything, as you can guess.
edit:
I have a global configuration in my main.js as shown below:
app.config(['$translateProvider',
function ($translateProvider) {
$translateProvider.useStaticFilesLoader({
prefix: 'assets/i18n/',
suffix: '.json'
});
$translateProvider.preferredLanguage('en');
$translateProvider.useLocalStorage();
}]);
but I have no links in my view controller regarding translation.
change 2:
, mainCtrl.js, , index.html:
app.controller('AppCtrl', ['$rootScope', '$scope', '$state', '$translate',
function ($rootScope, $scope, $state, $translate) {
$scope.language = {
listIsOpen: false,
available: {
'en': 'English',
'de_DE': 'Deutsch'
},
init: function () {
var proposedLanguage = $translate.proposedLanguage() || $translate.use();
var preferredLanguage = $translate.preferredLanguage();
$scope.language.selected = $scope.language.available[(proposedLanguage || preferredLanguage)];
},
set: function (localeId, ev) {
$translate.use(localeId);
$scope.language.selected = $scope.language.available[localeId];
$scope.language.listIsOpen = !$scope.language.listIsOpen;
}
};
$scope.language.init();
update 2 ( , ):
, en.json, .
$http.get('assets/i18n/en.json').success(function(data) {
$scope.projectJSON = data;
});
ng-repeat:
<option ng-repeat="s in projectJSON.project.SPONSORINFO.SPONSORLIST" value="{{s.spons}}">{{s.spons | translate}}</option>
, , . , :
$scope.language.selected = function (localeId) {
$translate.use(localeId);
$http.get('assets/i18n/'+localeId+'.json').success(function(data) {
$scope.projectJSON= data;
});
};
():
var lang = $translate.use();
$http.get('assets/i18n/'+lang+'.json').success(function(data) {
$scope.projectJSON= data;
});
:
, , , mainCtrl.js , translate="project.SPONSORINFO.MAIN", label , . , $http, , , , .
? mainCtrl.js, label?