1
0
Fork 0
mirror of https://github.com/betaflight/betaflight-configurator.git synced 2025-07-15 12:25:15 +03:00

Use i18next as i18n framework

This commit is contained in:
Miguel Angel Mulero Martinez 2018-01-25 13:45:55 +01:00
parent e2a629a620
commit 0a71f1e559
39 changed files with 607 additions and 408 deletions

352
package-lock.json generated
View file

@ -1883,13 +1883,15 @@
"dependencies": { "dependencies": {
"abbrev": { "abbrev": {
"version": "1.1.0", "version": "1.1.0",
"bundled": true, "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz",
"integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"ajv": { "ajv": {
"version": "4.11.8", "version": "4.11.8",
"bundled": true, "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
"integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=",
"dev": true, "dev": true,
"optional": true, "optional": true,
"requires": { "requires": {
@ -1899,18 +1901,21 @@
}, },
"ansi-regex": { "ansi-regex": {
"version": "2.1.1", "version": "2.1.1",
"bundled": true, "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
"dev": true "dev": true
}, },
"aproba": { "aproba": {
"version": "1.1.1", "version": "1.1.1",
"bundled": true, "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz",
"integrity": "sha1-ldNgDwdxCqDpKYxyatXs8urLq6s=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"are-we-there-yet": { "are-we-there-yet": {
"version": "1.1.4", "version": "1.1.4",
"bundled": true, "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz",
"integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=",
"dev": true, "dev": true,
"optional": true, "optional": true,
"requires": { "requires": {
@ -1920,42 +1925,49 @@
}, },
"asn1": { "asn1": {
"version": "0.2.3", "version": "0.2.3",
"bundled": true, "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
"integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"assert-plus": { "assert-plus": {
"version": "0.2.0", "version": "0.2.0",
"bundled": true, "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
"integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"asynckit": { "asynckit": {
"version": "0.4.0", "version": "0.4.0",
"bundled": true, "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"aws-sign2": { "aws-sign2": {
"version": "0.6.0", "version": "0.6.0",
"bundled": true, "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
"integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"aws4": { "aws4": {
"version": "1.6.0", "version": "1.6.0",
"bundled": true, "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
"integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"balanced-match": { "balanced-match": {
"version": "0.4.2", "version": "0.4.2",
"bundled": true, "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
"integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=",
"dev": true "dev": true
}, },
"bcrypt-pbkdf": { "bcrypt-pbkdf": {
"version": "1.0.1", "version": "1.0.1",
"bundled": true, "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
"integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
"dev": true, "dev": true,
"optional": true, "optional": true,
"requires": { "requires": {
@ -1964,7 +1976,8 @@
}, },
"block-stream": { "block-stream": {
"version": "0.0.9", "version": "0.0.9",
"bundled": true, "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
"integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
"dev": true, "dev": true,
"requires": { "requires": {
"inherits": "2.0.3" "inherits": "2.0.3"
@ -1972,7 +1985,8 @@
}, },
"boom": { "boom": {
"version": "2.10.1", "version": "2.10.1",
"bundled": true, "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
"integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
"dev": true, "dev": true,
"requires": { "requires": {
"hoek": "2.16.3" "hoek": "2.16.3"
@ -1980,7 +1994,8 @@
}, },
"brace-expansion": { "brace-expansion": {
"version": "1.1.7", "version": "1.1.7",
"bundled": true, "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz",
"integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=",
"dev": true, "dev": true,
"requires": { "requires": {
"balanced-match": "0.4.2", "balanced-match": "0.4.2",
@ -1989,29 +2004,34 @@
}, },
"buffer-shims": { "buffer-shims": {
"version": "1.0.0", "version": "1.0.0",
"bundled": true, "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz",
"integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=",
"dev": true "dev": true
}, },
"caseless": { "caseless": {
"version": "0.12.0", "version": "0.12.0",
"bundled": true, "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"co": { "co": {
"version": "4.6.0", "version": "4.6.0",
"bundled": true, "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
"integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"code-point-at": { "code-point-at": {
"version": "1.1.0", "version": "1.1.0",
"bundled": true, "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
"integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
"dev": true "dev": true
}, },
"combined-stream": { "combined-stream": {
"version": "1.0.5", "version": "1.0.5",
"bundled": true, "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
"integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=",
"dev": true, "dev": true,
"requires": { "requires": {
"delayed-stream": "1.0.0" "delayed-stream": "1.0.0"
@ -2019,22 +2039,26 @@
}, },
"concat-map": { "concat-map": {
"version": "0.0.1", "version": "0.0.1",
"bundled": true, "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
"dev": true "dev": true
}, },
"console-control-strings": { "console-control-strings": {
"version": "1.1.0", "version": "1.1.0",
"bundled": true, "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
"integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
"dev": true "dev": true
}, },
"core-util-is": { "core-util-is": {
"version": "1.0.2", "version": "1.0.2",
"bundled": true, "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
"dev": true "dev": true
}, },
"cryptiles": { "cryptiles": {
"version": "2.0.5", "version": "2.0.5",
"bundled": true, "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
"integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
"dev": true, "dev": true,
"requires": { "requires": {
"boom": "2.10.1" "boom": "2.10.1"
@ -2042,7 +2066,8 @@
}, },
"dashdash": { "dashdash": {
"version": "1.14.1", "version": "1.14.1",
"bundled": true, "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
"integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
"dev": true, "dev": true,
"optional": true, "optional": true,
"requires": { "requires": {
@ -2051,7 +2076,8 @@
"dependencies": { "dependencies": {
"assert-plus": { "assert-plus": {
"version": "1.0.0", "version": "1.0.0",
"bundled": true, "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
"dev": true, "dev": true,
"optional": true "optional": true
} }
@ -2059,7 +2085,8 @@
}, },
"debug": { "debug": {
"version": "2.6.8", "version": "2.6.8",
"bundled": true, "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz",
"integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=",
"dev": true, "dev": true,
"optional": true, "optional": true,
"requires": { "requires": {
@ -2068,30 +2095,35 @@
}, },
"deep-extend": { "deep-extend": {
"version": "0.4.2", "version": "0.4.2",
"bundled": true, "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz",
"integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"delayed-stream": { "delayed-stream": {
"version": "1.0.0", "version": "1.0.0",
"bundled": true, "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
"dev": true "dev": true
}, },
"delegates": { "delegates": {
"version": "1.0.0", "version": "1.0.0",
"bundled": true, "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
"integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"detect-libc": { "detect-libc": {
"version": "1.0.2", "version": "1.0.2",
"bundled": true, "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.2.tgz",
"integrity": "sha1-ca1dIEvxempsqPRQxhRUBm70YeE=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"ecc-jsbn": { "ecc-jsbn": {
"version": "0.1.1", "version": "0.1.1",
"bundled": true, "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
"integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
"dev": true, "dev": true,
"optional": true, "optional": true,
"requires": { "requires": {
@ -2100,24 +2132,28 @@
}, },
"extend": { "extend": {
"version": "3.0.1", "version": "3.0.1",
"bundled": true, "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
"integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"extsprintf": { "extsprintf": {
"version": "1.0.2", "version": "1.0.2",
"bundled": true, "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz",
"integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=",
"dev": true "dev": true
}, },
"forever-agent": { "forever-agent": {
"version": "0.6.1", "version": "0.6.1",
"bundled": true, "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
"integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"form-data": { "form-data": {
"version": "2.1.4", "version": "2.1.4",
"bundled": true, "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz",
"integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=",
"dev": true, "dev": true,
"optional": true, "optional": true,
"requires": { "requires": {
@ -2128,12 +2164,14 @@
}, },
"fs.realpath": { "fs.realpath": {
"version": "1.0.0", "version": "1.0.0",
"bundled": true, "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
"dev": true "dev": true
}, },
"fstream": { "fstream": {
"version": "1.0.11", "version": "1.0.11",
"bundled": true, "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
"integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=",
"dev": true, "dev": true,
"requires": { "requires": {
"graceful-fs": "4.1.11", "graceful-fs": "4.1.11",
@ -2144,7 +2182,8 @@
}, },
"fstream-ignore": { "fstream-ignore": {
"version": "1.0.5", "version": "1.0.5",
"bundled": true, "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz",
"integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=",
"dev": true, "dev": true,
"optional": true, "optional": true,
"requires": { "requires": {
@ -2155,7 +2194,8 @@
}, },
"gauge": { "gauge": {
"version": "2.7.4", "version": "2.7.4",
"bundled": true, "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
"integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
"dev": true, "dev": true,
"optional": true, "optional": true,
"requires": { "requires": {
@ -2171,7 +2211,8 @@
}, },
"getpass": { "getpass": {
"version": "0.1.7", "version": "0.1.7",
"bundled": true, "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
"integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
"dev": true, "dev": true,
"optional": true, "optional": true,
"requires": { "requires": {
@ -2180,7 +2221,8 @@
"dependencies": { "dependencies": {
"assert-plus": { "assert-plus": {
"version": "1.0.0", "version": "1.0.0",
"bundled": true, "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
"dev": true, "dev": true,
"optional": true "optional": true
} }
@ -2188,7 +2230,8 @@
}, },
"glob": { "glob": {
"version": "7.1.2", "version": "7.1.2",
"bundled": true, "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
"integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"fs.realpath": "1.0.0", "fs.realpath": "1.0.0",
@ -2201,18 +2244,21 @@
}, },
"graceful-fs": { "graceful-fs": {
"version": "4.1.11", "version": "4.1.11",
"bundled": true, "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
"dev": true "dev": true
}, },
"har-schema": { "har-schema": {
"version": "1.0.5", "version": "1.0.5",
"bundled": true, "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz",
"integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"har-validator": { "har-validator": {
"version": "4.2.1", "version": "4.2.1",
"bundled": true, "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz",
"integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=",
"dev": true, "dev": true,
"optional": true, "optional": true,
"requires": { "requires": {
@ -2222,13 +2268,15 @@
}, },
"has-unicode": { "has-unicode": {
"version": "2.0.1", "version": "2.0.1",
"bundled": true, "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
"integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"hawk": { "hawk": {
"version": "3.1.3", "version": "3.1.3",
"bundled": true, "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
"integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
"dev": true, "dev": true,
"requires": { "requires": {
"boom": "2.10.1", "boom": "2.10.1",
@ -2239,12 +2287,14 @@
}, },
"hoek": { "hoek": {
"version": "2.16.3", "version": "2.16.3",
"bundled": true, "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
"integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=",
"dev": true "dev": true
}, },
"http-signature": { "http-signature": {
"version": "1.1.1", "version": "1.1.1",
"bundled": true, "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
"integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=",
"dev": true, "dev": true,
"optional": true, "optional": true,
"requires": { "requires": {
@ -2255,7 +2305,8 @@
}, },
"inflight": { "inflight": {
"version": "1.0.6", "version": "1.0.6",
"bundled": true, "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"dev": true, "dev": true,
"requires": { "requires": {
"once": "1.4.0", "once": "1.4.0",
@ -2264,18 +2315,21 @@
}, },
"inherits": { "inherits": {
"version": "2.0.3", "version": "2.0.3",
"bundled": true, "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
"dev": true "dev": true
}, },
"ini": { "ini": {
"version": "1.3.4", "version": "1.3.4",
"bundled": true, "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz",
"integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"is-fullwidth-code-point": { "is-fullwidth-code-point": {
"version": "1.0.0", "version": "1.0.0",
"bundled": true, "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
"integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
"dev": true, "dev": true,
"requires": { "requires": {
"number-is-nan": "1.0.1" "number-is-nan": "1.0.1"
@ -2283,24 +2337,28 @@
}, },
"is-typedarray": { "is-typedarray": {
"version": "1.0.0", "version": "1.0.0",
"bundled": true, "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
"integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"isarray": { "isarray": {
"version": "1.0.0", "version": "1.0.0",
"bundled": true, "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
"dev": true "dev": true
}, },
"isstream": { "isstream": {
"version": "0.1.2", "version": "0.1.2",
"bundled": true, "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
"integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"jodid25519": { "jodid25519": {
"version": "1.0.2", "version": "1.0.2",
"bundled": true, "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz",
"integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=",
"dev": true, "dev": true,
"optional": true, "optional": true,
"requires": { "requires": {
@ -2309,19 +2367,22 @@
}, },
"jsbn": { "jsbn": {
"version": "0.1.1", "version": "0.1.1",
"bundled": true, "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
"integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"json-schema": { "json-schema": {
"version": "0.2.3", "version": "0.2.3",
"bundled": true, "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
"integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"json-stable-stringify": { "json-stable-stringify": {
"version": "1.0.1", "version": "1.0.1",
"bundled": true, "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
"integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
"dev": true, "dev": true,
"optional": true, "optional": true,
"requires": { "requires": {
@ -2330,19 +2391,22 @@
}, },
"json-stringify-safe": { "json-stringify-safe": {
"version": "5.0.1", "version": "5.0.1",
"bundled": true, "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"jsonify": { "jsonify": {
"version": "0.0.0", "version": "0.0.0",
"bundled": true, "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
"integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"jsprim": { "jsprim": {
"version": "1.4.0", "version": "1.4.0",
"bundled": true, "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz",
"integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=",
"dev": true, "dev": true,
"optional": true, "optional": true,
"requires": { "requires": {
@ -2354,7 +2418,8 @@
"dependencies": { "dependencies": {
"assert-plus": { "assert-plus": {
"version": "1.0.0", "version": "1.0.0",
"bundled": true, "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
"dev": true, "dev": true,
"optional": true "optional": true
} }
@ -2362,12 +2427,14 @@
}, },
"mime-db": { "mime-db": {
"version": "1.27.0", "version": "1.27.0",
"bundled": true, "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz",
"integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=",
"dev": true "dev": true
}, },
"mime-types": { "mime-types": {
"version": "2.1.15", "version": "2.1.15",
"bundled": true, "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz",
"integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=",
"dev": true, "dev": true,
"requires": { "requires": {
"mime-db": "1.27.0" "mime-db": "1.27.0"
@ -2375,7 +2442,8 @@
}, },
"minimatch": { "minimatch": {
"version": "3.0.4", "version": "3.0.4",
"bundled": true, "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"dev": true, "dev": true,
"requires": { "requires": {
"brace-expansion": "1.1.7" "brace-expansion": "1.1.7"
@ -2383,12 +2451,14 @@
}, },
"minimist": { "minimist": {
"version": "0.0.8", "version": "0.0.8",
"bundled": true, "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
"dev": true "dev": true
}, },
"mkdirp": { "mkdirp": {
"version": "0.5.1", "version": "0.5.1",
"bundled": true, "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
"dev": true, "dev": true,
"requires": { "requires": {
"minimist": "0.0.8" "minimist": "0.0.8"
@ -2396,13 +2466,15 @@
}, },
"ms": { "ms": {
"version": "2.0.0", "version": "2.0.0",
"bundled": true, "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"node-pre-gyp": { "node-pre-gyp": {
"version": "0.6.39", "version": "0.6.39",
"bundled": true, "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz",
"integrity": "sha512-OsJV74qxnvz/AMGgcfZoDaeDXKD3oY3QVIbBmwszTFkRisTSXbMQyn4UWzUMOtA5SVhrBZOTp0wcoSBgfMfMmQ==",
"dev": true, "dev": true,
"optional": true, "optional": true,
"requires": { "requires": {
@ -2421,7 +2493,8 @@
}, },
"nopt": { "nopt": {
"version": "4.0.1", "version": "4.0.1",
"bundled": true, "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz",
"integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=",
"dev": true, "dev": true,
"optional": true, "optional": true,
"requires": { "requires": {
@ -2431,7 +2504,8 @@
}, },
"npmlog": { "npmlog": {
"version": "4.1.0", "version": "4.1.0",
"bundled": true, "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.0.tgz",
"integrity": "sha512-ocolIkZYZt8UveuiDS0yAkkIjid1o7lPG8cYm05yNYzBn8ykQtaiPMEGp8fY9tKdDgm8okpdKzkvu1y9hUYugA==",
"dev": true, "dev": true,
"optional": true, "optional": true,
"requires": { "requires": {
@ -2443,24 +2517,28 @@
}, },
"number-is-nan": { "number-is-nan": {
"version": "1.0.1", "version": "1.0.1",
"bundled": true, "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
"integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
"dev": true "dev": true
}, },
"oauth-sign": { "oauth-sign": {
"version": "0.8.2", "version": "0.8.2",
"bundled": true, "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
"integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"object-assign": { "object-assign": {
"version": "4.1.1", "version": "4.1.1",
"bundled": true, "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"once": { "once": {
"version": "1.4.0", "version": "1.4.0",
"bundled": true, "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"dev": true, "dev": true,
"requires": { "requires": {
"wrappy": "1.0.2" "wrappy": "1.0.2"
@ -2468,19 +2546,22 @@
}, },
"os-homedir": { "os-homedir": {
"version": "1.0.2", "version": "1.0.2",
"bundled": true, "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
"integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"os-tmpdir": { "os-tmpdir": {
"version": "1.0.2", "version": "1.0.2",
"bundled": true, "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"osenv": { "osenv": {
"version": "0.1.4", "version": "0.1.4",
"bundled": true, "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz",
"integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=",
"dev": true, "dev": true,
"optional": true, "optional": true,
"requires": { "requires": {
@ -2490,35 +2571,41 @@
}, },
"path-is-absolute": { "path-is-absolute": {
"version": "1.0.1", "version": "1.0.1",
"bundled": true, "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
"dev": true "dev": true
}, },
"performance-now": { "performance-now": {
"version": "0.2.0", "version": "0.2.0",
"bundled": true, "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz",
"integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"process-nextick-args": { "process-nextick-args": {
"version": "1.0.7", "version": "1.0.7",
"bundled": true, "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
"integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
"dev": true "dev": true
}, },
"punycode": { "punycode": {
"version": "1.4.1", "version": "1.4.1",
"bundled": true, "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
"integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"qs": { "qs": {
"version": "6.4.0", "version": "6.4.0",
"bundled": true, "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz",
"integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"rc": { "rc": {
"version": "1.2.1", "version": "1.2.1",
"bundled": true, "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz",
"integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=",
"dev": true, "dev": true,
"optional": true, "optional": true,
"requires": { "requires": {
@ -2530,7 +2617,8 @@
"dependencies": { "dependencies": {
"minimist": { "minimist": {
"version": "1.2.0", "version": "1.2.0",
"bundled": true, "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
"dev": true, "dev": true,
"optional": true "optional": true
} }
@ -2538,7 +2626,8 @@
}, },
"readable-stream": { "readable-stream": {
"version": "2.2.9", "version": "2.2.9",
"bundled": true, "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz",
"integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=",
"dev": true, "dev": true,
"requires": { "requires": {
"buffer-shims": "1.0.0", "buffer-shims": "1.0.0",
@ -2552,7 +2641,8 @@
}, },
"request": { "request": {
"version": "2.81.0", "version": "2.81.0",
"bundled": true, "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz",
"integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=",
"dev": true, "dev": true,
"optional": true, "optional": true,
"requires": { "requires": {
@ -2582,7 +2672,8 @@
}, },
"rimraf": { "rimraf": {
"version": "2.6.1", "version": "2.6.1",
"bundled": true, "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz",
"integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=",
"dev": true, "dev": true,
"requires": { "requires": {
"glob": "7.1.2" "glob": "7.1.2"
@ -2590,30 +2681,35 @@
}, },
"safe-buffer": { "safe-buffer": {
"version": "5.0.1", "version": "5.0.1",
"bundled": true, "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz",
"integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=",
"dev": true "dev": true
}, },
"semver": { "semver": {
"version": "5.3.0", "version": "5.3.0",
"bundled": true, "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
"integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"set-blocking": { "set-blocking": {
"version": "2.0.0", "version": "2.0.0",
"bundled": true, "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
"integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"signal-exit": { "signal-exit": {
"version": "3.0.2", "version": "3.0.2",
"bundled": true, "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
"integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"sntp": { "sntp": {
"version": "1.0.9", "version": "1.0.9",
"bundled": true, "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
"integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
"dev": true, "dev": true,
"requires": { "requires": {
"hoek": "2.16.3" "hoek": "2.16.3"
@ -2621,7 +2717,8 @@
}, },
"sshpk": { "sshpk": {
"version": "1.13.0", "version": "1.13.0",
"bundled": true, "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.0.tgz",
"integrity": "sha1-/yo+T9BEl1Vf7Zezmg/YL6+zozw=",
"dev": true, "dev": true,
"optional": true, "optional": true,
"requires": { "requires": {
@ -2638,7 +2735,8 @@
"dependencies": { "dependencies": {
"assert-plus": { "assert-plus": {
"version": "1.0.0", "version": "1.0.0",
"bundled": true, "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
"dev": true, "dev": true,
"optional": true "optional": true
} }
@ -2646,7 +2744,8 @@
}, },
"string-width": { "string-width": {
"version": "1.0.2", "version": "1.0.2",
"bundled": true, "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
"integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
"dev": true, "dev": true,
"requires": { "requires": {
"code-point-at": "1.1.0", "code-point-at": "1.1.0",
@ -2656,7 +2755,8 @@
}, },
"string_decoder": { "string_decoder": {
"version": "1.0.1", "version": "1.0.1",
"bundled": true, "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz",
"integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=",
"dev": true, "dev": true,
"requires": { "requires": {
"safe-buffer": "5.0.1" "safe-buffer": "5.0.1"
@ -2664,13 +2764,15 @@
}, },
"stringstream": { "stringstream": {
"version": "0.0.5", "version": "0.0.5",
"bundled": true, "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
"integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"strip-ansi": { "strip-ansi": {
"version": "3.0.1", "version": "3.0.1",
"bundled": true, "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"dev": true, "dev": true,
"requires": { "requires": {
"ansi-regex": "2.1.1" "ansi-regex": "2.1.1"
@ -2678,13 +2780,15 @@
}, },
"strip-json-comments": { "strip-json-comments": {
"version": "2.0.1", "version": "2.0.1",
"bundled": true, "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
"integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"tar": { "tar": {
"version": "2.2.1", "version": "2.2.1",
"bundled": true, "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
"integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
"dev": true, "dev": true,
"requires": { "requires": {
"block-stream": "0.0.9", "block-stream": "0.0.9",
@ -2694,7 +2798,8 @@
}, },
"tar-pack": { "tar-pack": {
"version": "3.4.0", "version": "3.4.0",
"bundled": true, "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.0.tgz",
"integrity": "sha1-I74tf2cagzk3bL2wuP4/3r8xeYQ=",
"dev": true, "dev": true,
"optional": true, "optional": true,
"requires": { "requires": {
@ -2710,7 +2815,8 @@
}, },
"tough-cookie": { "tough-cookie": {
"version": "2.3.2", "version": "2.3.2",
"bundled": true, "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz",
"integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=",
"dev": true, "dev": true,
"optional": true, "optional": true,
"requires": { "requires": {
@ -2719,7 +2825,8 @@
}, },
"tunnel-agent": { "tunnel-agent": {
"version": "0.6.0", "version": "0.6.0",
"bundled": true, "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
"dev": true, "dev": true,
"optional": true, "optional": true,
"requires": { "requires": {
@ -2728,30 +2835,35 @@
}, },
"tweetnacl": { "tweetnacl": {
"version": "0.14.5", "version": "0.14.5",
"bundled": true, "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"uid-number": { "uid-number": {
"version": "0.0.6", "version": "0.0.6",
"bundled": true, "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz",
"integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"util-deprecate": { "util-deprecate": {
"version": "1.0.2", "version": "1.0.2",
"bundled": true, "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
"dev": true "dev": true
}, },
"uuid": { "uuid": {
"version": "3.0.1", "version": "3.0.1",
"bundled": true, "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz",
"integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=",
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"verror": { "verror": {
"version": "1.3.6", "version": "1.3.6",
"bundled": true, "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz",
"integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=",
"dev": true, "dev": true,
"optional": true, "optional": true,
"requires": { "requires": {
@ -2760,7 +2872,8 @@
}, },
"wide-align": { "wide-align": {
"version": "1.1.2", "version": "1.1.2",
"bundled": true, "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz",
"integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==",
"dev": true, "dev": true,
"optional": true, "optional": true,
"requires": { "requires": {
@ -2769,7 +2882,8 @@
}, },
"wrappy": { "wrappy": {
"version": "1.0.2", "version": "1.0.2",
"bundled": true, "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
"dev": true "dev": true
} }
} }
@ -3425,6 +3539,16 @@
"sshpk": "1.13.1" "sshpk": "1.13.1"
} }
}, },
"i18next": {
"version": "10.3.0",
"resolved": "https://registry.npmjs.org/i18next/-/i18next-10.3.0.tgz",
"integrity": "sha1-aGbRT2rns2KZIfeLwCjQSRTwZUw="
},
"i18next-xhr-backend": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/i18next-xhr-backend/-/i18next-xhr-backend-1.5.1.tgz",
"integrity": "sha512-9OLdC/9YxDvTFcgsH5t2BHCODHEotHCa6h7Ly0EUlUC7Y2GS09UeoHOGj3gWKQ3HCqXz8NlH4gOrK3NNc9vPuw=="
},
"imurmurhash": { "imurmurhash": {
"version": "0.1.4", "version": "0.1.4",
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",

View file

@ -33,7 +33,10 @@
}, },
"author": "The Betaflight open source project.", "author": "The Betaflight open source project.",
"license": "GPL-3.0", "license": "GPL-3.0",
"dependencies": {}, "dependencies": {
"i18next": "^10.3.0",
"i18next-xhr-backend": "^1.5.1"
},
"devDependencies": { "devDependencies": {
"del": "^3.0.0", "del": "^3.0.0",
"gulp": "~4.0.0", "gulp": "~4.0.0",

View file

@ -306,7 +306,7 @@ function configuration_restore(callback) {
if (typeof configuration.generatedBy !== 'undefined' && compareVersions(configuration.generatedBy, CONFIGURATOR.backupFileMinVersionAccepted)) { if (typeof configuration.generatedBy !== 'undefined' && compareVersions(configuration.generatedBy, CONFIGURATOR.backupFileMinVersionAccepted)) {
if (!compareVersions(configuration.generatedBy, "1.14.0") && !migrate(configuration)) { if (!compareVersions(configuration.generatedBy, "1.14.0") && !migrate(configuration)) {
GUI.log(chrome.i18n.getMessage('backupFileUnmigratable')); GUI.log(i18n.getMessage('backupFileUnmigratable'));
return; return;
} }
@ -319,7 +319,7 @@ function configuration_restore(callback) {
configuration_upload(configuration, callback); configuration_upload(configuration, callback);
} else { } else {
GUI.log(chrome.i18n.getMessage('backupFileIncompatible')); GUI.log(i18n.getMessage('backupFileIncompatible'));
} }
@ -341,7 +341,7 @@ function configuration_restore(callback) {
function migrate(configuration) { function migrate(configuration) {
var appliedMigrationsCount = 0; var appliedMigrationsCount = 0;
var migratedVersion = configuration.generatedBy; var migratedVersion = configuration.generatedBy;
GUI.log(chrome.i18n.getMessage('configMigrationFrom', [migratedVersion])); GUI.log(i18n.getMessage('configMigrationFrom', [migratedVersion]));
if (!compareVersions(migratedVersion, '0.59.1')) { if (!compareVersions(migratedVersion, '0.59.1')) {
@ -350,7 +350,7 @@ function configuration_restore(callback) {
configuration.MISC.rssi_aux_channel = undefined; configuration.MISC.rssi_aux_channel = undefined;
migratedVersion = '0.59.1'; migratedVersion = '0.59.1';
GUI.log(chrome.i18n.getMessage('configMigratedTo', [migratedVersion])); GUI.log(i18n.getMessage('configMigratedTo', [migratedVersion]));
appliedMigrationsCount++; appliedMigrationsCount++;
} }
@ -362,7 +362,7 @@ function configuration_restore(callback) {
} }
migratedVersion = '0.60.1'; migratedVersion = '0.60.1';
GUI.log(chrome.i18n.getMessage('configMigratedTo', [migratedVersion])); GUI.log(i18n.getMessage('configMigratedTo', [migratedVersion]));
appliedMigrationsCount++; appliedMigrationsCount++;
} }
@ -377,7 +377,7 @@ function configuration_restore(callback) {
} }
migratedVersion = '0.61.0'; migratedVersion = '0.61.0';
GUI.log(chrome.i18n.getMessage('configMigratedTo', [migratedVersion])); GUI.log(i18n.getMessage('configMigratedTo', [migratedVersion]));
appliedMigrationsCount++; appliedMigrationsCount++;
} }
@ -408,7 +408,7 @@ function configuration_restore(callback) {
} }
migratedVersion = '0.63.0'; migratedVersion = '0.63.0';
GUI.log(chrome.i18n.getMessage('configMigratedTo', [migratedVersion])); GUI.log(i18n.getMessage('configMigratedTo', [migratedVersion]));
appliedMigrationsCount++; appliedMigrationsCount++;
} }
@ -464,7 +464,7 @@ function configuration_restore(callback) {
ports: ports ports: ports
}; };
GUI.log(chrome.i18n.getMessage('configMigratedTo', [migratedVersion])); GUI.log(i18n.getMessage('configMigratedTo', [migratedVersion]));
appliedMigrationsCount++; appliedMigrationsCount++;
} }
@ -484,7 +484,7 @@ function configuration_restore(callback) {
}; };
} }
GUI.log(chrome.i18n.getMessage('configMigratedTo', [migratedVersion])); GUI.log(i18n.getMessage('configMigratedTo', [migratedVersion]));
appliedMigrationsCount++; appliedMigrationsCount++;
} }
@ -525,7 +525,7 @@ function configuration_restore(callback) {
migratedVersion = '0.66.0'; migratedVersion = '0.66.0';
GUI.log(chrome.i18n.getMessage('configMigratedTo', [migratedVersion])); GUI.log(i18n.getMessage('configMigratedTo', [migratedVersion]));
appliedMigrationsCount++; appliedMigrationsCount++;
} }
@ -543,7 +543,7 @@ function configuration_restore(callback) {
configuration.profiles[profileIndex].PID.controller = newPidControllerIndex; configuration.profiles[profileIndex].PID.controller = newPidControllerIndex;
} }
GUI.log(chrome.i18n.getMessage('configMigratedTo', [migratedVersion])); GUI.log(i18n.getMessage('configMigratedTo', [migratedVersion]));
appliedMigrationsCount++; appliedMigrationsCount++;
} }
@ -560,7 +560,7 @@ function configuration_restore(callback) {
}; };
} }
GUI.log(chrome.i18n.getMessage('configMigratedTo', [migratedVersion])); GUI.log(i18n.getMessage('configMigratedTo', [migratedVersion]));
appliedMigrationsCount++; appliedMigrationsCount++;
} }
@ -628,7 +628,7 @@ function configuration_restore(callback) {
} }
} }
GUI.log(chrome.i18n.getMessage('configMigratedTo', [migratedVersion])); GUI.log(i18n.getMessage('configMigratedTo', [migratedVersion]));
appliedMigrationsCount++; appliedMigrationsCount++;
} }
@ -639,7 +639,7 @@ function configuration_restore(callback) {
} }
migratedVersion = '1.2.0'; migratedVersion = '1.2.0';
GUI.log(chrome.i18n.getMessage('configMigratedTo', [migratedVersion])); GUI.log(i18n.getMessage('configMigratedTo', [migratedVersion]));
appliedMigrationsCount++; appliedMigrationsCount++;
} }
@ -655,12 +655,12 @@ function configuration_restore(callback) {
migratedVersion = '1.3.1'; migratedVersion = '1.3.1';
GUI.log(chrome.i18n.getMessage('configMigratedTo', [migratedVersion])); GUI.log(i18n.getMessage('configMigratedTo', [migratedVersion]));
appliedMigrationsCount++; appliedMigrationsCount++;
} }
if (appliedMigrationsCount > 0) { if (appliedMigrationsCount > 0) {
GUI.log(chrome.i18n.getMessage('configMigrationSuccessful', [appliedMigrationsCount])); GUI.log(i18n.getMessage('configMigrationSuccessful', [appliedMigrationsCount]));
} }
return true; return true;
} }
@ -852,7 +852,7 @@ function configuration_restore(callback) {
} }
function reboot() { function reboot() {
GUI.log(chrome.i18n.getMessage('eeprom_saved_ok')); GUI.log(i18n.getMessage('eeprom_saved_ok'));
GUI.tab_switch_cleanup(function() { GUI.tab_switch_cleanup(function() {
MSP.send_message(MSPCodes.MSP_SET_REBOOT, false, false, reinitialize); MSP.send_message(MSPCodes.MSP_SET_REBOOT, false, false, reinitialize);
@ -860,11 +860,11 @@ function configuration_restore(callback) {
} }
function reinitialize() { function reinitialize() {
GUI.log(chrome.i18n.getMessage('deviceRebooting')); GUI.log(i18n.getMessage('deviceRebooting'));
GUI.timeout_add('waiting_for_bootup', function waiting_for_bootup() { GUI.timeout_add('waiting_for_bootup', function waiting_for_bootup() {
MSP.send_message(MSPCodes.MSP_STATUS, false, false, function() { MSP.send_message(MSPCodes.MSP_STATUS, false, false, function() {
GUI.log(chrome.i18n.getMessage('deviceReady')); GUI.log(i18n.getMessage('deviceReady'));
if (callback) callback(); if (callback) callback();
}); });
}, 1500); // 1500 ms seems to be just the right amount of delay to prevent data request timeouts }, 1500); // 1500 ms seems to be just the right amount of delay to prevent data request timeouts

View file

@ -1,5 +1,7 @@
/* /*
If an id is also specified and a window with a matching id has been shown before, the remembered bounds of the window will be used instead. If an id is also specified and a window with a matching id has been shown before, the remembered bounds of the window will be used instead.
In this JS we cannot use the i18n wrapper used in the rest of the application (it is not available). We must remain with the chrome one.
*/ */
'use strict'; 'use strict';

View file

@ -1,12 +1,66 @@
'use strict'; 'use strict';
function localize() { /*
* Wrapper around the i18n system
*/
var i18n = {}
/**
* Functions that depend on the i18n framework
*/
i18n.init = function(cb) {
var defaultLocale = window.navigator.userLanguage || window.navigator.language;
i18next
.use(i18nextXHRBackend)
.init({
lng: defaultLocale,
getAsync: false,
debug: true,
ns: ['messages'],
defaultNS:['messages'],
fallbackLng: 'en',
backend: { loadPath: '/_locales/{{lng}}/{{ns}}.json' }
}, function(err, t) {
if (err !== undefined) {
console.error('Error loading i18n ' + err);
} else {
console.log('i18n system loaded');
}
if (cb !== undefined) {
cb();
}
});
}
i18n.getMessage = function(messageID, parameters) {
var translatedString = i18next.t(messageID + '.message');
if (parameters !== undefined) {
parameters.forEach(function(element, index) {
translatedString = translatedString.replace('$' + (index + 1), element);
});
}
return translatedString;
}
/**
* Helper functions, don't depend of the i18n framework
*/
i18n.localizePage = function() {
var localized = 0; var localized = 0;
var translate = function(messageID) { var translate = function(messageID) {
localized++; localized++;
return chrome.i18n.getMessage(messageID); return i18n.getMessage(messageID);
}; };
$('[i18n]:not(.i18n-replaced)').each(function() { $('[i18n]:not(.i18n-replaced)').each(function() {

View file

@ -1,27 +1,23 @@
'use strict'; 'use strict';
// Open new windows in external browser openNewWindowsInExternalBrowser();
try {
var gui = require('nw.gui');
//Get the current window
var win = gui.Window.get();
//Listen to the new window event
win.on('new-win-policy', function (frame, url, policy) {
gui.Shell.openExternal(url);
policy.ignore();
});
} catch (ex) {
console.log("require does not exist, maybe inside chrome");
}
//Asynchronous configuration to be done.
//When finish the startProcess() function must be called
$(document).ready(function () { $(document).ready(function () {
i18n.init(function() {
startProcess();
initializeSerialBackend();
});
});
//Process to execute to real start the app
function startProcess() {
// translate to user-selected language // translate to user-selected language
localize(); i18n.localizePage();
// alternative - window.navigator.appVersion.match(/Chrome\/([0-9.]*)/)[1]; // alternative - window.navigator.appVersion.match(/Chrome\/([0-9.]*)/)[1];
GUI.log(chrome.i18n.getMessage('infoVersions',[GUI.operating_system, window.navigator.appVersion.replace(/.*Chrome\/([0-9.]*).*/, "$1"), getManifestVersion()])); GUI.log(i18n.getMessage('infoVersions',[GUI.operating_system, window.navigator.appVersion.replace(/.*Chrome\/([0-9.]*).*/, "$1"), getManifestVersion()]));
$('#logo .version').text(getManifestVersion()); $('#logo .version').text(getManifestVersion());
updateStatusBarVersion(); updateStatusBarVersion();
@ -73,17 +69,17 @@ $(document).ready(function () {
var tabName = $(self).text(); var tabName = $(self).text();
if (tabRequiresConnection && !CONFIGURATOR.connectionValid) { if (tabRequiresConnection && !CONFIGURATOR.connectionValid) {
GUI.log(chrome.i18n.getMessage('tabSwitchConnectionRequired')); GUI.log(i18n.getMessage('tabSwitchConnectionRequired'));
return; return;
} }
if (GUI.connect_lock) { // tab switching disabled while operation is in progress if (GUI.connect_lock) { // tab switching disabled while operation is in progress
GUI.log(chrome.i18n.getMessage('tabSwitchWaitForOperation')); GUI.log(i18n.getMessage('tabSwitchWaitForOperation'));
return; return;
} }
if (GUI.allowedTabs.indexOf(tab) < 0) { if (GUI.allowedTabs.indexOf(tab) < 0) {
GUI.log(chrome.i18n.getMessage('tabSwitchUpgradeRequired', [tabName])); GUI.log(i18n.getMessage('tabSwitchUpgradeRequired', [tabName]));
return; return;
} }
@ -198,7 +194,7 @@ $(document).ready(function () {
$('div#options-window').load('./tabs/options.html', function () { $('div#options-window').load('./tabs/options.html', function () {
// translate to user-selected language // translate to user-selected language
localize(); i18n.localizePage();
chrome.storage.local.get('permanentExpertMode', function (result) { chrome.storage.local.get('permanentExpertMode', function (result) {
if (result.permanentExpertMode) { if (result.permanentExpertMode) {
@ -353,7 +349,7 @@ $(document).ready(function () {
state = true; state = true;
} }
$(this).text(state ? chrome.i18n.getMessage('logActionHide') : chrome.i18n.getMessage('logActionShow')); $(this).text(state ? i18n.getMessage('logActionHide') : i18n.getMessage('logActionShow'));
$(this).data('state', state); $(this).data('state', state);
}); });
@ -368,7 +364,7 @@ $(document).ready(function () {
} }
}).change(); }).change();
}); });
}); }
function checkForConfiguratorUpdates() { function checkForConfiguratorUpdates() {
var releaseChecker = new ReleaseChecker('configurator', 'https://api.github.com/repos/betaflight/betaflight-configurator/releases'); var releaseChecker = new ReleaseChecker('configurator', 'https://api.github.com/repos/betaflight/betaflight-configurator/releases');
@ -396,11 +392,11 @@ function notifyOutdatedVersion(releaseData) {
}); });
if (versions.length > 0 && semver.lt(getManifestVersion(), versions[0].tag_name)) { if (versions.length > 0 && semver.lt(getManifestVersion(), versions[0].tag_name)) {
GUI.log(chrome.i18n.getMessage('configuratorUpdateNotice', [versions[0].tag_name, versions[0].html_url])); GUI.log(i18n.getMessage('configuratorUpdateNotice', [versions[0].tag_name, versions[0].html_url]));
var dialog = $('.dialogConfiguratorUpdate')[0]; var dialog = $('.dialogConfiguratorUpdate')[0];
$('.dialogConfiguratorUpdate-content').html(chrome.i18n.getMessage('configuratorUpdateNotice', [versions[0].tag_name, versions[0].html_url])); $('.dialogConfiguratorUpdate-content').html(i18n.getMessage('configuratorUpdateNotice', [versions[0].tag_name, versions[0].html_url]));
$('.dialogConfiguratorUpdate-closebtn').click(function() { $('.dialogConfiguratorUpdate-closebtn').click(function() {
dialog.close(); dialog.close();
@ -556,10 +552,10 @@ function getFirmwareVersion(firmwareVersion, firmwareId, hardwareId) {
var versionText = ''; var versionText = '';
if (firmwareVersion) { if (firmwareVersion) {
versionText += chrome.i18n.getMessage('versionLabelFirmware') + ': ' + firmwareId + ' ' + firmwareVersion; versionText += i18n.getMessage('versionLabelFirmware') + ': ' + firmwareId + ' ' + firmwareVersion;
if (hardwareId) { if (hardwareId) {
versionText += ' (' + chrome.i18n.getMessage('versionLabelTarget') + ': ' + hardwareId + ')'; versionText += ' (' + i18n.getMessage('versionLabelTarget') + ': ' + hardwareId + ')';
} }
} }
@ -567,7 +563,7 @@ function getFirmwareVersion(firmwareVersion, firmwareId, hardwareId) {
} }
function getConfiguratorVersion() { function getConfiguratorVersion() {
return chrome.i18n.getMessage('versionLabelConfigurator') + ': ' + getManifestVersion(); return i18n.getMessage('versionLabelConfigurator') + ': ' + getManifestVersion();
} }
function updateTopBarVersion(firmwareVersion, firmwareId, hardwareId) { function updateTopBarVersion(firmwareVersion, firmwareId, hardwareId) {
@ -604,3 +600,21 @@ function getManifestVersion(manifest) {
return version; return version;
} }
function openNewWindowsInExternalBrowser() {
// Open new windows in external browser
try {
var gui = require('nw.gui');
//Get the current window
var win = gui.Window.get();
//Listen to the new window event
win.on('new-win-policy', function (frame, url, policy) {
gui.Shell.openExternal(url);
policy.ignore();
});
} catch (ex) {
console.warn("require does not exist, maybe inside chrome");
}
}

View file

@ -101,7 +101,7 @@ MspHelper.prototype.process_data = function(dataHandler) {
sensor_status(CONFIG.activeSensors); sensor_status(CONFIG.activeSensors);
$('span.i2c-error').text(CONFIG.i2cError); $('span.i2c-error').text(CONFIG.i2cError);
$('span.cycle-time').text(CONFIG.cycleTime); $('span.cycle-time').text(CONFIG.cycleTime);
$('span.cpu-load').text(chrome.i18n.getMessage('statusbar_cpu_load', [CONFIG.cpuload])); $('span.cpu-load').text(i18n.getMessage('statusbar_cpu_load', [CONFIG.cpuload]));
break; break;
case MSPCodes.MSP_RAW_IMU: case MSPCodes.MSP_RAW_IMU:
@ -2028,9 +2028,9 @@ MspHelper.prototype.setArmingEnabled = function(doEnable, onCompleteCallback) {
MSP.send_message(MSPCodes.MSP_ARMING_DISABLE, mspHelper.crunch(MSPCodes.MSP_ARMING_DISABLE), false, function () { MSP.send_message(MSPCodes.MSP_ARMING_DISABLE, mspHelper.crunch(MSPCodes.MSP_ARMING_DISABLE), false, function () {
if (doEnable) { if (doEnable) {
GUI.log(chrome.i18n.getMessage('armingEnabled')); GUI.log(i18n.getMessage('armingEnabled'));
} else { } else {
GUI.log(chrome.i18n.getMessage('armingDisabled')); GUI.log(i18n.getMessage('armingDisabled'));
} }
if (onCompleteCallback) { if (onCompleteCallback) {

View file

@ -17,11 +17,11 @@ function adjustBoxNameIfPeripheralWithModeID(modeId, defaultName) {
if (isPeripheralSelected("RUNCAM_DEVICE_CONTROL")) { if (isPeripheralSelected("RUNCAM_DEVICE_CONTROL")) {
switch (modeId) { switch (modeId) {
case 32: // BOXCAMERA1 case 32: // BOXCAMERA1
return chrome.i18n.getMessage('modeCameraWifi'); return i18n.getMessage('modeCameraWifi');
case 33: // BOXCAMERA2 case 33: // BOXCAMERA2
return chrome.i18n.getMessage('modeCameraPower'); return i18n.getMessage('modeCameraPower');
case 34: // BOXCAMERA3 case 34: // BOXCAMERA3
return chrome.i18n.getMessage('modeCameraChangeMode'); return i18n.getMessage('modeCameraChangeMode');
default: default:
return defaultName; return defaultName;
} }

View file

@ -171,7 +171,7 @@ PortHandler.update_port_select = function (ports) {
$('div#port-picker #port').append($("<option/>", {value: ports[i], text: ports[i], data: {isManual: false}})); $('div#port-picker #port').append($("<option/>", {value: ports[i], text: ports[i], data: {isManual: false}}));
} }
$('div#port-picker #port').append($("<option/>", {value: 'manual', text: chrome.i18n.getMessage('portsSelectManual'), data: {isManual: true}})); $('div#port-picker #port').append($("<option/>", {value: 'manual', text: i18n.getMessage('portsSelectManual'), data: {isManual: true}}));
}; };
PortHandler.port_detected = function(name, code, timeout, ignore_timeout) { PortHandler.port_detected = function(name, code, timeout, ignore_timeout) {

View file

@ -20,11 +20,11 @@ var PortUsage = {
this.previous_sent = serial.bytesSent; this.previous_sent = serial.bytesSent;
// update UI // update UI
$('span.port_usage_down').text(chrome.i18n.getMessage('statusbar_usage_download', [port_usage_down])); $('span.port_usage_down').text(i18n.getMessage('statusbar_usage_download', [port_usage_down]));
$('span.port_usage_up').text(chrome.i18n.getMessage('statusbar_usage_upload', [port_usage_up])); $('span.port_usage_up').text(i18n.getMessage('statusbar_usage_upload', [port_usage_up]));
} else { } else {
$('span.port_usage_down').text(chrome.i18n.getMessage('statusbar_usage_download', [0])); $('span.port_usage_down').text(i18n.getMessage('statusbar_usage_download', [0]));
$('span.port_usage_up').text(chrome.i18n.getMessage('statusbar_usage_upload', [0])); $('span.port_usage_up').text(i18n.getMessage('statusbar_usage_upload', [0]));
} }
}, },
reset: function() { reset: function() {

View file

@ -119,16 +119,16 @@ STM32DFU_protocol.prototype.openDevice = function (device) {
chrome.usb.openDevice(device, function (handle) { chrome.usb.openDevice(device, function (handle) {
if(self.checkChromeError()) { if(self.checkChromeError()) {
console.log('Failed to open USB device!'); console.log('Failed to open USB device!');
GUI.log(chrome.i18n.getMessage('usbDeviceOpenFail')); GUI.log(i18n.getMessage('usbDeviceOpenFail'));
if(GUI.operating_system === 'Linux') { if(GUI.operating_system === 'Linux') {
GUI.log(chrome.i18n.getMessage('usbDeviceUdevNotice')); GUI.log(i18n.getMessage('usbDeviceUdevNotice'));
} }
return; return;
} }
self.handle = handle; self.handle = handle;
GUI.log(chrome.i18n.getMessage('usbDeviceOpened', handle.handle.toString())); GUI.log(i18n.getMessage('usbDeviceOpened', handle.handle.toString()));
console.log('Device opened with Handle ID: ' + handle.handle); console.log('Device opened with Handle ID: ' + handle.handle);
self.claimInterface(0); self.claimInterface(0);
}); });
@ -140,10 +140,10 @@ STM32DFU_protocol.prototype.closeDevice = function () {
chrome.usb.closeDevice(this.handle, function closed() { chrome.usb.closeDevice(this.handle, function closed() {
if(self.checkChromeError()) { if(self.checkChromeError()) {
console.log('Failed to close USB device!'); console.log('Failed to close USB device!');
GUI.log(chrome.i18n.getMessage('usbDeviceCloseFail')); GUI.log(i18n.getMessage('usbDeviceCloseFail'));
} }
GUI.log(chrome.i18n.getMessage('usbDeviceClosed')); GUI.log(i18n.getMessage('usbDeviceClosed'));
console.log('Device closed with Handle ID: ' + self.handle.handle); console.log('Device closed with Handle ID: ' + self.handle.handle);
self.handle = null; self.handle = null;
@ -518,10 +518,10 @@ STM32DFU_protocol.prototype.upload_procedure = function (step) {
self.flash_layout = chipInfo.internal_flash; self.flash_layout = chipInfo.internal_flash;
self.available_flash_size = self.flash_layout.total_size - (self.hex.start_linear_address - self.flash_layout.start_address); self.available_flash_size = self.flash_layout.total_size - (self.hex.start_linear_address - self.flash_layout.start_address);
GUI.log(chrome.i18n.getMessage('dfu_device_flash_info', (self.flash_layout.total_size / 1024).toString())); GUI.log(i18n.getMessage('dfu_device_flash_info', (self.flash_layout.total_size / 1024).toString()));
if (self.hex.bytes_total > self.available_flash_size) { if (self.hex.bytes_total > self.available_flash_size) {
GUI.log(chrome.i18n.getMessage('dfu_error_image_size', GUI.log(i18n.getMessage('dfu_error_image_size',
[(self.hex.bytes_total / 1024.0).toFixed(1), [(self.hex.bytes_total / 1024.0).toFixed(1),
(self.available_flash_size / 1024.0).toFixed(1)])); (self.available_flash_size / 1024.0).toFixed(1)]));
self.upload_procedure(99); self.upload_procedure(99);
@ -724,7 +724,7 @@ STM32DFU_protocol.prototype.upload_procedure = function (step) {
if(page == erase_pages.length) { if(page == erase_pages.length) {
console.log("Erase: complete"); console.log("Erase: complete");
GUI.log(chrome.i18n.getMessage('dfu_erased_kilobytes', (total_erased / 1024).toString())); GUI.log(i18n.getMessage('dfu_erased_kilobytes', (total_erased / 1024).toString()));
self.upload_procedure(4); self.upload_procedure(4);
} }
else else

View file

@ -19,7 +19,7 @@ ReleaseChecker.prototype.loadReleaseData = function (processFunction) {
var cachedReleaseLastUpdate = result[self._releaseLastUpdateTag]; var cachedReleaseLastUpdate = result[self._releaseLastUpdateTag];
if (!cacheReleaseData || !cachedReleaseLastUpdate || releaseDataTimestamp - cachedReleaseLastUpdate > 3600 * 1000) { if (!cacheReleaseData || !cachedReleaseLastUpdate || releaseDataTimestamp - cachedReleaseLastUpdate > 3600 * 1000) {
$.get(self._releaseUrl, function (releaseData) { $.get(self._releaseUrl, function (releaseData) {
GUI.log(chrome.i18n.getMessage('releaseCheckLoaded',[self._releaseName])); GUI.log(i18n.getMessage('releaseCheckLoaded',[self._releaseName]));
var data = {}; var data = {};
data[self._releaseDataTag] = releaseData data[self._releaseDataTag] = releaseData
@ -32,13 +32,13 @@ ReleaseChecker.prototype.loadReleaseData = function (processFunction) {
if (data['responseJSON']) { if (data['responseJSON']) {
message = data['responseJSON'].message; message = data['responseJSON'].message;
} }
GUI.log(chrome.i18n.getMessage('releaseCheckFailed',[self._releaseName,message])); GUI.log(i18n.getMessage('releaseCheckFailed',[self._releaseName,message]));
self._processReleaseData(cacheReleaseData, processFunction); self._processReleaseData(cacheReleaseData, processFunction);
}); });
} else { } else {
if (cacheReleaseData) { if (cacheReleaseData) {
GUI.log(chrome.i18n.getMessage('releaseCheckCached',[self._releaseName])); GUI.log(i18n.getMessage('releaseCheckCached',[self._releaseName]));
} }
self._processReleaseData(cacheReleaseData, processFunction); self._processReleaseData(cacheReleaseData, processFunction);
@ -51,7 +51,7 @@ ReleaseChecker.prototype._processReleaseData = function (releaseData, processFun
if (releaseData) { if (releaseData) {
processFunction(releaseData); processFunction(releaseData);
} else { } else {
GUI.log(chrome.i18n.getMessage('releaseCheckNoInfo',[self._releaseName])); GUI.log(i18n.getMessage('releaseCheckNoInfo',[self._releaseName]));
processFunction(); processFunction();
} }

View file

@ -66,7 +66,7 @@ var serial = {
self.failed = 0; self.failed = 0;
} else { } else {
console.log('SERIAL: Connection did not recover from last onReceiveError, disconnecting'); console.log('SERIAL: Connection did not recover from last onReceiveError, disconnecting');
GUI.log(chrome.i18n.getMessage('serialUnrecoverable')); GUI.log(i18n.getMessage('serialUnrecoverable'));
if (GUI.connected_to || GUI.connecting_to) { if (GUI.connected_to || GUI.connecting_to) {
$('a.connect').click(); $('a.connect').click();
@ -96,7 +96,7 @@ var serial = {
if (info.paused) { if (info.paused) {
// assume unrecoverable, disconnect // assume unrecoverable, disconnect
console.log('SERIAL: Connection did not recover from ' + self.error + ' condition, disconnecting'); console.log('SERIAL: Connection did not recover from ' + self.error + ' condition, disconnecting');
GUI.log(chrome.i18n.getMessage('serialUnrecoverable')); GUI.log(i18n.getMessage('serialUnrecoverable'));
if (GUI.connected_to || GUI.connecting_to) { if (GUI.connected_to || GUI.connecting_to) {
$('a.connect').click(); $('a.connect').click();

View file

@ -1,7 +1,7 @@
'use strict'; 'use strict';
var mspHelper; var mspHelper;
$(document).ready(function () { function initializeSerialBackend() {
GUI.updateManualPortVisibility = function(){ GUI.updateManualPortVisibility = function(){
var selected_port = $('div#port-picker #port option:selected'); var selected_port = $('div#port-picker #port option:selected');
@ -48,7 +48,7 @@ $(document).ready(function () {
$('#port-override').val() : $('#port-override').val() :
String($('div#port-picker #port').val()); String($('div#port-picker #port').val());
if (selected_port === 'DFU') { if (selected_port === 'DFU') {
GUI.log(chrome.i18n.getMessage('dfu_connect_message')); GUI.log(i18n.getMessage('dfu_connect_message'));
} }
else if (selected_port != '0') { else if (selected_port != '0') {
if (!clicks) { if (!clicks) {
@ -57,7 +57,7 @@ $(document).ready(function () {
// lock port select & baud while we are connecting / connected // lock port select & baud while we are connecting / connected
$('div#port-picker #port, div#port-picker #baud, div#port-picker #delay').prop('disabled', true); $('div#port-picker #port, div#port-picker #baud, div#port-picker #delay').prop('disabled', true);
$('div.connect_controls a.connect_state').text(chrome.i18n.getMessage('connecting')); $('div.connect_controls a.connect_state').text(i18n.getMessage('connecting'));
serial.connect(selected_port, {bitrate: selected_baud}, onOpen); serial.connect(selected_port, {bitrate: selected_baud}, onOpen);
@ -85,7 +85,7 @@ $(document).ready(function () {
GUI.auto_connect = true; GUI.auto_connect = true;
$('input.auto_connect').prop('checked', true); $('input.auto_connect').prop('checked', true);
$('input.auto_connect, span.auto_connect').prop('title', chrome.i18n.getMessage('autoConnectEnabled')); $('input.auto_connect, span.auto_connect').prop('title', i18n.getMessage('autoConnectEnabled'));
$('select#baud').val(115200).prop('disabled', true); $('select#baud').val(115200).prop('disabled', true);
} else { } else {
@ -93,7 +93,7 @@ $(document).ready(function () {
GUI.auto_connect = false; GUI.auto_connect = false;
$('input.auto_connect').prop('checked', false); $('input.auto_connect').prop('checked', false);
$('input.auto_connect, span.auto_connect').prop('title', chrome.i18n.getMessage('autoConnectDisabled')); $('input.auto_connect, span.auto_connect').prop('title', i18n.getMessage('autoConnectDisabled'));
} }
// bind UI hook to auto-connect checkbos // bind UI hook to auto-connect checkbos
@ -102,11 +102,11 @@ $(document).ready(function () {
// update title/tooltip // update title/tooltip
if (GUI.auto_connect) { if (GUI.auto_connect) {
$('input.auto_connect, span.auto_connect').prop('title', chrome.i18n.getMessage('autoConnectEnabled')); $('input.auto_connect, span.auto_connect').prop('title', i18n.getMessage('autoConnectEnabled'));
$('select#baud').val(115200).prop('disabled', true); $('select#baud').val(115200).prop('disabled', true);
} else { } else {
$('input.auto_connect, span.auto_connect').prop('title', chrome.i18n.getMessage('autoConnectDisabled')); $('input.auto_connect, span.auto_connect').prop('title', i18n.getMessage('autoConnectDisabled'));
if (!GUI.connected_to && !GUI.connecting_to) $('select#baud').prop('disabled', false); if (!GUI.connected_to && !GUI.connecting_to) $('select#baud').prop('disabled', false);
} }
@ -117,7 +117,7 @@ $(document).ready(function () {
PortHandler.initialize(); PortHandler.initialize();
PortUsage.initialize(); PortUsage.initialize();
}); }
function finishClose(finishedCallback) { function finishClose(finishedCallback) {
var wasConnected = CONFIGURATOR.connectionValid; var wasConnected = CONFIGURATOR.connectionValid;
@ -141,7 +141,7 @@ function finishClose(finishedCallback) {
// reset connect / disconnect button // reset connect / disconnect button
$('div.connect_controls a.connect').removeClass('active'); $('div.connect_controls a.connect').removeClass('active');
$('div.connect_controls a.connect_state').text(chrome.i18n.getMessage('connect')); $('div.connect_controls a.connect_state').text(i18n.getMessage('connect'));
// reset active sensor indicators // reset active sensor indicators
sensor_status(0); sensor_status(0);
@ -165,7 +165,7 @@ function onOpen(openInfo) {
// reset connecting_to // reset connecting_to
GUI.connecting_to = false; GUI.connecting_to = false;
GUI.log(chrome.i18n.getMessage('serialPortOpened', [openInfo.connectionId])); GUI.log(i18n.getMessage('serialPortOpened', [openInfo.connectionId]));
// save selected port with chrome.storage if the port differs // save selected port with chrome.storage if the port differs
chrome.storage.local.get('last_used_port', function (result) { chrome.storage.local.get('last_used_port', function (result) {
@ -185,7 +185,7 @@ function onOpen(openInfo) {
// disconnect after 10 seconds with error if we don't get IDENT data // disconnect after 10 seconds with error if we don't get IDENT data
GUI.timeout_add('connecting', function () { GUI.timeout_add('connecting', function () {
if (!CONFIGURATOR.connectionValid) { if (!CONFIGURATOR.connectionValid) {
GUI.log(chrome.i18n.getMessage('noConfigurationReceived')); GUI.log(i18n.getMessage('noConfigurationReceived'));
$('div.connect_controls a.connect').click(); // disconnect $('div.connect_controls a.connect').click(); // disconnect
} }
@ -198,7 +198,7 @@ function onOpen(openInfo) {
// request configuration data // request configuration data
MSP.send_message(MSPCodes.MSP_API_VERSION, false, false, function () { MSP.send_message(MSPCodes.MSP_API_VERSION, false, false, function () {
GUI.log(chrome.i18n.getMessage('apiVersionReceived', [CONFIG.apiVersion])); GUI.log(i18n.getMessage('apiVersionReceived', [CONFIG.apiVersion]));
if (semver.gte(CONFIG.apiVersion, CONFIGURATOR.apiVersionAccepted)) { if (semver.gte(CONFIG.apiVersion, CONFIGURATOR.apiVersionAccepted)) {
@ -206,26 +206,26 @@ function onOpen(openInfo) {
if (CONFIG.flightControllerIdentifier === 'BTFL') { if (CONFIG.flightControllerIdentifier === 'BTFL') {
MSP.send_message(MSPCodes.MSP_FC_VERSION, false, false, function () { MSP.send_message(MSPCodes.MSP_FC_VERSION, false, false, function () {
GUI.log(chrome.i18n.getMessage('fcInfoReceived', [CONFIG.flightControllerIdentifier, CONFIG.flightControllerVersion])); GUI.log(i18n.getMessage('fcInfoReceived', [CONFIG.flightControllerIdentifier, CONFIG.flightControllerVersion]));
updateStatusBarVersion(CONFIG.flightControllerVersion, CONFIG.flightControllerIdentifier); updateStatusBarVersion(CONFIG.flightControllerVersion, CONFIG.flightControllerIdentifier);
updateTopBarVersion(CONFIG.flightControllerVersion, CONFIG.flightControllerIdentifier); updateTopBarVersion(CONFIG.flightControllerVersion, CONFIG.flightControllerIdentifier);
MSP.send_message(MSPCodes.MSP_BUILD_INFO, false, false, function () { MSP.send_message(MSPCodes.MSP_BUILD_INFO, false, false, function () {
GUI.log(chrome.i18n.getMessage('buildInfoReceived', [CONFIG.buildInfo])); GUI.log(i18n.getMessage('buildInfoReceived', [CONFIG.buildInfo]));
MSP.send_message(MSPCodes.MSP_BOARD_INFO, false, false, function () { MSP.send_message(MSPCodes.MSP_BOARD_INFO, false, false, function () {
GUI.log(chrome.i18n.getMessage('boardInfoReceived', [CONFIG.boardIdentifier, CONFIG.boardVersion])); GUI.log(i18n.getMessage('boardInfoReceived', [CONFIG.boardIdentifier, CONFIG.boardVersion]));
updateStatusBarVersion(CONFIG.flightControllerVersion, CONFIG.flightControllerIdentifier, CONFIG.boardIdentifier); updateStatusBarVersion(CONFIG.flightControllerVersion, CONFIG.flightControllerIdentifier, CONFIG.boardIdentifier);
updateTopBarVersion(CONFIG.flightControllerVersion, CONFIG.flightControllerIdentifier, CONFIG.boardIdentifier); updateTopBarVersion(CONFIG.flightControllerVersion, CONFIG.flightControllerIdentifier, CONFIG.boardIdentifier);
MSP.send_message(MSPCodes.MSP_UID, false, false, function () { MSP.send_message(MSPCodes.MSP_UID, false, false, function () {
GUI.log(chrome.i18n.getMessage('uniqueDeviceIdReceived', [CONFIG.uid[0].toString(16) + CONFIG.uid[1].toString(16) + CONFIG.uid[2].toString(16)])); GUI.log(i18n.getMessage('uniqueDeviceIdReceived', [CONFIG.uid[0].toString(16) + CONFIG.uid[1].toString(16) + CONFIG.uid[2].toString(16)]));
if (semver.gte(CONFIG.apiVersion, "1.20.0")) { if (semver.gte(CONFIG.apiVersion, "1.20.0")) {
MSP.send_message(MSPCodes.MSP_NAME, false, false, function () { MSP.send_message(MSPCodes.MSP_NAME, false, false, function () {
GUI.log(chrome.i18n.getMessage('craftNameReceived', [CONFIG.name])); GUI.log(i18n.getMessage('craftNameReceived', [CONFIG.name]));
CONFIG.arming_disabled = false; CONFIG.arming_disabled = false;
mspHelper.setArmingEnabled(false, finishOpen); mspHelper.setArmingEnabled(false, finishOpen);
@ -240,7 +240,7 @@ function onOpen(openInfo) {
} else { } else {
var dialog = $('.dialogConnectWarning')[0]; var dialog = $('.dialogConnectWarning')[0];
$('.dialogConnectWarning-content').html(chrome.i18n.getMessage('firmwareTypeNotSupported')); $('.dialogConnectWarning-content').html(i18n.getMessage('firmwareTypeNotSupported'));
$('.dialogConnectWarning-closebtn').click(function() { $('.dialogConnectWarning-closebtn').click(function() {
dialog.close(); dialog.close();
@ -254,7 +254,7 @@ function onOpen(openInfo) {
} else { } else {
var dialog = $('.dialogConnectWarning')[0]; var dialog = $('.dialogConnectWarning')[0];
$('.dialogConnectWarning-content').html(chrome.i18n.getMessage('firmwareVersionNotSupported', [CONFIGURATOR.apiVersionAccepted])); $('.dialogConnectWarning-content').html(i18n.getMessage('firmwareVersionNotSupported', [CONFIGURATOR.apiVersionAccepted]));
$('.dialogConnectWarning-closebtn').click(function() { $('.dialogConnectWarning-closebtn').click(function() {
dialog.close(); dialog.close();
@ -267,9 +267,9 @@ function onOpen(openInfo) {
}); });
} else { } else {
console.log('Failed to open serial port'); console.log('Failed to open serial port');
GUI.log(chrome.i18n.getMessage('serialPortOpenFail')); GUI.log(i18n.getMessage('serialPortOpenFail'));
$('div#connectbutton a.connect_state').text(chrome.i18n.getMessage('connect')); $('div#connectbutton a.connect_state').text(i18n.getMessage('connect'));
$('div#connectbutton a.connect').removeClass('active'); $('div#connectbutton a.connect').removeClass('active');
// unlock port select & baud // unlock port select & baud
@ -301,7 +301,7 @@ function connectCli() {
function onConnect() { function onConnect() {
GUI.timeout_remove('connecting'); // kill connecting timer GUI.timeout_remove('connecting'); // kill connecting timer
$('div#connectbutton a.connect_state').text(chrome.i18n.getMessage('disconnect')).addClass('active'); $('div#connectbutton a.connect_state').text(i18n.getMessage('disconnect')).addClass('active');
$('div#connectbutton a.connect').addClass('active'); $('div#connectbutton a.connect').addClass('active');
$('#tabs ul.mode-disconnected').hide(); $('#tabs ul.mode-disconnected').hide();
@ -359,9 +359,9 @@ function onConnect() {
function onClosed(result) { function onClosed(result) {
if (result) { // All went as expected if (result) { // All went as expected
GUI.log(chrome.i18n.getMessage('serialPortClosedOk')); GUI.log(i18n.getMessage('serialPortClosedOk'));
} else { // Something went wrong } else { // Something went wrong
GUI.log(chrome.i18n.getMessage('serialPortClosedFail')); GUI.log(i18n.getMessage('serialPortClosedFail'));
} }
$('#tabs ul.mode-connected').hide(); $('#tabs ul.mode-connected').hide();

View file

@ -162,7 +162,7 @@ TABS.adjustments.initialize = function (callback) {
} }
// translate to user-selected language // translate to user-selected language
localize(); i18n.localizePage();
// UI Hooks // UI Hooks
$('a.save').click(function () { $('a.save').click(function () {
@ -215,7 +215,7 @@ TABS.adjustments.initialize = function (callback) {
function save_to_eeprom() { function save_to_eeprom() {
MSP.send_message(MSPCodes.MSP_EEPROM_WRITE, false, false, function () { MSP.send_message(MSPCodes.MSP_EEPROM_WRITE, false, false, function () {
GUI.log(chrome.i18n.getMessage('adjustmentsEepromSaved')); GUI.log(i18n.getMessage('adjustmentsEepromSaved'));
}); });
} }

View file

@ -58,7 +58,7 @@ TABS.auxiliary.initialize = function (callback) {
//add value to autodetect channel //add value to autodetect channel
var channelOption = channelOptionTemplate.clone(); var channelOption = channelOptionTemplate.clone();
channelOption.text(chrome.i18n.getMessage('auxiliaryAutoChannelSelect')); channelOption.text(i18n.getMessage('auxiliaryAutoChannelSelect'));
channelOption.val(-1); channelOption.val(-1);
channelList.append(channelOption); channelList.append(channelOption);
@ -161,7 +161,7 @@ TABS.auxiliary.initialize = function (callback) {
}); });
// translate to user-selected language // translate to user-selected language
localize(); i18n.localizePage();
// UI Hooks // UI Hooks
$('a.save').click(function () { $('a.save').click(function () {
@ -211,7 +211,7 @@ TABS.auxiliary.initialize = function (callback) {
function save_to_eeprom() { function save_to_eeprom() {
MSP.send_message(MSPCodes.MSP_EEPROM_WRITE, false, false, function () { MSP.send_message(MSPCodes.MSP_EEPROM_WRITE, false, false, function () {
GUI.log(chrome.i18n.getMessage('auxiliaryEepromSaved')); GUI.log(i18n.getMessage('auxiliaryEepromSaved'));
}); });
} }
}); });

View file

@ -20,7 +20,7 @@ TABS.cli.initialize = function (callback) {
$('#content').load("./tabs/cli.html", function () { $('#content').load("./tabs/cli.html", function () {
// translate to user-selected language // translate to user-selected language
localize(); i18n.localizePage();
CONFIGURATOR.cliActive = true; CONFIGURATOR.cliActive = true;
@ -203,8 +203,8 @@ TABS.cli.read = function (readInfo) {
if (this.currentLine == 'Rebooting') { if (this.currentLine == 'Rebooting') {
CONFIGURATOR.cliActive = false; CONFIGURATOR.cliActive = false;
CONFIGURATOR.cliValid = false; CONFIGURATOR.cliValid = false;
GUI.log(chrome.i18n.getMessage('cliReboot')); GUI.log(i18n.getMessage('cliReboot'));
GUI.log(chrome.i18n.getMessage('deviceRebooting')); GUI.log(i18n.getMessage('deviceRebooting'));
if (BOARD.find_board_definition(CONFIG.boardIdentifier).vcp) { // VCP-based flight controls may crash old drivers, we catch and reconnect if (BOARD.find_board_definition(CONFIG.boardIdentifier).vcp) { // VCP-based flight controls may crash old drivers, we catch and reconnect
$('a.connect').click(); $('a.connect').click();
@ -215,7 +215,7 @@ TABS.cli.read = function (readInfo) {
GUI.timeout_add('waiting_for_bootup', function waiting_for_bootup() { GUI.timeout_add('waiting_for_bootup', function waiting_for_bootup() {
MSP.send_message(MSPCodes.MSP_STATUS, false, false, function() { MSP.send_message(MSPCodes.MSP_STATUS, false, false, function() {
GUI.log(chrome.i18n.getMessage('deviceReady')); GUI.log(i18n.getMessage('deviceReady'));
if (!GUI.tab_switch_in_progress) { if (!GUI.tab_switch_in_progress) {
$('#tabs ul.mode-connected .tab_setup a').click(); $('#tabs ul.mode-connected .tab_setup a').click();
} }
@ -231,7 +231,7 @@ TABS.cli.read = function (readInfo) {
} }
if (!CONFIGURATOR.cliValid && this.validateText.indexOf('CLI') != -1) { if (!CONFIGURATOR.cliValid && this.validateText.indexOf('CLI') != -1) {
GUI.log(chrome.i18n.getMessage('cliEnter')); GUI.log(i18n.getMessage('cliEnter'));
CONFIGURATOR.cliValid = true; CONFIGURATOR.cliValid = true;
this.validateText = ""; this.validateText = "";
} }

View file

@ -248,7 +248,7 @@ TABS.configuration.initialize = function (callback, scrollPosition) {
} }
// translate to user-selected language // translate to user-selected language
localize(); i18n.localizePage();
var alignments = [ var alignments = [
'CW 0°', 'CW 0°',
@ -1082,7 +1082,7 @@ TABS.configuration.initialize = function (callback, scrollPosition) {
} }
function reboot() { function reboot() {
GUI.log(chrome.i18n.getMessage('configurationEepromSaved')); GUI.log(i18n.getMessage('configurationEepromSaved'));
GUI.tab_switch_cleanup(function() { GUI.tab_switch_cleanup(function() {
MSP.send_message(MSPCodes.MSP_SET_REBOOT, false, false, reinitialize); MSP.send_message(MSPCodes.MSP_SET_REBOOT, false, false, reinitialize);
@ -1090,7 +1090,7 @@ TABS.configuration.initialize = function (callback, scrollPosition) {
} }
function reinitialize() { function reinitialize() {
GUI.log(chrome.i18n.getMessage('deviceRebooting')); GUI.log(i18n.getMessage('deviceRebooting'));
if (BOARD.find_board_definition(CONFIG.boardIdentifier).vcp) { // VCP-based flight controls may crash old drivers, we catch and reconnect if (BOARD.find_board_definition(CONFIG.boardIdentifier).vcp) { // VCP-based flight controls may crash old drivers, we catch and reconnect
$('a.connect').click(); $('a.connect').click();
@ -1101,7 +1101,7 @@ TABS.configuration.initialize = function (callback, scrollPosition) {
GUI.timeout_add('waiting_for_bootup', function waiting_for_bootup() { GUI.timeout_add('waiting_for_bootup', function waiting_for_bootup() {
MSP.send_message(MSPCodes.MSP_STATUS, false, false, function() { MSP.send_message(MSPCodes.MSP_STATUS, false, false, function() {
GUI.log(chrome.i18n.getMessage('deviceReady')); GUI.log(i18n.getMessage('deviceReady'));
TABS.configuration.initialize(false, $('#content').scrollTop()); TABS.configuration.initialize(false, $('#content').scrollTop());
}); });
},1500); // 1500 ms seems to be just the right amount of delay to prevent data request timeouts },1500); // 1500 ms seems to be just the right amount of delay to prevent data request timeouts

View file

@ -115,10 +115,10 @@ TABS.failsafe.initialize = function (callback, scrollPosition) {
// generate full channel list // generate full channel list
var channelNames = [ var channelNames = [
chrome.i18n.getMessage('controlAxisRoll'), i18n.getMessage('controlAxisRoll'),
chrome.i18n.getMessage('controlAxisPitch'), i18n.getMessage('controlAxisPitch'),
chrome.i18n.getMessage('controlAxisYaw'), i18n.getMessage('controlAxisYaw'),
chrome.i18n.getMessage('controlAxisThrottle') i18n.getMessage('controlAxisThrottle')
], ],
fullChannels_e = $('div.activechannellist'), fullChannels_e = $('div.activechannellist'),
aux_index = 1, aux_index = 1,
@ -131,7 +131,7 @@ TABS.failsafe.initialize = function (callback, scrollPosition) {
<div class="channelprimary">\ <div class="channelprimary">\
<span>' + channelNames[i] + '</span>\ <span>' + channelNames[i] + '</span>\
</div>\ </div>\
<div class="cf_tip channelsetting" title="' + chrome.i18n.getMessage("failsafeChannelFallbackSettingsAuto") + '">\ <div class="cf_tip channelsetting" title="' + i18n.getMessage("failsafeChannelFallbackSettingsAuto") + '">\
<select class="aux_set" id="' + i + '">\ <select class="aux_set" id="' + i + '">\
<option value="0">Auto</option>\ <option value="0">Auto</option>\
<option value="1">Hold</option>\ <option value="1">Hold</option>\
@ -143,10 +143,10 @@ TABS.failsafe.initialize = function (callback, scrollPosition) {
fullChannels_e.append('\ fullChannels_e.append('\
<div class="number">\ <div class="number">\
<div class="channelauxiliary">\ <div class="channelauxiliary">\
<span class="channelname">' + chrome.i18n.getMessage("controlAxisAux" + (aux_index++)) + '</span>\ <span class="channelname">' + i18n.getMessage("controlAxisAux" + (aux_index++)) + '</span>\
' + auxAssignment[aux_assignment_index++] + '\ ' + auxAssignment[aux_assignment_index++] + '\
</div>\ </div>\
<div class="cf_tip channelsetting" title="' + chrome.i18n.getMessage("failsafeChannelFallbackSettingsHold") + '">\ <div class="cf_tip channelsetting" title="' + i18n.getMessage("failsafeChannelFallbackSettingsHold") + '">\
<select class="aux_set" id="' + i + '">\ <select class="aux_set" id="' + i + '">\
<option value="1">Hold</option>\ <option value="1">Hold</option>\
<option value="2">Set</option>\ <option value="2">Set</option>\
@ -303,7 +303,7 @@ TABS.failsafe.initialize = function (callback, scrollPosition) {
} }
function reboot() { function reboot() {
GUI.log(chrome.i18n.getMessage('configurationEepromSaved')); GUI.log(i18n.getMessage('configurationEepromSaved'));
GUI.tab_switch_cleanup(function() { GUI.tab_switch_cleanup(function() {
MSP.send_message(MSPCodes.MSP_SET_REBOOT, false, false, reinitialize); MSP.send_message(MSPCodes.MSP_SET_REBOOT, false, false, reinitialize);
@ -311,7 +311,7 @@ TABS.failsafe.initialize = function (callback, scrollPosition) {
} }
function reinitialize() { function reinitialize() {
GUI.log(chrome.i18n.getMessage('deviceRebooting')); GUI.log(i18n.getMessage('deviceRebooting'));
if (BOARD.find_board_definition(CONFIG.boardIdentifier).vcp) { // VCP-based flight controls may crash old drivers, we catch and reconnect if (BOARD.find_board_definition(CONFIG.boardIdentifier).vcp) { // VCP-based flight controls may crash old drivers, we catch and reconnect
$('a.connect').click(); $('a.connect').click();
@ -322,7 +322,7 @@ TABS.failsafe.initialize = function (callback, scrollPosition) {
GUI.timeout_add('waiting_for_bootup', function waiting_for_bootup() { GUI.timeout_add('waiting_for_bootup', function waiting_for_bootup() {
MSP.send_message(MSPCodes.MSP_STATUS, false, false, function() { MSP.send_message(MSPCodes.MSP_STATUS, false, false, function() {
GUI.log(chrome.i18n.getMessage('deviceReady')); GUI.log(i18n.getMessage('deviceReady'));
TABS.failsafe.initialize(false, $('#content').scrollTop()); TABS.failsafe.initialize(false, $('#content').scrollTop());
}); });
},1500); // 1500 ms seems to be just the right amount of delay to prevent data request timeouts },1500); // 1500 ms seems to be just the right amount of delay to prevent data request timeouts
@ -333,7 +333,7 @@ TABS.failsafe.initialize = function (callback, scrollPosition) {
}); });
// translate to user-selected language // translate to user-selected language
localize(); i18n.localizePage();
// status data pulled via separate timer with static speed // status data pulled via separate timer with static speed
GUI.interval_add('status_pull', function status_pull() { GUI.interval_add('status_pull', function status_pull() {

View file

@ -37,10 +37,10 @@ TABS.firmware_flasher.initialize = function (callback) {
} else { } else {
var boards_e = $('select[name="board"]').empty(); var boards_e = $('select[name="board"]').empty();
var showDevReleases = ($('input.show_development_releases').is(':checked')); var showDevReleases = ($('input.show_development_releases').is(':checked'));
boards_e.append($("<option value='0'>{0}</option>".format(chrome.i18n.getMessage('firmwareFlasherOptionLabelSelectBoard')))); boards_e.append($("<option value='0'>{0}</option>".format(i18n.getMessage('firmwareFlasherOptionLabelSelectBoard'))));
var versions_e = $('select[name="firmware_version"]').empty(); var versions_e = $('select[name="firmware_version"]').empty();
versions_e.append($("<option value='0'>{0}</option>".format(chrome.i18n.getMessage('firmwareFlasherOptionLabelSelectFirmwareVersion')))); versions_e.append($("<option value='0'>{0}</option>".format(i18n.getMessage('firmwareFlasherOptionLabelSelectFirmwareVersion'))));
var releases = {}; var releases = {};
var sortedTargets = []; var sortedTargets = [];
@ -128,7 +128,7 @@ TABS.firmware_flasher.initialize = function (callback) {
}; };
// translate to user-selected language // translate to user-selected language
localize(); i18n.localizePage();
// bind events // bind events
$('input.show_development_releases').click(function () { $('input.show_development_releases').click(function () {
@ -141,16 +141,16 @@ TABS.firmware_flasher.initialize = function (callback) {
if (!GUI.connect_lock) { if (!GUI.connect_lock) {
$('.progress').val(0).removeClass('valid invalid'); $('.progress').val(0).removeClass('valid invalid');
$('span.progressLabel').text(chrome.i18n.getMessage('firmwareFlasherLoadFirmwareFile')); $('span.progressLabel').text(i18n.getMessage('firmwareFlasherLoadFirmwareFile'));
$('div.git_info').slideUp(); $('div.git_info').slideUp();
$('div.release_info').slideUp(); $('div.release_info').slideUp();
$('a.flash_firmware').addClass('disabled'); $('a.flash_firmware').addClass('disabled');
var versions_e = $('select[name="firmware_version"]').empty(); var versions_e = $('select[name="firmware_version"]').empty();
if(target == 0) { if(target == 0) {
versions_e.append($("<option value='0'>{0}</option>".format(chrome.i18n.getMessage('firmwareFlasherOptionLabelSelectFirmwareVersion')))); versions_e.append($("<option value='0'>{0}</option>".format(i18n.getMessage('firmwareFlasherOptionLabelSelectFirmwareVersion'))));
} else { } else {
versions_e.append($("<option value='0'>{0} {1}</option>".format(chrome.i18n.getMessage('firmwareFlasherOptionLabelSelectFirmwareVersionFor'), target))); versions_e.append($("<option value='0'>{0} {1}</option>".format(i18n.getMessage('firmwareFlasherOptionLabelSelectFirmwareVersionFor'), target)));
} }
TABS.firmware_flasher.releases[target].forEach(function(descriptor) { TABS.firmware_flasher.releases[target].forEach(function(descriptor) {
@ -208,7 +208,7 @@ TABS.firmware_flasher.initialize = function (callback) {
$('span.progressLabel').text('Loaded Local Firmware: (' + parsed_hex.bytes_total + ' bytes)'); $('span.progressLabel').text('Loaded Local Firmware: (' + parsed_hex.bytes_total + ' bytes)');
} else { } else {
$('span.progressLabel').text(chrome.i18n.getMessage('firmwareFlasherHexCorrupted')); $('span.progressLabel').text(i18n.getMessage('firmwareFlasherHexCorrupted'));
} }
}); });
} }
@ -237,7 +237,7 @@ TABS.firmware_flasher.initialize = function (callback) {
$('a.load_remote_file').click(function (evt) { $('a.load_remote_file').click(function (evt) {
if ($('select[name="firmware_version"]').val() == "0") { if ($('select[name="firmware_version"]').val() == "0") {
GUI.log(chrome.i18n.getMessage('firmwareFlasherNoFirmwareSelected')); GUI.log(i18n.getMessage('firmwareFlasherNoFirmwareSelected'));
return; return;
} }
@ -266,29 +266,29 @@ TABS.firmware_flasher.initialize = function (callback) {
$('div.release_info').slideDown(); $('div.release_info').slideDown();
} else { } else {
$('span.progressLabel').text(chrome.i18n.getMessage('firmwareFlasherHexCorrupted')); $('span.progressLabel').text(i18n.getMessage('firmwareFlasherHexCorrupted'));
} }
}); });
} }
function failed_to_load() { function failed_to_load() {
$('span.progressLabel').text(chrome.i18n.getMessage('firmwareFlasherFailedToLoadOnlineFirmware')); $('span.progressLabel').text(i18n.getMessage('firmwareFlasherFailedToLoadOnlineFirmware'));
$('a.flash_firmware').addClass('disabled'); $('a.flash_firmware').addClass('disabled');
$("a.load_remote_file").removeClass('disabled'); $("a.load_remote_file").removeClass('disabled');
$("a.load_remote_file").text(chrome.i18n.getMessage('firmwareFlasherButtonLoadOnline')); $("a.load_remote_file").text(i18n.getMessage('firmwareFlasherButtonLoadOnline'));
} }
var summary = $('select[name="firmware_version"] option:selected').data('summary'); var summary = $('select[name="firmware_version"] option:selected').data('summary');
if (summary) { // undefined while list is loading or while running offline if (summary) { // undefined while list is loading or while running offline
$("a.load_remote_file").text(chrome.i18n.getMessage('firmwareFlasherButtonDownloading')); $("a.load_remote_file").text(i18n.getMessage('firmwareFlasherButtonDownloading'));
$("a.load_remote_file").addClass('disabled'); $("a.load_remote_file").addClass('disabled');
$.get(summary.url, function (data) { $.get(summary.url, function (data) {
process_hex(data, summary); process_hex(data, summary);
$("a.load_remote_file").removeClass('disabled'); $("a.load_remote_file").removeClass('disabled');
$("a.load_remote_file").text(chrome.i18n.getMessage('firmwareFlasherButtonLoadOnline')); $("a.load_remote_file").text(i18n.getMessage('firmwareFlasherButtonLoadOnline'));
}).fail(failed_to_load); }).fail(failed_to_load);
} else { } else {
$('span.progressLabel').text(chrome.i18n.getMessage('firmwareFlasherFailedToLoadOnlineFirmware')); $('span.progressLabel').text(i18n.getMessage('firmwareFlasherFailedToLoadOnlineFirmware'));
} }
}); });
@ -322,13 +322,13 @@ TABS.firmware_flasher.initialize = function (callback) {
STM32.connect(port, baud, parsed_hex, options); STM32.connect(port, baud, parsed_hex, options);
} else { } else {
console.log('Please select valid serial port'); console.log('Please select valid serial port');
GUI.log(chrome.i18n.getMessage('firmwareFlasherNoValidPort')); GUI.log(i18n.getMessage('firmwareFlasherNoValidPort'));
} }
} else { } else {
STM32DFU.connect(usbDevices.STM32DFU, parsed_hex, options); STM32DFU.connect(usbDevices.STM32DFU, parsed_hex, options);
} }
} else { } else {
$('span.progressLabel').text(chrome.i18n.getMessage('firmwareFlasherFirmwareNotLoaded')); $('span.progressLabel').text(i18n.getMessage('firmwareFlasherFirmwareNotLoaded'));
} }
} }
} }
@ -373,7 +373,7 @@ TABS.firmware_flasher.initialize = function (callback) {
}); });
} else { } else {
console.log('You don\'t have write permissions for this file, sorry.'); console.log('You don\'t have write permissions for this file, sorry.');
GUI.log(chrome.i18n.getMessage('firmwareFlasherWritePermissions')); GUI.log(i18n.getMessage('firmwareFlasherWritePermissions'));
} }
}); });
}); });
@ -442,7 +442,7 @@ TABS.firmware_flasher.initialize = function (callback) {
var port = result[0]; var port = result[0];
if (!GUI.connect_lock) { if (!GUI.connect_lock) {
GUI.log(chrome.i18n.getMessage('firmwareFlasherFlashTrigger', [port])); GUI.log(i18n.getMessage('firmwareFlasherFlashTrigger', [port]));
console.log('Detected: ' + port + ' - triggering flash on connect'); console.log('Detected: ' + port + ' - triggering flash on connect');
// Trigger regular Flashing sequence // Trigger regular Flashing sequence
@ -450,7 +450,7 @@ TABS.firmware_flasher.initialize = function (callback) {
$('a.flash_firmware').click(); $('a.flash_firmware').click();
}, 100); // timeout so bus have time to initialize after being detected by the system }, 100); // timeout so bus have time to initialize after being detected by the system
} else { } else {
GUI.log(chrome.i18n.getMessage('firmwareFlasherPreviousDevice', [port])); GUI.log(i18n.getMessage('firmwareFlasherPreviousDevice', [port]));
} }
// Since current port_detected request was consumed, create new one // Since current port_detected request was consumed, create new one

View file

@ -28,7 +28,7 @@ TABS.gps.initialize = function (callback) {
function process_html() { function process_html() {
// translate to user-selected languageconsole.log('Online'); // translate to user-selected languageconsole.log('Online');
localize(); i18n.localizePage();
function get_raw_gps_data() { function get_raw_gps_data() {
MSP.send_message(MSPCodes.MSP_RAW_GPS, false, false, get_comp_gps_data); MSP.send_message(MSPCodes.MSP_RAW_GPS, false, false, get_comp_gps_data);
@ -47,7 +47,7 @@ TABS.gps.initialize = function (callback) {
var lon = GPS_DATA.lon / 10000000; var lon = GPS_DATA.lon / 10000000;
var url = 'https://maps.google.com/?q=' + lat + ',' + lon; var url = 'https://maps.google.com/?q=' + lat + ',' + lon;
$('.GPS_info td.fix').html((GPS_DATA.fix) ? chrome.i18n.getMessage('gpsFixTrue') : chrome.i18n.getMessage('gpsFixFalse')); $('.GPS_info td.fix').html((GPS_DATA.fix) ? i18n.getMessage('gpsFixTrue') : i18n.getMessage('gpsFixFalse'));
$('.GPS_info td.alt').text((GPS_DATA.alt / 10) + ' m'); $('.GPS_info td.alt').text((GPS_DATA.alt / 10) + ' m');
$('.GPS_info td.lat a').prop('href', url).text(lat.toFixed(4) + ' deg'); $('.GPS_info td.lat a').prop('href', url).text(lat.toFixed(4) + ' deg');
$('.GPS_info td.lon a').prop('href', url).text(lon.toFixed(4) + ' deg'); $('.GPS_info td.lon a').prop('href', url).text(lon.toFixed(4) + ' deg');

View file

@ -9,7 +9,7 @@ TABS.help.initialize = function (callback) {
} }
$('#content').load("./tabs/help.html", function () { $('#content').load("./tabs/help.html", function () {
localize(); i18n.localizePage();
GUI.content_ready(callback); GUI.content_ready(callback);
}); });

View file

@ -10,7 +10,7 @@ TABS.landing.initialize = function (callback) {
$('#content').load("./tabs/landing.html", function () { $('#content').load("./tabs/landing.html", function () {
// translate to user-selected language // translate to user-selected language
localize(); i18n.localizePage();
// load changelog content // load changelog content
$('#changelog .log').load('./changelog.html'); $('#changelog .log').load('./changelog.html');
@ -28,7 +28,7 @@ TABS.landing.initialize = function (callback) {
$("#content").addClass('log_open'); $("#content").addClass('log_open');
state = true; state = true;
} }
$(this).text(state ? chrome.i18n.getMessage('close') : chrome.i18n.getMessage('defaultChangelogAction')); $(this).text(state ? i18n.getMessage('close') : i18n.getMessage('defaultChangelogAction'));
$(this).data('state2', state); $(this).data('state2', state);
}); });

View file

@ -67,7 +67,7 @@ TABS.led_strip.initialize = function (callback, scrollPosition) {
function process_html() { function process_html() {
localize(); i18n.localizePage();
// Build Grid // Build Grid
var theHTML = []; var theHTML = [];
@ -591,7 +591,7 @@ TABS.led_strip.initialize = function (callback, scrollPosition) {
function save_to_eeprom() { function save_to_eeprom() {
MSP.send_message(MSPCodes.MSP_EEPROM_WRITE, false, false, function() { MSP.send_message(MSPCodes.MSP_EEPROM_WRITE, false, false, function() {
GUI.log(chrome.i18n.getMessage('ledStripEepromSaved')); GUI.log(i18n.getMessage('ledStripEepromSaved'));
}); });
} }

View file

@ -27,7 +27,7 @@ TABS.logging.initialize = function (callback) {
function process_html() { function process_html() {
// translate to user-selected language // translate to user-selected language
localize(); i18n.localizePage();
// UI hooks // UI hooks
$('a.log_file').click(prepare_file); $('a.log_file').click(prepare_file);
@ -80,23 +80,23 @@ TABS.logging.initialize = function (callback) {
}, 1000); }, 1000);
$('.speed').prop('disabled', true); $('.speed').prop('disabled', true);
$(this).text(chrome.i18n.getMessage('loggingStop')); $(this).text(i18n.getMessage('loggingStop'));
$(this).data("clicks", !clicks); $(this).data("clicks", !clicks);
} else { } else {
GUI.log(chrome.i18n.getMessage('loggingErrorOneProperty')); GUI.log(i18n.getMessage('loggingErrorOneProperty'));
} }
} else { } else {
GUI.interval_kill_all(); GUI.interval_kill_all();
$('.speed').prop('disabled', false); $('.speed').prop('disabled', false);
$(this).text(chrome.i18n.getMessage('loggingStart')); $(this).text(i18n.getMessage('loggingStart'));
$(this).data("clicks", !clicks); $(this).data("clicks", !clicks);
} }
} else { } else {
GUI.log(chrome.i18n.getMessage('loggingErrorLogFile')); GUI.log(i18n.getMessage('loggingErrorLogFile'));
} }
} else { } else {
GUI.log(chrome.i18n.getMessage('loggingErrorNotConnected')); GUI.log(i18n.getMessage('loggingErrorNotConnected'));
} }
}); });
@ -292,7 +292,7 @@ TABS.logging.initialize = function (callback) {
if (retaining) { if (retaining) {
chrome.fileSystem.getDisplayPath(fileEntry, function (path) { chrome.fileSystem.getDisplayPath(fileEntry, function (path) {
GUI.log(chrome.i18n.getMessage('loggingAutomaticallyRetained', [path])); GUI.log(i18n.getMessage('loggingAutomaticallyRetained', [path]));
}); });
} }

View file

@ -198,7 +198,7 @@ TABS.motors.initialize = function (callback) {
function process_html() { function process_html() {
// translate to user-selected language // translate to user-selected language
localize(); i18n.localizePage();
update_arm_status(); update_arm_status();

View file

@ -46,7 +46,7 @@ TABS.onboard_logging.initialize = function (callback) {
} }
function reboot() { function reboot() {
GUI.log(chrome.i18n.getMessage('configurationEepromSaved')); GUI.log(i18n.getMessage('configurationEepromSaved'));
GUI.tab_switch_cleanup(function() { GUI.tab_switch_cleanup(function() {
MSP.send_message(MSPCodes.MSP_SET_REBOOT, false, false, reinitialize); MSP.send_message(MSPCodes.MSP_SET_REBOOT, false, false, reinitialize);
@ -54,7 +54,7 @@ TABS.onboard_logging.initialize = function (callback) {
} }
function reinitialize() { function reinitialize() {
GUI.log(chrome.i18n.getMessage('deviceRebooting')); GUI.log(i18n.getMessage('deviceRebooting'));
if (BOARD.find_board_definition(CONFIG.boardIdentifier).vcp) { // VCP-based flight controls may crash old drivers, we catch and reconnect if (BOARD.find_board_definition(CONFIG.boardIdentifier).vcp) { // VCP-based flight controls may crash old drivers, we catch and reconnect
$('a.connect').click(); $('a.connect').click();
@ -65,7 +65,7 @@ TABS.onboard_logging.initialize = function (callback) {
GUI.timeout_add('waiting_for_bootup', function waiting_for_bootup() { GUI.timeout_add('waiting_for_bootup', function waiting_for_bootup() {
MSP.send_message(MSPCodes.MSP_STATUS, false, false, function() { MSP.send_message(MSPCodes.MSP_STATUS, false, false, function() {
GUI.log(chrome.i18n.getMessage('deviceReady')); GUI.log(i18n.getMessage('deviceReady'));
TABS.onboard_logging.initialize(false, $('#content').scrollTop()); TABS.onboard_logging.initialize(false, $('#content').scrollTop());
}); });
},1500); // 1500 ms seems to be just the right amount of delay to prevent data request timeouts },1500); // 1500 ms seems to be just the right amount of delay to prevent data request timeouts
@ -75,7 +75,7 @@ TABS.onboard_logging.initialize = function (callback) {
function load_html() { function load_html() {
$('#content').load("./tabs/onboard_logging.html", function() { $('#content').load("./tabs/onboard_logging.html", function() {
// translate to user-selected language // translate to user-selected language
localize(); i18n.localizePage();
var var
dataflashPresent = DATAFLASH.totalSize > 0, dataflashPresent = DATAFLASH.totalSize > 0,
@ -155,21 +155,21 @@ TABS.onboard_logging.initialize = function (callback) {
deviceSelect.empty(); deviceSelect.empty();
if (semver.gte(CONFIG.apiVersion, "1.33.0")) { if (semver.gte(CONFIG.apiVersion, "1.33.0")) {
deviceSelect.append('<option value="0">' + chrome.i18n.getMessage('blackboxLoggingNone') + '</option>'); deviceSelect.append('<option value="0">' + i18n.getMessage('blackboxLoggingNone') + '</option>');
if (DATAFLASH.supported) { if (DATAFLASH.supported) {
deviceSelect.append('<option value="1">' + chrome.i18n.getMessage('blackboxLoggingFlash') + '</option>'); deviceSelect.append('<option value="1">' + i18n.getMessage('blackboxLoggingFlash') + '</option>');
} }
if (SDCARD.supported) { if (SDCARD.supported) {
deviceSelect.append('<option value="2">' + chrome.i18n.getMessage('blackboxLoggingSdCard') + '</option>'); deviceSelect.append('<option value="2">' + i18n.getMessage('blackboxLoggingSdCard') + '</option>');
} }
deviceSelect.append('<option value="3">' + chrome.i18n.getMessage('blackboxLoggingSerial') + '</option>'); deviceSelect.append('<option value="3">' + i18n.getMessage('blackboxLoggingSerial') + '</option>');
} else { } else {
deviceSelect.append('<option value="0">' + chrome.i18n.getMessage('blackboxLoggingSerial') + '</option>'); deviceSelect.append('<option value="0">' + i18n.getMessage('blackboxLoggingSerial') + '</option>');
if (DATAFLASH.ready) { if (DATAFLASH.ready) {
deviceSelect.append('<option value="1">' + chrome.i18n.getMessage('blackboxLoggingFlash') + '</option>'); deviceSelect.append('<option value="1">' + i18n.getMessage('blackboxLoggingFlash') + '</option>');
} }
if (SDCARD.supported) { if (SDCARD.supported) {
deviceSelect.append('<option value="2">' + chrome.i18n.getMessage('blackboxLoggingSdCard') + '</option>'); deviceSelect.append('<option value="2">' + i18n.getMessage('blackboxLoggingSdCard') + '</option>');
} }
} }
@ -276,11 +276,11 @@ TABS.onboard_logging.initialize = function (callback) {
} }
function update_html() { function update_html() {
update_bar_width($(".tab-onboard_logging .dataflash-used"), DATAFLASH.usedSize, DATAFLASH.totalSize, chrome.i18n.getMessage('dataflashUsedSpace'), false); update_bar_width($(".tab-onboard_logging .dataflash-used"), DATAFLASH.usedSize, DATAFLASH.totalSize, i18n.getMessage('dataflashUsedSpace'), false);
update_bar_width($(".tab-onboard_logging .dataflash-free"), DATAFLASH.totalSize - DATAFLASH.usedSize, DATAFLASH.totalSize, chrome.i18n.getMessage('dataflashFreeSpace'), false); update_bar_width($(".tab-onboard_logging .dataflash-free"), DATAFLASH.totalSize - DATAFLASH.usedSize, DATAFLASH.totalSize, i18n.getMessage('dataflashFreeSpace'), false);
update_bar_width($(".tab-onboard_logging .sdcard-other"), SDCARD.totalSizeKB - SDCARD.freeSizeKB, SDCARD.totalSizeKB, chrome.i18n.getMessage('dataflashUnavSpace'), true); update_bar_width($(".tab-onboard_logging .sdcard-other"), SDCARD.totalSizeKB - SDCARD.freeSizeKB, SDCARD.totalSizeKB, i18n.getMessage('dataflashUnavSpace'), true);
update_bar_width($(".tab-onboard_logging .sdcard-free"), SDCARD.freeSizeKB, SDCARD.totalSizeKB, chrome.i18n.getMessage('dataflashLogsSpace'), true); update_bar_width($(".tab-onboard_logging .sdcard-free"), SDCARD.freeSizeKB, SDCARD.totalSizeKB, i18n.getMessage('dataflashLogsSpace'), true);
$(".btn a.erase-flash, .btn a.save-flash").toggleClass("disabled", DATAFLASH.usedSize === 0); $(".btn a.erase-flash, .btn a.save-flash").toggleClass("disabled", DATAFLASH.usedSize === 0);
@ -291,22 +291,22 @@ TABS.onboard_logging.initialize = function (callback) {
switch (SDCARD.state) { switch (SDCARD.state) {
case MSP.SDCARD_STATE_NOT_PRESENT: case MSP.SDCARD_STATE_NOT_PRESENT:
$(".sdcard-status").text(chrome.i18n.getMessage('sdcardStatusNoCard')); $(".sdcard-status").text(i18n.getMessage('sdcardStatusNoCard'));
break; break;
case MSP.SDCARD_STATE_FATAL: case MSP.SDCARD_STATE_FATAL:
$(".sdcard-status").html(chrome.i18n.getMessage('sdcardStatusReboot')); $(".sdcard-status").html(i18n.getMessage('sdcardStatusReboot'));
break; break;
case MSP.SDCARD_STATE_READY: case MSP.SDCARD_STATE_READY:
$(".sdcard-status").text(chrome.i18n.getMessage('sdcardStatusReady')); $(".sdcard-status").text(i18n.getMessage('sdcardStatusReady'));
break; break;
case MSP.SDCARD_STATE_CARD_INIT: case MSP.SDCARD_STATE_CARD_INIT:
$(".sdcard-status").text(chrome.i18n.getMessage('sdcardStatusStarting')); $(".sdcard-status").text(i18n.getMessage('sdcardStatusStarting'));
break; break;
case MSP.SDCARD_STATE_FS_INIT: case MSP.SDCARD_STATE_FS_INIT:
$(".sdcard-status").text(chrome.i18n.getMessage('sdcardStatusFileSystem')); $(".sdcard-status").text(i18n.getMessage('sdcardStatusFileSystem'));
break; break;
default: default:
$(".sdcard-status").text(chrome.i18n.getMessage('sdcardStatusUnknown',[SDCARD.state])); $(".sdcard-status").text(i18n.getMessage('sdcardStatusUnknown',[SDCARD.state]));
} }
if (SDCARD.supported && !sdcardTimer) { if (SDCARD.supported && !sdcardTimer) {
@ -440,7 +440,7 @@ TABS.onboard_logging.initialize = function (callback) {
console.error(error.message); console.error(error.message);
if (error.message !== "User cancelled") { if (error.message !== "User cancelled") {
GUI.log(chrome.i18n.getMessage('dataflashFileWriteFailed')); GUI.log(i18n.getMessage('dataflashFileWriteFailed'));
} }
return; return;
} }
@ -461,7 +461,7 @@ TABS.onboard_logging.initialize = function (callback) {
}, function (e) { }, function (e) {
// File is not readable or does not exist! // File is not readable or does not exist!
console.error(e); console.error(e);
GUI.log(chrome.i18n.getMessage('dataflashFileWriteFailed')); GUI.log(i18n.getMessage('dataflashFileWriteFailed'));
}); });
}); });
} }

View file

@ -1227,7 +1227,7 @@ TABS.osd.initialize = function (callback) {
fontbuttons.append($('<button>', { class: "load_font_file", i18n: "osdSetupOpenFont" })); fontbuttons.append($('<button>', { class: "load_font_file", i18n: "osdSetupOpenFont" }));
// translate to user-selected language // translate to user-selected language
localize(); i18n.localizePage();
// Open modal window // Open modal window
OSD.GUI.jbox = new jBox('Modal', { OSD.GUI.jbox = new jBox('Modal', {
@ -1240,13 +1240,13 @@ TABS.osd.initialize = function (callback) {
content: $('#fontmanagercontent') content: $('#fontmanagercontent')
}); });
$('.elements-container div.cf_tip').attr('title', chrome.i18n.getMessage('osdSectionHelpElements')); $('.elements-container div.cf_tip').attr('title', i18n.getMessage('osdSectionHelpElements'));
$('.videomode-container div.cf_tip').attr('title', chrome.i18n.getMessage('osdSectionHelpVideoMode')); $('.videomode-container div.cf_tip').attr('title', i18n.getMessage('osdSectionHelpVideoMode'));
$('.units-container div.cf_tip').attr('title', chrome.i18n.getMessage('osdSectionHelpUnits')); $('.units-container div.cf_tip').attr('title', i18n.getMessage('osdSectionHelpUnits'));
$('.timers-container div.cf_tip').attr('title', chrome.i18n.getMessage('osdSectionHelpTimers')); $('.timers-container div.cf_tip').attr('title', i18n.getMessage('osdSectionHelpTimers'));
$('.alarms-container div.cf_tip').attr('title', chrome.i18n.getMessage('osdSectionHelpAlarms')); $('.alarms-container div.cf_tip').attr('title', i18n.getMessage('osdSectionHelpAlarms'));
$('.stats-container div.cf_tip').attr('title', chrome.i18n.getMessage('osdSectionHelpStats')); $('.stats-container div.cf_tip').attr('title', i18n.getMessage('osdSectionHelpStats'));
$('.warnings-container div.cf_tip').attr('title', chrome.i18n.getMessage('osdSectionHelpWarnings')); $('.warnings-container div.cf_tip').attr('title', i18n.getMessage('osdSectionHelpWarnings'));
// 2 way binding... sorta // 2 way binding... sorta
function updateOsdView() { function updateOsdView() {
@ -1348,8 +1348,8 @@ TABS.osd.initialize = function (callback) {
// Source // Source
var sourceTimerTableData = $('<td class="osd_tip"></td>'); var sourceTimerTableData = $('<td class="osd_tip"></td>');
sourceTimerTableData.attr('title', chrome.i18n.getMessage('osdTimerSourceTooltip')); sourceTimerTableData.attr('title', i18n.getMessage('osdTimerSourceTooltip'));
sourceTimerTableData.append('<label for="timerSource_' + tim.index + '" class="char-label">' + chrome.i18n.getMessage('osdTimerSource') + '</label>'); sourceTimerTableData.append('<label for="timerSource_' + tim.index + '" class="char-label">' + i18n.getMessage('osdTimerSource') + '</label>');
var src = $('<select class="timer-option" id="timerSource_' + tim.index + '"></select>'); var src = $('<select class="timer-option" id="timerSource_' + tim.index + '"></select>');
OSD.constants.TIMER_TYPES.forEach(function(e, i) { OSD.constants.TIMER_TYPES.forEach(function(e, i) {
src.append('<option value="' + i + '">' + e + '</option>'); src.append('<option value="' + i + '">' + e + '</option>');
@ -1370,8 +1370,8 @@ TABS.osd.initialize = function (callback) {
timerTableRow = $('<tr />'); timerTableRow = $('<tr />');
timerTable.append(timerTableRow); timerTable.append(timerTableRow);
var precisionTimerTableData = $('<td class="osd_tip"></td>'); var precisionTimerTableData = $('<td class="osd_tip"></td>');
precisionTimerTableData.attr('title', chrome.i18n.getMessage('osdTimerPrecisionTooltip')); precisionTimerTableData.attr('title', i18n.getMessage('osdTimerPrecisionTooltip'));
precisionTimerTableData.append('<label for="timerPrec_' + tim.index + '" class="char-label">' + chrome.i18n.getMessage('osdTimerPrecision') + '</label>'); precisionTimerTableData.append('<label for="timerPrec_' + tim.index + '" class="char-label">' + i18n.getMessage('osdTimerPrecision') + '</label>');
var precision = $('<select class="timer-option osd_tip" id="timerPrec_' + tim.index + '"></select>'); var precision = $('<select class="timer-option osd_tip" id="timerPrec_' + tim.index + '"></select>');
OSD.constants.TIMER_PRECISION.forEach(function(e, i) { OSD.constants.TIMER_PRECISION.forEach(function(e, i) {
precision.append('<option value="' + i + '">' + e + '</option>'); precision.append('<option value="' + i + '">' + e + '</option>');
@ -1393,8 +1393,8 @@ TABS.osd.initialize = function (callback) {
timerTableRow = $('<tr />'); timerTableRow = $('<tr />');
timerTable.append(timerTableRow); timerTable.append(timerTableRow);
var alarmTimerTableData = $('<td class="osd_tip"></td>'); var alarmTimerTableData = $('<td class="osd_tip"></td>');
alarmTimerTableData.attr('title', chrome.i18n.getMessage('osdTimerAlarmTooltip')); alarmTimerTableData.attr('title', i18n.getMessage('osdTimerAlarmTooltip'));
alarmTimerTableData.append('<label for="timerAlarm_' + tim.index + '" class="char-label">' + chrome.i18n.getMessage('osdTimerAlarm') + '</label>'); alarmTimerTableData.append('<label for="timerAlarm_' + tim.index + '" class="char-label">' + i18n.getMessage('osdTimerAlarm') + '</label>');
var alarm = $('<input class="timer-option osd_tip" name="alarm" type="number" min=0 id="timerAlarm_' + tim.index + '"/>'); var alarm = $('<input class="timer-option osd_tip" name="alarm" type="number" min=0 id="timerAlarm_' + tim.index + '"/>');
alarm[0].value = tim.alarm; alarm[0].value = tim.alarm;
alarm.blur(function(e) { alarm.blur(function(e) {
@ -1422,7 +1422,7 @@ TABS.osd.initialize = function (callback) {
var $field = $('<div class="switchable-field field-'+field.index+'"/>'); var $field = $('<div class="switchable-field field-'+field.index+'"/>');
var desc = null; var desc = null;
if (field.desc && field.desc.length) { if (field.desc && field.desc.length) {
desc = chrome.i18n.getMessage(field.desc); desc = i18n.getMessage(field.desc);
} }
if (desc && desc.length) { if (desc && desc.length) {
$field[0].classList.add('osd_tip'); $field[0].classList.add('osd_tip');
@ -1456,7 +1456,7 @@ TABS.osd.initialize = function (callback) {
var $field = $('<div class="switchable-field field-'+field.index+'"/>'); var $field = $('<div class="switchable-field field-'+field.index+'"/>');
var desc = null; var desc = null;
if (field.desc && field.desc.length) { if (field.desc && field.desc.length) {
desc = chrome.i18n.getMessage(field.desc); desc = i18n.getMessage(field.desc);
} }
if (desc && desc.length) { if (desc && desc.length) {
$field[0].classList.add('osd_tip'); $field[0].classList.add('osd_tip');
@ -1501,7 +1501,7 @@ TABS.osd.initialize = function (callback) {
var $field = $('<div class="switchable-field field-'+field.index+'"/>'); var $field = $('<div class="switchable-field field-'+field.index+'"/>');
var desc = null; var desc = null;
if (field.desc && field.desc.length) { if (field.desc && field.desc.length) {
desc = chrome.i18n.getMessage(field.desc); desc = i18n.getMessage(field.desc);
} }
if (desc && desc.length) { if (desc && desc.length) {
$field[0].classList.add('osd_tip'); $field[0].classList.add('osd_tip');
@ -1678,7 +1678,7 @@ TABS.osd.initialize = function (callback) {
$('a.save').click(function() { $('a.save').click(function() {
var self = this; var self = this;
MSP.promise(MSPCodes.MSP_EEPROM_WRITE); MSP.promise(MSPCodes.MSP_EEPROM_WRITE);
GUI.log(chrome.i18n.getMessage('osdSettingsSaved')); GUI.log(i18n.getMessage('osdSettingsSaved'));
var oldText = $(this).text(); var oldText = $(this).text();
$(this).html("Saved"); $(this).html("Saved");
setTimeout(function () { setTimeout(function () {
@ -1786,7 +1786,7 @@ TABS.osd.initialize = function (callback) {
}); });
} else { } else {
console.log('You don\'t have write permissions for this file, sorry.'); console.log('You don\'t have write permissions for this file, sorry.');
GUI.log(chrome.i18n.getMessage('osdWritePermissions')); GUI.log(i18n.getMessage('osdWritePermissions'));
} }
}); });
}); });

View file

@ -225,9 +225,9 @@ TABS.pid_tuning.initialize = function (callback) {
if (semver.gte(CONFIG.apiVersion, "1.20.0") if (semver.gte(CONFIG.apiVersion, "1.20.0")
|| semver.gte(CONFIG.apiVersion, "1.16.0") && FEATURE_CONFIG.features.isEnabled('SUPEREXPO_RATES')) { || semver.gte(CONFIG.apiVersion, "1.16.0") && FEATURE_CONFIG.features.isEnabled('SUPEREXPO_RATES')) {
$('#pid-tuning .rate').text(chrome.i18n.getMessage("pidTuningSuperRate")); $('#pid-tuning .rate').text(i18n.getMessage("pidTuningSuperRate"));
} else { } else {
$('#pid-tuning .rate').text(chrome.i18n.getMessage("pidTuningRate")); $('#pid-tuning .rate').text(i18n.getMessage("pidTuningRate"));
} }
if (semver.gte(CONFIG.apiVersion, "1.20.0")) { if (semver.gte(CONFIG.apiVersion, "1.20.0")) {
@ -507,7 +507,7 @@ TABS.pid_tuning.initialize = function (callback) {
} }
// translate to user-selected language // translate to user-selected language
localize(); i18n.localizePage();
// Local cache of current rates // Local cache of current rates
self.currentRates = { self.currentRates = {
@ -563,11 +563,11 @@ TABS.pid_tuning.initialize = function (callback) {
if (!self.showAllPids) { if (!self.showAllPids) {
hideUnusedPids(); hideUnusedPids();
showAllButton.text(chrome.i18n.getMessage("pidTuningShowAllPids")); showAllButton.text(i18n.getMessage("pidTuningShowAllPids"));
} else { } else {
showAllPids(); showAllPids();
showAllButton.text(chrome.i18n.getMessage("pidTuningHideUnusedPids")); showAllButton.text(i18n.getMessage("pidTuningHideUnusedPids"));
} }
} }
@ -585,7 +585,7 @@ TABS.pid_tuning.initialize = function (callback) {
self.refresh(function () { self.refresh(function () {
self.updating = false; self.updating = false;
GUI.log(chrome.i18n.getMessage('pidTuningProfileReset')); GUI.log(i18n.getMessage('pidTuningProfileReset'));
}); });
}); });
}); });
@ -601,7 +601,7 @@ TABS.pid_tuning.initialize = function (callback) {
$('.tab-pid_tuning select[name="profile"]').prop('disabled', 'false'); $('.tab-pid_tuning select[name="profile"]').prop('disabled', 'false');
CONFIG.profile = self.currentProfile; CONFIG.profile = self.currentProfile;
GUI.log(chrome.i18n.getMessage('pidTuningLoadedProfile', [self.currentProfile + 1])); GUI.log(i18n.getMessage('pidTuningLoadedProfile', [self.currentProfile + 1]));
}); });
}); });
}); });
@ -618,7 +618,7 @@ TABS.pid_tuning.initialize = function (callback) {
$('.tab-pid_tuning select[name="rate_profile"]').prop('disabled', 'false'); $('.tab-pid_tuning select[name="rate_profile"]').prop('disabled', 'false');
CONFIG.rateProfile = self.currentRateProfile; CONFIG.rateProfile = self.currentRateProfile;
GUI.log(chrome.i18n.getMessage('pidTuningLoadedRateProfile', [self.currentRateProfile + 1])); GUI.log(i18n.getMessage('pidTuningLoadedRateProfile', [self.currentRateProfile + 1]));
}); });
}); });
}); });
@ -699,7 +699,7 @@ TABS.pid_tuning.initialize = function (callback) {
self.updatePidControllerParameters(); self.updatePidControllerParameters();
} else { } else {
GUI.log(chrome.i18n.getMessage('pidTuningUpgradeFirmwareToChangePidController', [CONFIG.apiVersion, CONFIGURATOR.pidControllerChangeMinApiVersion])); GUI.log(i18n.getMessage('pidTuningUpgradeFirmwareToChangePidController', [CONFIG.apiVersion, CONFIGURATOR.pidControllerChangeMinApiVersion]));
pidController_e.empty(); pidController_e.empty();
pidController_e.append('<option value="">Unknown</option>'); pidController_e.append('<option value="">Unknown</option>');
@ -854,7 +854,7 @@ TABS.pid_tuning.initialize = function (callback) {
$('a.refresh').click(function () { $('a.refresh').click(function () {
self.refresh(function () { self.refresh(function () {
GUI.log(chrome.i18n.getMessage('pidTuningDataRefreshed')); GUI.log(i18n.getMessage('pidTuningDataRefreshed'));
}); });
}); });
@ -982,7 +982,7 @@ TABS.pid_tuning.initialize = function (callback) {
self.updating = false; self.updating = false;
self.setDirty(false); self.setDirty(false);
GUI.log(chrome.i18n.getMessage('pidTuningEepromSaved')); GUI.log(i18n.getMessage('pidTuningEepromSaved'));
}); });
}); });
@ -1117,12 +1117,12 @@ TABS.pid_tuning.checkUpdateProfile = function (updateRateProfile) {
if (changedProfile || changedRateProfile) { if (changedProfile || changedRateProfile) {
self.refresh(function () { self.refresh(function () {
if (changedProfile) { if (changedProfile) {
GUI.log(chrome.i18n.getMessage('pidTuningReceivedProfile', [CONFIG.profile + 1])); GUI.log(i18n.getMessage('pidTuningReceivedProfile', [CONFIG.profile + 1]));
CONFIG.profile = self.currentProfile; CONFIG.profile = self.currentProfile;
} }
if (changedRateProfile) { if (changedRateProfile) {
GUI.log(chrome.i18n.getMessage('pidTuningReceivedRateProfile', [CONFIG.rateProfile + 1])); GUI.log(i18n.getMessage('pidTuningReceivedRateProfile', [CONFIG.rateProfile + 1]));
CONFIG.rateProfile = self.currentRateProfile CONFIG.rateProfile = self.currentRateProfile
} }
}); });

View file

@ -48,7 +48,7 @@ TABS.ports.initialize = function (callback, scrollPosition) {
} }
for (var i = 0; i < functionRules.length; i++) { for (var i = 0; i < functionRules.length; i++) {
functionRules[i].displayName = chrome.i18n.getMessage('portsFunction_' + functionRules[i].name); functionRules[i].displayName = i18n.getMessage('portsFunction_' + functionRules[i].name);
} }
var mspBaudRates = [ var mspBaudRates = [
@ -228,7 +228,7 @@ TABS.ports.initialize = function (callback, scrollPosition) {
if (select_e.size() == 0) { if (select_e.size() == 0) {
functions_e.prepend('<span class="function"><select name="' + selectElementName + '" /></span>'); functions_e.prepend('<span class="function"><select name="' + selectElementName + '" /></span>');
select_e = functions_e.find(selectElementSelector); select_e = functions_e.find(selectElementSelector);
var disabledText = chrome.i18n.getMessage('portsTelemetryDisabled'); var disabledText = i18n.getMessage('portsTelemetryDisabled');
select_e.append('<option value="">' + disabledText + '</option>'); select_e.append('<option value="">' + disabledText + '</option>');
} }
select_e.append('<option value="' + functionName + '">' + functionRule.displayName + '</option>'); select_e.append('<option value="' + functionName + '">' + functionRule.displayName + '</option>');
@ -246,7 +246,7 @@ TABS.ports.initialize = function (callback, scrollPosition) {
function on_tab_loaded_handler() { function on_tab_loaded_handler() {
localize(); i18n.localizePage();
update_ui(); update_ui();
@ -317,7 +317,7 @@ TABS.ports.initialize = function (callback, scrollPosition) {
} }
function on_saved_handler() { function on_saved_handler() {
GUI.log(chrome.i18n.getMessage('configurationEepromSaved')); GUI.log(i18n.getMessage('configurationEepromSaved'));
GUI.tab_switch_cleanup(function() { GUI.tab_switch_cleanup(function() {
MSP.send_message(MSPCodes.MSP_SET_REBOOT, false, false, on_reboot_success_handler); MSP.send_message(MSPCodes.MSP_SET_REBOOT, false, false, on_reboot_success_handler);
@ -325,7 +325,7 @@ TABS.ports.initialize = function (callback, scrollPosition) {
} }
function on_reboot_success_handler() { function on_reboot_success_handler() {
GUI.log(chrome.i18n.getMessage('deviceRebooting')); GUI.log(i18n.getMessage('deviceRebooting'));
if (BOARD.find_board_definition(CONFIG.boardIdentifier).vcp) { // VCP-based flight controls may crash old drivers, we catch and reconnect if (BOARD.find_board_definition(CONFIG.boardIdentifier).vcp) { // VCP-based flight controls may crash old drivers, we catch and reconnect
$('a.connect').click(); $('a.connect').click();
@ -335,7 +335,7 @@ TABS.ports.initialize = function (callback, scrollPosition) {
} else { } else {
GUI.timeout_add('waiting_for_bootup', function waiting_for_bootup() { GUI.timeout_add('waiting_for_bootup', function waiting_for_bootup() {
MSP.send_message(MSPCodes.MSP_STATUS, false, false, function() { MSP.send_message(MSPCodes.MSP_STATUS, false, false, function() {
GUI.log(chrome.i18n.getMessage('deviceReady')); GUI.log(i18n.getMessage('deviceReady'));
TABS.ports.initialize(false, $('#content').scrollTop()); TABS.ports.initialize(false, $('#content').scrollTop());
}); });
}, 1500); // seems to be just the right amount of delay to prevent data request timeouts }, 1500); // seems to be just the right amount of delay to prevent data request timeouts

View file

@ -80,7 +80,7 @@ TABS.power.initialize = function (callback) {
var meterElement = template.clone(); var meterElement = template.clone();
$(meterElement).attr('id', 'voltage-meter-' + index); $(meterElement).attr('id', 'voltage-meter-' + index);
var message = chrome.i18n.getMessage('powerVoltageId' + VOLTAGE_METERS[index].id); var message = i18n.getMessage('powerVoltageId' + VOLTAGE_METERS[index].id);
$(meterElement).find('.label').text(message) $(meterElement).find('.label').text(message)
destination.append(meterElement); destination.append(meterElement);
@ -130,7 +130,7 @@ TABS.power.initialize = function (callback) {
var meterElement = template.clone(); var meterElement = template.clone();
$(meterElement).attr('id', 'amperage-meter-' + index); $(meterElement).attr('id', 'amperage-meter-' + index);
var message = chrome.i18n.getMessage('powerAmperageId' + CURRENT_METERS[index].id); var message = i18n.getMessage('powerAmperageId' + CURRENT_METERS[index].id);
$(meterElement).find('.label').text(message) $(meterElement).find('.label').text(message)
destination.append(meterElement); destination.append(meterElement);
@ -189,12 +189,12 @@ TABS.power.initialize = function (callback) {
var haveFc = (semver.lt(CONFIG.apiVersion, "1.35.0") || (CONFIG.boardType == 0 || CONFIG.boardType == 2)); var haveFc = (semver.lt(CONFIG.apiVersion, "1.35.0") || (CONFIG.boardType == 0 || CONFIG.boardType == 2));
var batteryMeterTypes = [ var batteryMeterTypes = [
chrome.i18n.getMessage('powerBatteryVoltageMeterTypeNone'), i18n.getMessage('powerBatteryVoltageMeterTypeNone'),
chrome.i18n.getMessage('powerBatteryVoltageMeterTypeAdc'), i18n.getMessage('powerBatteryVoltageMeterTypeAdc'),
]; ];
if (haveFc) { if (haveFc) {
batteryMeterTypes.push(chrome.i18n.getMessage('powerBatteryVoltageMeterTypeEsc')); batteryMeterTypes.push(i18n.getMessage('powerBatteryVoltageMeterTypeEsc'));
} }
var batteryMeterType_e = $('select.batterymetersource'); var batteryMeterType_e = $('select.batterymetersource');
@ -205,16 +205,16 @@ TABS.power.initialize = function (callback) {
// fill current // fill current
var currentMeterTypes = [ var currentMeterTypes = [
chrome.i18n.getMessage('powerBatteryCurrentMeterTypeNone'), i18n.getMessage('powerBatteryCurrentMeterTypeNone'),
chrome.i18n.getMessage('powerBatteryCurrentMeterTypeAdc'), i18n.getMessage('powerBatteryCurrentMeterTypeAdc'),
]; ];
if (haveFc) { if (haveFc) {
currentMeterTypes.push(chrome.i18n.getMessage('powerBatteryCurrentMeterTypeVirtual')); currentMeterTypes.push(i18n.getMessage('powerBatteryCurrentMeterTypeVirtual'));
currentMeterTypes.push(chrome.i18n.getMessage('powerBatteryCurrentMeterTypeEsc')); currentMeterTypes.push(i18n.getMessage('powerBatteryCurrentMeterTypeEsc'));
if (semver.gte(CONFIG.apiVersion, "1.36.0")) { if (semver.gte(CONFIG.apiVersion, "1.36.0")) {
currentMeterTypes.push(chrome.i18n.getMessage('powerBatteryCurrentMeterTypeMsp')); currentMeterTypes.push(i18n.getMessage('powerBatteryCurrentMeterTypeMsp'));
} }
} }
@ -247,7 +247,7 @@ TABS.power.initialize = function (callback) {
for (var i = 0; i < VOLTAGE_METERS.length; i++) { for (var i = 0; i < VOLTAGE_METERS.length; i++) {
var elementName = '#voltage-meter-' + i + ' .value'; var elementName = '#voltage-meter-' + i + ' .value';
var element = $(elementName); var element = $(elementName);
element.text(chrome.i18n.getMessage('powerVoltageValue', [VOLTAGE_METERS[i].voltage])); element.text(i18n.getMessage('powerVoltageValue', [VOLTAGE_METERS[i].voltage]));
} }
}); });
@ -255,7 +255,7 @@ TABS.power.initialize = function (callback) {
for (var i = 0; i < CURRENT_METERS.length; i++) { for (var i = 0; i < CURRENT_METERS.length; i++) {
var elementName = '#amperage-meter-' + i + ' .value'; var elementName = '#amperage-meter-' + i + ' .value';
var element = $(elementName); var element = $(elementName);
element.text(chrome.i18n.getMessage('powerAmperageValue', [CURRENT_METERS[i].amperage.toFixed(2)])); element.text(i18n.getMessage('powerAmperageValue', [CURRENT_METERS[i].amperage.toFixed(2)]));
} }
}); });
@ -264,13 +264,13 @@ TABS.power.initialize = function (callback) {
var element; var element;
element = $(elementPrefix + '-connection-state .value'); element = $(elementPrefix + '-connection-state .value');
element.text(BATTERY_STATE.cellCount > 0 ? chrome.i18n.getMessage('powerBatteryConnectedValueYes', [BATTERY_STATE.cellCount]) : chrome.i18n.getMessage('powerBatteryConnectedValueNo')); element.text(BATTERY_STATE.cellCount > 0 ? i18n.getMessage('powerBatteryConnectedValueYes', [BATTERY_STATE.cellCount]) : i18n.getMessage('powerBatteryConnectedValueNo'));
element = $(elementPrefix + '-voltage .value'); element = $(elementPrefix + '-voltage .value');
element.text(chrome.i18n.getMessage('powerVoltageValue', [BATTERY_STATE.voltage])); element.text(i18n.getMessage('powerVoltageValue', [BATTERY_STATE.voltage]));
element = $(elementPrefix + '-mah-drawn .value'); element = $(elementPrefix + '-mah-drawn .value');
element.text(chrome.i18n.getMessage('powerMahValue', [BATTERY_STATE.mAhDrawn])); element.text(i18n.getMessage('powerMahValue', [BATTERY_STATE.mAhDrawn]));
element = $(elementPrefix + '-amperage .value'); element = $(elementPrefix + '-amperage .value');
element.text(chrome.i18n.getMessage('powerAmperageValue', [BATTERY_STATE.amperage])); element.text(i18n.getMessage('powerAmperageValue', [BATTERY_STATE.amperage]));
}); });
} }
@ -317,7 +317,7 @@ TABS.power.initialize = function (callback) {
} }
function save_completed() { function save_completed() {
GUI.log(chrome.i18n.getMessage('configurationEepromSaved')); GUI.log(i18n.getMessage('configurationEepromSaved'));
TABS.power.initialize(); TABS.power.initialize();
} }
@ -332,7 +332,7 @@ TABS.power.initialize = function (callback) {
initDisplay(); initDisplay();
// translate to user-selected language // translate to user-selected language
localize(); i18n.localizePage();
GUI.content_ready(callback); GUI.content_ready(callback);
} }

View file

@ -56,7 +56,7 @@ TABS.receiver.initialize = function (callback) {
function process_html() { function process_html() {
// translate to user-selected language // translate to user-selected language
localize(); i18n.localizePage();
chrome.storage.local.get('rx_refresh_rate', function (result) { chrome.storage.local.get('rx_refresh_rate', function (result) {
if (result.rx_refresh_rate) { if (result.rx_refresh_rate) {
@ -102,10 +102,10 @@ TABS.receiver.initialize = function (callback) {
// generate bars // generate bars
var bar_names = [ var bar_names = [
chrome.i18n.getMessage('controlAxisRoll'), i18n.getMessage('controlAxisRoll'),
chrome.i18n.getMessage('controlAxisPitch'), i18n.getMessage('controlAxisPitch'),
chrome.i18n.getMessage('controlAxisYaw'), i18n.getMessage('controlAxisYaw'),
chrome.i18n.getMessage('controlAxisThrottle') i18n.getMessage('controlAxisThrottle')
], ],
bar_container = $('.tab-receiver .bars'), bar_container = $('.tab-receiver .bars'),
aux_index = 1; aux_index = 1;
@ -117,7 +117,7 @@ TABS.receiver.initialize = function (callback) {
if (i < bar_names.length) { if (i < bar_names.length) {
name = bar_names[i]; name = bar_names[i];
} else { } else {
name = chrome.i18n.getMessage("controlAxisAux" + (aux_index++)); name = i18n.getMessage("controlAxisAux" + (aux_index++));
} }
bar_container.append('\ bar_container.append('\
@ -225,10 +225,10 @@ TABS.receiver.initialize = function (callback) {
// rssi // rssi
var rssi_channel_e = $('select[name="rssi_channel"]'); var rssi_channel_e = $('select[name="rssi_channel"]');
rssi_channel_e.append('<option value="0">' + chrome.i18n.getMessage("receiverRssiChannelDisabledOption") + '</option>'); rssi_channel_e.append('<option value="0">' + i18n.getMessage("receiverRssiChannelDisabledOption") + '</option>');
//1-4 reserved for Roll Pitch Yaw & Throttle, starting at 5 //1-4 reserved for Roll Pitch Yaw & Throttle, starting at 5
for (var i = 5; i < RC.active_channels + 1; i++) { for (var i = 5; i < RC.active_channels + 1; i++) {
rssi_channel_e.append('<option value="' + i + '">' + chrome.i18n.getMessage("controlAxisAux" + (i-4)) + '</option>'); rssi_channel_e.append('<option value="' + i + '">' + i18n.getMessage("controlAxisAux" + (i-4)) + '</option>');
} }
$('select[name="rssi_channel"]').val(RSSI_CONFIG.channel); $('select[name="rssi_channel"]').val(RSSI_CONFIG.channel);
@ -291,7 +291,7 @@ TABS.receiver.initialize = function (callback) {
function save_to_eeprom() { function save_to_eeprom() {
MSP.send_message(MSPCodes.MSP_EEPROM_WRITE, false, false, function () { MSP.send_message(MSPCodes.MSP_EEPROM_WRITE, false, false, function () {
GUI.log(chrome.i18n.getMessage('receiverEepromSaved')); GUI.log(i18n.getMessage('receiverEepromSaved'));
}); });
} }

View file

@ -110,12 +110,12 @@ function localizeAxisNames() {
var var
gimbal = gimbalElems.get(gimbalIndex); gimbal = gimbalElems.get(gimbalIndex);
$(".gimbal-label-vert", gimbal).text(chrome.i18n.getMessage("controlAxis" + gimbals[gimbalIndex][0])); $(".gimbal-label-vert", gimbal).text(i18n.getMessage("controlAxis" + gimbals[gimbalIndex][0]));
$(".gimbal-label-horz", gimbal).text(chrome.i18n.getMessage("controlAxis" + gimbals[gimbalIndex][1])); $(".gimbal-label-horz", gimbal).text(i18n.getMessage("controlAxis" + gimbals[gimbalIndex][1]));
} }
for (var sliderIndex = 0; sliderIndex < 4; sliderIndex++) { for (var sliderIndex = 0; sliderIndex < 4; sliderIndex++) {
$(".slider-label", sliderElems.get(sliderIndex)).text(chrome.i18n.getMessage("controlAxisAux" + (sliderIndex + 1))); $(".slider-label", sliderElems.get(sliderIndex)).text(i18n.getMessage("controlAxisAux" + (sliderIndex + 1)));
} }
} }

View file

@ -181,7 +181,7 @@ TABS.sensors.initialize = function (callback) {
$('#content').load("./tabs/sensors.html", function load_html() { $('#content').load("./tabs/sensors.html", function load_html() {
// translate to user-selected language // translate to user-selected language
localize(); i18n.localizePage();
// disable graphs for sensors that are missing // disable graphs for sensors that are missing
var checkboxes = $('.tab-sensors .info .checkboxes input'); var checkboxes = $('.tab-sensors .info .checkboxes input');

View file

@ -136,7 +136,7 @@ TABS.servos.initialize = function (callback) {
function save_to_eeprom() { function save_to_eeprom() {
if (save_configuration_to_eeprom) { if (save_configuration_to_eeprom) {
MSP.send_message(MSPCodes.MSP_EEPROM_WRITE, false, false, function () { MSP.send_message(MSPCodes.MSP_EEPROM_WRITE, false, false, function () {
GUI.log(chrome.i18n.getMessage('servosEepromSave')); GUI.log(i18n.getMessage('servosEepromSave'));
}); });
} }
} }
@ -169,7 +169,7 @@ TABS.servos.initialize = function (callback) {
update_ui(); update_ui();
// translate to user-selected language // translate to user-selected language
localize(); i18n.localizePage();
// status data pulled via separate timer with static speed // status data pulled via separate timer with static speed
GUI.interval_add('status_pull', function () { GUI.interval_add('status_pull', function () {

View file

@ -27,24 +27,24 @@ TABS.setup.initialize = function (callback) {
function process_html() { function process_html() {
// translate to user-selected language // translate to user-selected language
localize(); i18n.localizePage();
if (semver.lt(CONFIG.apiVersion, CONFIGURATOR.backupRestoreMinApiVersionAccepted)) { if (semver.lt(CONFIG.apiVersion, CONFIGURATOR.backupRestoreMinApiVersionAccepted)) {
$('#content .backup').addClass('disabled'); $('#content .backup').addClass('disabled');
$('#content .restore').addClass('disabled'); $('#content .restore').addClass('disabled');
GUI.log(chrome.i18n.getMessage('initialSetupBackupAndRestoreApiVersion', [CONFIG.apiVersion, CONFIGURATOR.backupRestoreMinApiVersionAccepted])); GUI.log(i18n.getMessage('initialSetupBackupAndRestoreApiVersion', [CONFIG.apiVersion, CONFIGURATOR.backupRestoreMinApiVersionAccepted]));
} }
// initialize 3D Model // initialize 3D Model
self.initModel(); self.initModel();
// set roll in interactive block // set roll in interactive block
$('span.roll').text(chrome.i18n.getMessage('initialSetupAttitude', [0])); $('span.roll').text(i18n.getMessage('initialSetupAttitude', [0]));
// set pitch in interactive block // set pitch in interactive block
$('span.pitch').text(chrome.i18n.getMessage('initialSetupAttitude', [0])); $('span.pitch').text(i18n.getMessage('initialSetupAttitude', [0]));
// set heading in interactive block // set heading in interactive block
$('span.heading').text(chrome.i18n.getMessage('initialSetupAttitude', [0])); $('span.heading').text(i18n.getMessage('initialSetupAttitude', [0]));
// check if we have accelerometer and magnetometer // check if we have accelerometer and magnetometer
if (!have_sensor(CONFIG.activeSensors, 'acc')) { if (!have_sensor(CONFIG.activeSensors, 'acc')) {
@ -60,7 +60,7 @@ TABS.setup.initialize = function (callback) {
self.initializeInstruments(); self.initializeInstruments();
$('#arming-disable-flag-row').attr('title', chrome.i18n.getMessage('initialSetupArmingDisableFlagsTooltip')); $('#arming-disable-flag-row').attr('title', i18n.getMessage('initialSetupArmingDisableFlagsTooltip'));
// UI Hooks // UI Hooks
$('a.calibrateAccel').click(function () { $('a.calibrateAccel').click(function () {
@ -73,7 +73,7 @@ TABS.setup.initialize = function (callback) {
// until this operation finishes, sending more commands through data_poll() will result in serial buffer overflow // until this operation finishes, sending more commands through data_poll() will result in serial buffer overflow
GUI.interval_pause('setup_data_pull'); GUI.interval_pause('setup_data_pull');
MSP.send_message(MSPCodes.MSP_ACC_CALIBRATION, false, false, function () { MSP.send_message(MSPCodes.MSP_ACC_CALIBRATION, false, false, function () {
GUI.log(chrome.i18n.getMessage('initialSetupAccelCalibStarted')); GUI.log(i18n.getMessage('initialSetupAccelCalibStarted'));
$('#accel_calib_running').show(); $('#accel_calib_running').show();
$('#accel_calib_rest').hide(); $('#accel_calib_rest').hide();
}); });
@ -81,7 +81,7 @@ TABS.setup.initialize = function (callback) {
GUI.timeout_add('button_reset', function () { GUI.timeout_add('button_reset', function () {
GUI.interval_resume('setup_data_pull'); GUI.interval_resume('setup_data_pull');
GUI.log(chrome.i18n.getMessage('initialSetupAccelCalibEnded')); GUI.log(i18n.getMessage('initialSetupAccelCalibEnded'));
self.removeClass('calibrating'); self.removeClass('calibrating');
$('#accel_calib_running').hide(); $('#accel_calib_running').hide();
$('#accel_calib_rest').show(); $('#accel_calib_rest').show();
@ -96,13 +96,13 @@ TABS.setup.initialize = function (callback) {
self.addClass('calibrating'); self.addClass('calibrating');
MSP.send_message(MSPCodes.MSP_MAG_CALIBRATION, false, false, function () { MSP.send_message(MSPCodes.MSP_MAG_CALIBRATION, false, false, function () {
GUI.log(chrome.i18n.getMessage('initialSetupMagCalibStarted')); GUI.log(i18n.getMessage('initialSetupMagCalibStarted'));
$('#mag_calib_running').show(); $('#mag_calib_running').show();
$('#mag_calib_rest').hide(); $('#mag_calib_rest').hide();
}); });
GUI.timeout_add('button_reset', function () { GUI.timeout_add('button_reset', function () {
GUI.log(chrome.i18n.getMessage('initialSetupMagCalibEnded')); GUI.log(i18n.getMessage('initialSetupMagCalibEnded'));
self.removeClass('calibrating'); self.removeClass('calibrating');
$('#mag_calib_running').hide(); $('#mag_calib_running').hide();
$('#mag_calib_rest').show(); $('#mag_calib_rest').show();
@ -123,7 +123,7 @@ TABS.setup.initialize = function (callback) {
$('.dialogConfirmReset-confirmbtn').click(function() { $('.dialogConfirmReset-confirmbtn').click(function() {
dialogConfirmReset.close(); dialogConfirmReset.close();
MSP.send_message(MSPCodes.MSP_RESET_CONF, false, false, function () { MSP.send_message(MSPCodes.MSP_RESET_CONF, false, false, function () {
GUI.log(chrome.i18n.getMessage('initialSetupSettingsRestored')); GUI.log(i18n.getMessage('initialSetupSettingsRestored'));
GUI.tab_switch_cleanup(function () { GUI.tab_switch_cleanup(function () {
TABS.setup.initialize(); TABS.setup.initialize();
@ -132,12 +132,12 @@ TABS.setup.initialize = function (callback) {
}); });
// display current yaw fix value (important during tab re-initialization) // display current yaw fix value (important during tab re-initialization)
$('div#interactive_block > a.reset').text(chrome.i18n.getMessage('initialSetupButtonResetZaxisValue', [self.yaw_fix])); $('div#interactive_block > a.reset').text(i18n.getMessage('initialSetupButtonResetZaxisValue', [self.yaw_fix]));
// reset yaw button hook // reset yaw button hook
$('div#interactive_block > a.reset').click(function () { $('div#interactive_block > a.reset').click(function () {
self.yaw_fix = SENSOR_DATA.kinematics[2] * - 1.0; self.yaw_fix = SENSOR_DATA.kinematics[2] * - 1.0;
$(this).text(chrome.i18n.getMessage('initialSetupButtonResetZaxisValue', [self.yaw_fix])); $(this).text(i18n.getMessage('initialSetupButtonResetZaxisValue', [self.yaw_fix]));
console.log('YAW reset to 0 deg, fix: ' + self.yaw_fix + ' deg'); console.log('YAW reset to 0 deg, fix: ' + self.yaw_fix + ' deg');
}); });
@ -148,7 +148,7 @@ TABS.setup.initialize = function (callback) {
} }
configuration_backup(function () { configuration_backup(function () {
GUI.log(chrome.i18n.getMessage('initialSetupBackupSuccess')); GUI.log(i18n.getMessage('initialSetupBackupSuccess'));
}); });
}); });
@ -161,7 +161,7 @@ TABS.setup.initialize = function (callback) {
// get latest settings // get latest settings
TABS.setup.initialize(); TABS.setup.initialize();
GUI.log(chrome.i18n.getMessage('initialSetupRestoreSuccess')); GUI.log(i18n.getMessage('initialSetupRestoreSuccess'));
}); });
}); });
@ -187,7 +187,7 @@ TABS.setup.initialize = function (callback) {
MSP.send_message(MSPCodes.MSP_STATUS, false, false, function() { MSP.send_message(MSPCodes.MSP_STATUS, false, false, function() {
var armingString = ''; var armingString = '';
if (CONFIG.armingDisableFlags == 0) { if (CONFIG.armingDisableFlags == 0) {
armingString = chrome.i18n.getMessage('initialSetupArmingAllowed'); armingString = i18n.getMessage('initialSetupArmingAllowed');
} else { } else {
var flagIndicies = []; var flagIndicies = [];
for (var i = 0; i < 32; i++) { for (var i = 0; i < 32; i++) {
@ -201,15 +201,15 @@ TABS.setup.initialize = function (callback) {
}); });
MSP.send_message(MSPCodes.MSP_ANALOG, false, false, function () { MSP.send_message(MSPCodes.MSP_ANALOG, false, false, function () {
bat_voltage_e.text(chrome.i18n.getMessage('initialSetupBatteryValue', [ANALOG.voltage])); bat_voltage_e.text(i18n.getMessage('initialSetupBatteryValue', [ANALOG.voltage]));
bat_mah_drawn_e.text(chrome.i18n.getMessage('initialSetupBatteryMahValue', [ANALOG.mAhdrawn])); bat_mah_drawn_e.text(i18n.getMessage('initialSetupBatteryMahValue', [ANALOG.mAhdrawn]));
bat_mah_drawing_e.text(chrome.i18n.getMessage('initialSetupBatteryAValue', [ANALOG.amperage.toFixed(2)])); bat_mah_drawing_e.text(i18n.getMessage('initialSetupBatteryAValue', [ANALOG.amperage.toFixed(2)]));
rssi_e.text(chrome.i18n.getMessage('initialSetupRSSIValue', [((ANALOG.rssi / 1023) * 100).toFixed(0)])); rssi_e.text(i18n.getMessage('initialSetupRSSIValue', [((ANALOG.rssi / 1023) * 100).toFixed(0)]));
}); });
if (have_sensor(CONFIG.activeSensors, 'gps')) { if (have_sensor(CONFIG.activeSensors, 'gps')) {
MSP.send_message(MSPCodes.MSP_RAW_GPS, false, false, function () { MSP.send_message(MSPCodes.MSP_RAW_GPS, false, false, function () {
gpsFix_e.html((GPS_DATA.fix) ? chrome.i18n.getMessage('gpsFixTrue') : chrome.i18n.getMessage('gpsFixFalse')); gpsFix_e.html((GPS_DATA.fix) ? i18n.getMessage('gpsFixTrue') : i18n.getMessage('gpsFixFalse'));
gpsSats_e.text(GPS_DATA.numSat); gpsSats_e.text(GPS_DATA.numSat);
gpsLat_e.text((GPS_DATA.lat / 10000000).toFixed(4) + ' deg'); gpsLat_e.text((GPS_DATA.lat / 10000000).toFixed(4) + ' deg');
gpsLon_e.text((GPS_DATA.lon / 10000000).toFixed(4) + ' deg'); gpsLon_e.text((GPS_DATA.lon / 10000000).toFixed(4) + ' deg');
@ -219,9 +219,9 @@ TABS.setup.initialize = function (callback) {
function get_fast_data() { function get_fast_data() {
MSP.send_message(MSPCodes.MSP_ATTITUDE, false, false, function () { MSP.send_message(MSPCodes.MSP_ATTITUDE, false, false, function () {
roll_e.text(chrome.i18n.getMessage('initialSetupAttitude', [SENSOR_DATA.kinematics[0]])); roll_e.text(i18n.getMessage('initialSetupAttitude', [SENSOR_DATA.kinematics[0]]));
pitch_e.text(chrome.i18n.getMessage('initialSetupAttitude', [SENSOR_DATA.kinematics[1]])); pitch_e.text(i18n.getMessage('initialSetupAttitude', [SENSOR_DATA.kinematics[1]]));
heading_e.text(chrome.i18n.getMessage('initialSetupAttitude', [SENSOR_DATA.kinematics[2]])); heading_e.text(i18n.getMessage('initialSetupAttitude', [SENSOR_DATA.kinematics[2]]));
self.renderModel(); self.renderModel();
self.updateInstruments(); self.updateInstruments();

View file

@ -33,11 +33,11 @@ TABS.setup_osd.initialize = function (callback) {
]; ];
// translate to user-selected language // translate to user-selected language
localize(); i18n.localizePage();
$('a.resetSettings').click(function () { $('a.resetSettings').click(function () {
MSP.send_message(MSPCodes.MSP_RESET_CONF, false, false, function () { MSP.send_message(MSPCodes.MSP_RESET_CONF, false, false, function () {
GUI.log(chrome.i18n.getMessage('initialSetupSettingsRestored')); GUI.log(i18n.getMessage('initialSetupSettingsRestored'));
GUI.tab_switch_cleanup(function () { GUI.tab_switch_cleanup(function () {
TABS.setup_osd.initialize(); TABS.setup_osd.initialize();
@ -55,7 +55,7 @@ TABS.setup_osd.initialize = function (callback) {
element.text(osdVideoMode); element.text(osdVideoMode);
element = $('.camera-connected'); element = $('.camera-connected');
element.text(OSD_VIDEO_STATE.camera_connected ? chrome.i18n.getMessage('osdSetupCameraConnectedValueYes') : chrome.i18n.getMessage('osdSetupCameraConnectedValueNo')); element.text(OSD_VIDEO_STATE.camera_connected ? i18n.getMessage('osdSetupCameraConnectedValueYes') : i18n.getMessage('osdSetupCameraConnectedValueNo'));
}); });
*/ */
} }

View file

@ -164,7 +164,7 @@ TABS.transponder.initialize = function(callback, scrollPosition) {
//build radio buttons //build radio buttons
if (transponderProviders.length > 1) { if (transponderProviders.length > 1) {
transponderTypeSelect.append( transponderTypeSelect.append(
$('<option>').attr('value', 0).html(chrome.i18n.getMessage("transponderType0")) // NONE $('<option>').attr('value', 0).html(i18n.getMessage("transponderType0")) // NONE
); );
} }
@ -173,7 +173,7 @@ TABS.transponder.initialize = function(callback, scrollPosition) {
if ( transponderProvider.hasOwnProperty('id') ) { if ( transponderProvider.hasOwnProperty('id') ) {
transponderTypeSelect.append( transponderTypeSelect.append(
$('<option>').attr('value', transponderProvider.id).html(chrome.i18n.getMessage("transponderType" + transponderProvider.id)) $('<option>').attr('value', transponderProvider.id).html(i18n.getMessage("transponderType" + transponderProvider.id))
); );
} }
} }
@ -193,12 +193,12 @@ TABS.transponder.initialize = function(callback, scrollPosition) {
let template = $('#transponder-configuration-template').clone(); let template = $('#transponder-configuration-template').clone();
template.find('.spacer_box_title').html(chrome.i18n.getMessage("transponderData" + transponderProvider.id)); template.find('.spacer_box_title').html(i18n.getMessage("transponderData" + transponderProvider.id));
template.find('.dataHelp').html(chrome.i18n.getMessage("transponderDataHelp" + transponderProvider.id)); template.find('.dataHelp').html(i18n.getMessage("transponderDataHelp" + transponderProvider.id));
if ( chrome.i18n.getMessage("transponderHelp" + transponderProvider.id).length ) { if ( i18n.getMessage("transponderHelp" + transponderProvider.id).length ) {
$('#transponderHelp').html(chrome.i18n.getMessage("transponderHelp" + transponderProvider.id)); $('#transponderHelp').html(i18n.getMessage("transponderHelp" + transponderProvider.id));
$('#transponderHelpBox').show(); $('#transponderHelpBox').show();
} }
@ -282,7 +282,7 @@ TABS.transponder.initialize = function(callback, scrollPosition) {
function process_html() { function process_html() {
$(".tab-transponder").toggleClass("transponder-supported", TABS.transponder.available && TRANSPONDER.supported); $(".tab-transponder").toggleClass("transponder-supported", TABS.transponder.available && TRANSPONDER.supported);
localize(); i18n.localizePage();
if ( TABS.transponder.available && TRANSPONDER.providers.length > 0 ) { if ( TABS.transponder.available && TRANSPONDER.providers.length > 0 ) {
@ -301,7 +301,7 @@ TABS.transponder.initialize = function(callback, scrollPosition) {
function save_to_eeprom() { function save_to_eeprom() {
MSP.send_message(MSPCodes.MSP_EEPROM_WRITE, false, false, function() { MSP.send_message(MSPCodes.MSP_EEPROM_WRITE, false, false, function() {
GUI.log(chrome.i18n.getMessage('transponderEepromSaved')); GUI.log(i18n.getMessage('transponderEepromSaved'));
if ( $(_this).hasClass('reboot') ) { if ( $(_this).hasClass('reboot') ) {
GUI.tab_switch_cleanup(function() { GUI.tab_switch_cleanup(function() {
MSP.send_message(MSPCodes.MSP_SET_REBOOT, false, false, reinitialize); MSP.send_message(MSPCodes.MSP_SET_REBOOT, false, false, reinitialize);
@ -313,7 +313,7 @@ TABS.transponder.initialize = function(callback, scrollPosition) {
if (TRANSPONDER.provider !== "0" && TRANSPONDER.data.length !== TRANSPONDER.providers.find(function(provider) { if (TRANSPONDER.provider !== "0" && TRANSPONDER.data.length !== TRANSPONDER.providers.find(function(provider) {
return provider.id == TRANSPONDER.provider; return provider.id == TRANSPONDER.provider;
}).dataLength ) { }).dataLength ) {
GUI.log(chrome.i18n.getMessage('transponderDataInvalid')); GUI.log(i18n.getMessage('transponderDataInvalid'));
} else { } else {
save_transponder_data(); save_transponder_data();
} }
@ -321,7 +321,7 @@ TABS.transponder.initialize = function(callback, scrollPosition) {
} }
function reinitialize() { function reinitialize() {
GUI.log(chrome.i18n.getMessage('deviceRebooting')); GUI.log(i18n.getMessage('deviceRebooting'));
if ( BOARD.find_board_definition(CONFIG.boardIdentifier).vcp ) { if ( BOARD.find_board_definition(CONFIG.boardIdentifier).vcp ) {
$('a.connect').click(); $('a.connect').click();
GUI.timeout_add('start_connection', function start_connection() { GUI.timeout_add('start_connection', function start_connection() {
@ -330,7 +330,7 @@ TABS.transponder.initialize = function(callback, scrollPosition) {
} else { } else {
GUI.timeout_add('waiting_for_bootup', function waiting_for_bootup() { GUI.timeout_add('waiting_for_bootup', function waiting_for_bootup() {
MSP.send_message(MSPCodes.MSP_IDENT, false, false, function() { MSP.send_message(MSPCodes.MSP_IDENT, false, false, function() {
GUI.log(chrome.i18n.getMessage('deviceReady')); GUI.log(i18n.getMessage('deviceReady'));
TABS.configuration.initialize(false, $('#content').scrollTop()); TABS.configuration.initialize(false, $('#content').scrollTop());
}); });
}, 1500); }, 1500);

View file

@ -35,6 +35,8 @@
<link type="text/css" rel="stylesheet" href="./css/dropdown-lists/css/style_lists.css" media="all"/> <link type="text/css" rel="stylesheet" href="./css/dropdown-lists/css/style_lists.css" media="all"/>
<link type="text/css" rel="stylesheet" href="./js/libraries/switchery/switchery.css" media="all"/> <link type="text/css" rel="stylesheet" href="./js/libraries/switchery/switchery.css" media="all"/>
<link rel="stylesheet" type="text/css" href="./js/libraries/jbox/jBox.css"/> <link rel="stylesheet" type="text/css" href="./js/libraries/jbox/jBox.css"/>
<script type="text/javascript" src="./node_modules/i18next/i18next.js"></script>
<script type="text/javascript" src="./node_modules/i18next-xhr-backend/i18nextXHRBackend.js"></script>
<script type="text/javascript" src="./js/libraries/q.js"></script> <script type="text/javascript" src="./js/libraries/q.js"></script>
<script type="text/javascript" src="./js/libraries/jquery-2.1.4.min.js"></script> <script type="text/javascript" src="./js/libraries/jquery-2.1.4.min.js"></script>
<script type="text/javascript" src="./js/libraries/jquery-ui-1.11.4.min.js"></script> <script type="text/javascript" src="./js/libraries/jquery-ui-1.11.4.min.js"></script>