Translation, language detection

This commit is contained in:
Jakob Borg
2014-07-26 22:30:29 +02:00
parent 49cb931572
commit 3b65a58f59
10 changed files with 633 additions and 36 deletions

View File

@@ -9,6 +9,7 @@
var syncthing = angular.module('syncthing', ['pascalprecht.translate']);
var urlbase = 'rest';
var validLangs = ['de', 'en', 'es', 'fr', 'pt', 'sv'];
syncthing.config(function ($httpProvider, $translateProvider) {
$httpProvider.defaults.xsrfHeaderName = 'X-CSRF-Token';
@@ -18,7 +19,6 @@ syncthing.config(function ($httpProvider, $translateProvider) {
prefix: 'lang-',
suffix: '.json'
});
$translateProvider.preferredLanguage('en');
});
syncthing.controller('SyncthingCtrl', function ($scope, $http, $translate, $location) {
@@ -40,6 +40,17 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http, $translate, $loca
$scope.reportPreview = false;
$scope.upgradeInfo = {};
$http.get(urlbase+"/lang").success(function (langs) {
var lang;
for (var i = 0; i < langs.length; i++) {
lang = langs[i];
if (validLangs.indexOf(lang) >= 0) {
$translate.use(lang);
break;
}
}
})
$scope.$on("$locationChangeSuccess", function () {
var lang = $location.search().lang;
if (lang) {
@@ -134,21 +145,14 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http, $translate, $loca
$scope.repoStatus = function (repo) {
if (typeof $scope.model[repo] === 'undefined') {
return 'Unknown';
return 'unknown';
}
if ($scope.model[repo].invalid !== '') {
return 'Stopped';
return 'stopped';
}
var state = '' + $scope.model[repo].state;
state = state[0].toUpperCase() + state.substr(1);
if (state == "Syncing" || state == "Idle") {
state += " (" + $scope.syncPercentage(repo) + "%)";
}
return state;
return '' + $scope.model[repo].state;
};
$scope.repoClass = function (repo) {
@@ -182,19 +186,6 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http, $translate, $loca
return Math.floor(pct);
};
$scope.nodeStatus = function (nodeCfg) {
var conn = $scope.connections[nodeCfg.NodeID];
if (conn) {
if (conn.Completion === 100) {
return 'Up to Date';
} else {
return 'Syncing (' + conn.Completion + '%)';
}
}
return 'Disconnected';
};
$scope.nodeIcon = function (nodeCfg) {
var conn = $scope.connections[nodeCfg.NodeID];
if (conn) {