Bläddra i källkod

Merge remote-tracking branch 'origin/pr/1086'

* origin/pr/1086:
  Enable URL lang parameter for switching languages (fixes #1080)
Jakob Borg 11 år sedan
förälder
incheckning
e1be73232d

+ 1 - 0
.gitignore

@@ -12,3 +12,4 @@ bin
 perfstats*.csv
 coverage.xml
 !gui/scripts/syncthing
+.DS_Store

+ 4 - 3
gui/scripts/syncthing/core/controllers/syncthingController.js

@@ -583,7 +583,7 @@ angular.module('syncthing.core')
                 $scope.config.GUI = angular.copy($scope.tmpGUI);
 
                 ['ListenAddress', 'GlobalAnnServers'].forEach(function (key) {
-                   $scope.config.Options[key] = $scope.config.Options[key + "Str"].split(/[ ,]+/).map(function (x) {
+                    $scope.config.Options[key] = $scope.config.Options[key + "Str"].split(/[ ,]+/).map(function (x) {
                         return x.trim();
                     });
                 });
@@ -918,11 +918,12 @@ angular.module('syncthing.core')
                 var devices = $scope.folders[folderID].Devices
                 for (var i = 0; i < devices.length; i++) {
                     if (devices[i].DeviceID == deviceCfg.DeviceID) {
-                        folders.push(folderID)
-                        break
+                        folders.push(folderID);
+                        break;
                     }
                 }
             };
+
             folders.sort();
             return folders;
         };

+ 42 - 37
gui/scripts/syncthing/core/services/localeService.js

@@ -12,7 +12,7 @@ angular.module('syncthing.core')
             _availableLocales = locales;
         };
 
-        this.$get = ['$http', '$translate', function ($http, $translate) {
+        this.$get = ['$http', '$translate', '$location', function ($http, $translate, $location) {
 
             /**
              * Requests the server in order to get the browser's requested locale strings.
@@ -26,45 +26,50 @@ angular.module('syncthing.core')
             }
 
             function autoConfigLocale() {
-
-                return readBrowserLocales().success(function (langs) {
-                    // Find the first language in the list provided by the user's browser
-                    // that is a prefix of a language we have available. That is, "en"
-                    // sent by the browser will match "en" or "en-US", while "zh-TW" will
-                    // match only "zh-TW" and not "zh-CN".
-
-                    var i,
-                        lang,
-                        matching;
-
-                    for (i = 0; i < langs.length; i++) {
-                        lang = langs[i];
-
-                        if (lang.length < 2) {
-                            continue;
-                        }
-
-                        matching = _availableLocales.filter(function (possibleLang) {
-                            // The langs returned by the /rest/langs call will be in lower
-                            // case. We compare to the lowercase version of the language
-                            // code we have as well.
-                            possibleLang = possibleLang.toLowerCase();
-                            if (possibleLang.length > lang.length) {
-                                return possibleLang.indexOf(lang) === 0;
-                            } else {
-                                return lang.indexOf(possibleLang) === 0;
+                var params = $location.search();
+
+                if(params.lang) {
+                    $translate.use(params.lang);
+                } else {
+                    readBrowserLocales().success(function (langs) {
+                        // Find the first language in the list provided by the user's browser
+                        // that is a prefix of a language we have available. That is, "en"
+                        // sent by the browser will match "en" or "en-US", while "zh-TW" will
+                        // match only "zh-TW" and not "zh-CN".
+
+                        var i,
+                            lang,
+                            matching,
+                            locale = _defaultLocale;
+
+                        for (i = 0; i < langs.length; i++) {
+                            lang = langs[i];
+
+                            if (lang.length < 2) {
+                                continue;
                             }
-                        });
 
-                        if (matching.length >= 1) {
-                            $translate.use(matching[0]);
-                            return;
+                            matching = _availableLocales.filter(function (possibleLang) {
+                                // The langs returned by the /rest/langs call will be in lower
+                                // case. We compare to the lowercase version of the language
+                                // code we have as well.
+                                possibleLang = possibleLang.toLowerCase();
+                                if (possibleLang.length > lang.length) {
+                                    return possibleLang.indexOf(lang) === 0;
+                                } else {
+                                    return lang.indexOf(possibleLang) === 0;
+                                }
+                            });
+
+                            if (matching.length >= 1) {
+                                locale = matching[0];
+                                break;
+                            }
                         }
-                    }
-                    // Fallback if nothing matched
-                    $translate.use(_defaultLocale);
-                });
-
+                        // Fallback if nothing matched
+                        $translate.use(locale);
+                    });
+                }
             }
 
             function useLocale(language) {

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
internal/auto/gui.files.go


Vissa filer visades inte eftersom för många filer har ändrats