mirror of
https://github.com/zulip/zulip-desktop.git
synced 2025-11-03 05:23:17 +00:00
i18n: Setup module and add translation-util.js
* Add i18n package. * Use system locale for TranslationUtil.
This commit is contained in:
committed by
Akash Nimare
parent
cf96e94470
commit
77a1fc0bd3
259
app/package-lock.json
generated
259
app/package-lock.json
generated
@@ -136,6 +136,11 @@
|
||||
"resolved": "https://registry.npmjs.org/@types/stack-trace/-/stack-trace-0.0.29.tgz",
|
||||
"integrity": "sha512-TgfOX+mGY/NyNxJLIbDWrO9DjGoVSW9+aB8H2yy1fy32jsvxijhmyJI9fDFgvz3YP4lvJaq9DzdR/M1bOgVc9g=="
|
||||
},
|
||||
"abbrev": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
|
||||
"integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
|
||||
},
|
||||
"adm-zip": {
|
||||
"version": "0.4.11",
|
||||
"resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.11.tgz",
|
||||
@@ -161,6 +166,41 @@
|
||||
"json-schema-traverse": "^0.3.0"
|
||||
}
|
||||
},
|
||||
"ambi": {
|
||||
"version": "2.5.0",
|
||||
"resolved": "https://registry.npmjs.org/ambi/-/ambi-2.5.0.tgz",
|
||||
"integrity": "sha1-fI43K+SIkRV+fOoBy2+RQ9H3QiA=",
|
||||
"requires": {
|
||||
"editions": "^1.1.1",
|
||||
"typechecker": "^4.3.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"semver": {
|
||||
"version": "5.7.0",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
|
||||
"integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA=="
|
||||
},
|
||||
"typechecker": {
|
||||
"version": "4.7.0",
|
||||
"resolved": "https://registry.npmjs.org/typechecker/-/typechecker-4.7.0.tgz",
|
||||
"integrity": "sha512-4LHc1KMNJ6NDGO+dSM/yNfZQRtp8NN7psYrPHUblD62Dvkwsp3VShsbM78kOgpcmMkRTgvwdKOTjctS+uMllgQ==",
|
||||
"requires": {
|
||||
"editions": "^2.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"editions": {
|
||||
"version": "2.1.3",
|
||||
"resolved": "https://registry.npmjs.org/editions/-/editions-2.1.3.tgz",
|
||||
"integrity": "sha512-xDZyVm0A4nLgMNWVVLJvcwMjI80ShiH/27RyLiCnW1L273TcJIA25C4pwJ33AWV01OX6UriP35Xu+lH4S7HWQw==",
|
||||
"requires": {
|
||||
"errlop": "^1.1.1",
|
||||
"semver": "^5.6.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"applescript": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/applescript/-/applescript-1.0.0.tgz",
|
||||
@@ -184,6 +224,11 @@
|
||||
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
|
||||
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
|
||||
},
|
||||
"async": {
|
||||
"version": "1.5.2",
|
||||
"resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
|
||||
"integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
|
||||
},
|
||||
"asynckit": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
|
||||
@@ -405,6 +450,11 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"csextends": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/csextends/-/csextends-1.2.0.tgz",
|
||||
"integrity": "sha512-S/8k1bDTJIwuGgQYmsRoE+8P+ohV32WhQ0l4zqrc0XDdxOhjQQD7/wTZwCzoZX53jSX3V/qwjT+OkPTxWQcmjg=="
|
||||
},
|
||||
"dashdash": {
|
||||
"version": "1.14.1",
|
||||
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
|
||||
@@ -474,6 +524,14 @@
|
||||
"resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
|
||||
"integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI="
|
||||
},
|
||||
"eachr": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/eachr/-/eachr-2.0.4.tgz",
|
||||
"integrity": "sha1-Rm98qhBwj2EFCeMsgHqv5X/BIr8=",
|
||||
"requires": {
|
||||
"typechecker": "^2.0.8"
|
||||
}
|
||||
},
|
||||
"ecc-jsbn": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
|
||||
@@ -483,6 +541,11 @@
|
||||
"jsbn": "~0.1.0"
|
||||
}
|
||||
},
|
||||
"editions": {
|
||||
"version": "1.3.4",
|
||||
"resolved": "https://registry.npmjs.org/editions/-/editions-1.3.4.tgz",
|
||||
"integrity": "sha512-gzao+mxnYDzIysXKMQi/+M1mjy/rjestjg6OPoYTtI+3Izp23oiGZitsl9lPDPiTGXbcSIk1iJWhliSaglxnUg=="
|
||||
},
|
||||
"electron-fetch": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.1.0.tgz",
|
||||
@@ -573,6 +636,30 @@
|
||||
"iconv-lite": "~0.4.13"
|
||||
}
|
||||
},
|
||||
"errlop": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/errlop/-/errlop-1.1.1.tgz",
|
||||
"integrity": "sha512-WX7QjiPHhsny7/PQvrhS5VMizXXKoKCS3udaBp8gjlARdbn+XmK300eKBAAN0hGyRaTCtRpOaxK+xFVPUJ3zkw==",
|
||||
"requires": {
|
||||
"editions": "^2.1.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"editions": {
|
||||
"version": "2.1.3",
|
||||
"resolved": "https://registry.npmjs.org/editions/-/editions-2.1.3.tgz",
|
||||
"integrity": "sha512-xDZyVm0A4nLgMNWVVLJvcwMjI80ShiH/27RyLiCnW1L273TcJIA25C4pwJ33AWV01OX6UriP35Xu+lH4S7HWQw==",
|
||||
"requires": {
|
||||
"errlop": "^1.1.1",
|
||||
"semver": "^5.6.0"
|
||||
}
|
||||
},
|
||||
"semver": {
|
||||
"version": "5.7.0",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
|
||||
"integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"es-abstract": {
|
||||
"version": "1.12.0",
|
||||
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz",
|
||||
@@ -621,6 +708,36 @@
|
||||
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
|
||||
"integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ="
|
||||
},
|
||||
"extendr": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/extendr/-/extendr-2.1.0.tgz",
|
||||
"integrity": "sha1-MBqgu+pWX00tyPVw8qImEahSe1Y=",
|
||||
"requires": {
|
||||
"typechecker": "~2.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"typechecker": {
|
||||
"version": "2.0.8",
|
||||
"resolved": "https://registry.npmjs.org/typechecker/-/typechecker-2.0.8.tgz",
|
||||
"integrity": "sha1-6D2oS7ZMWEzLNFg4V2xAsDN9uC4="
|
||||
}
|
||||
}
|
||||
},
|
||||
"extract-opts": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/extract-opts/-/extract-opts-2.2.0.tgz",
|
||||
"integrity": "sha1-H6KOunNSxttID4hc63GkaBC+bX0=",
|
||||
"requires": {
|
||||
"typechecker": "~2.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"typechecker": {
|
||||
"version": "2.0.8",
|
||||
"resolved": "https://registry.npmjs.org/typechecker/-/typechecker-2.0.8.tgz",
|
||||
"integrity": "sha1-6D2oS7ZMWEzLNFg4V2xAsDN9uC4="
|
||||
}
|
||||
}
|
||||
},
|
||||
"extsprintf": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
|
||||
@@ -813,6 +930,19 @@
|
||||
"sshpk": "^1.7.0"
|
||||
}
|
||||
},
|
||||
"i18n": {
|
||||
"version": "0.8.3",
|
||||
"resolved": "https://registry.npmjs.org/i18n/-/i18n-0.8.3.tgz",
|
||||
"integrity": "sha1-LYzxwkciYCwgQdAbpq5eqlE4jw4=",
|
||||
"requires": {
|
||||
"debug": "*",
|
||||
"make-plural": "^3.0.3",
|
||||
"math-interval-parser": "^1.1.0",
|
||||
"messageformat": "^0.3.1",
|
||||
"mustache": "*",
|
||||
"sprintf-js": ">=1.0.3"
|
||||
}
|
||||
},
|
||||
"iconv-lite": {
|
||||
"version": "0.4.24",
|
||||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
|
||||
@@ -821,6 +951,20 @@
|
||||
"safer-buffer": ">= 2.1.2 < 3"
|
||||
}
|
||||
},
|
||||
"ignorefs": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/ignorefs/-/ignorefs-1.2.0.tgz",
|
||||
"integrity": "sha1-2ln7hYl25KXkNwLM0fKC/byeV1Y=",
|
||||
"requires": {
|
||||
"editions": "^1.3.3",
|
||||
"ignorepatterns": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"ignorepatterns": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/ignorepatterns/-/ignorepatterns-1.1.0.tgz",
|
||||
"integrity": "sha1-rI9DbyI5td+2bV8NOpBKh6xnzF4="
|
||||
},
|
||||
"indent-string": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz",
|
||||
@@ -1068,6 +1212,30 @@
|
||||
"resolved": "https://registry.npmjs.org/lsmod/-/lsmod-1.0.0.tgz",
|
||||
"integrity": "sha1-mgD3bco26yP6BTUK/htYXUKZ5ks="
|
||||
},
|
||||
"make-plural": {
|
||||
"version": "3.0.6",
|
||||
"resolved": "https://registry.npmjs.org/make-plural/-/make-plural-3.0.6.tgz",
|
||||
"integrity": "sha1-IDOgO6wpC487uRJY9lud9+iwHKc=",
|
||||
"requires": {
|
||||
"minimist": "^1.2.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"minimist": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
|
||||
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"math-interval-parser": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/math-interval-parser/-/math-interval-parser-1.1.0.tgz",
|
||||
"integrity": "sha1-2+2lsGsySZc8bfYXD94jhvCv2JM=",
|
||||
"requires": {
|
||||
"xregexp": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"md5": {
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz",
|
||||
@@ -1078,6 +1246,32 @@
|
||||
"is-buffer": "~1.1.1"
|
||||
}
|
||||
},
|
||||
"messageformat": {
|
||||
"version": "0.3.1",
|
||||
"resolved": "https://registry.npmjs.org/messageformat/-/messageformat-0.3.1.tgz",
|
||||
"integrity": "sha1-5Y//gkXps5cXmeW0PbWLPpQX9aI=",
|
||||
"requires": {
|
||||
"async": "~1.5.2",
|
||||
"glob": "~6.0.4",
|
||||
"make-plural": "~3.0.3",
|
||||
"nopt": "~3.0.6",
|
||||
"watchr": "~2.4.13"
|
||||
},
|
||||
"dependencies": {
|
||||
"glob": {
|
||||
"version": "6.0.4",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
|
||||
"integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=",
|
||||
"requires": {
|
||||
"inflight": "^1.0.4",
|
||||
"inherits": "2",
|
||||
"minimatch": "2 || 3",
|
||||
"once": "^1.3.0",
|
||||
"path-is-absolute": "^1.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"mime-db": {
|
||||
"version": "1.33.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz",
|
||||
@@ -1122,6 +1316,11 @@
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
|
||||
},
|
||||
"mustache": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/mustache/-/mustache-3.0.1.tgz",
|
||||
"integrity": "sha512-jFI/4UVRsRYdUbuDTKT7KzfOp7FiD5WzYmmwNwXyUVypC0xjoTL78Fqc0jHUPIvvGD+6DQSPHIt1NE7D1ArsqA=="
|
||||
},
|
||||
"nan": {
|
||||
"version": "2.10.0",
|
||||
"resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz",
|
||||
@@ -1146,6 +1345,14 @@
|
||||
"uuid": "^3.3.2"
|
||||
}
|
||||
},
|
||||
"nopt": {
|
||||
"version": "3.0.6",
|
||||
"resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
|
||||
"integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
|
||||
"requires": {
|
||||
"abbrev": "1"
|
||||
}
|
||||
},
|
||||
"normalize-url": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz",
|
||||
@@ -1454,6 +1661,14 @@
|
||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
|
||||
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
|
||||
},
|
||||
"safefs": {
|
||||
"version": "3.2.2",
|
||||
"resolved": "https://registry.npmjs.org/safefs/-/safefs-3.2.2.tgz",
|
||||
"integrity": "sha1-gXDBRE1wOOCMrqBaN0+uL6NJ4Vw=",
|
||||
"requires": {
|
||||
"graceful-fs": "*"
|
||||
}
|
||||
},
|
||||
"safer-buffer": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
|
||||
@@ -1464,6 +1679,16 @@
|
||||
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
|
||||
"integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
|
||||
},
|
||||
"scandirectory": {
|
||||
"version": "2.5.0",
|
||||
"resolved": "https://registry.npmjs.org/scandirectory/-/scandirectory-2.5.0.tgz",
|
||||
"integrity": "sha1-bOA/VKCQtmjjy+2/IO354xBZPnI=",
|
||||
"requires": {
|
||||
"ignorefs": "^1.0.0",
|
||||
"safefs": "^3.1.2",
|
||||
"taskgroup": "^4.0.5"
|
||||
}
|
||||
},
|
||||
"semver": {
|
||||
"version": "5.4.1",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
|
||||
@@ -1557,6 +1782,15 @@
|
||||
"resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz",
|
||||
"integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ="
|
||||
},
|
||||
"taskgroup": {
|
||||
"version": "4.3.1",
|
||||
"resolved": "https://registry.npmjs.org/taskgroup/-/taskgroup-4.3.1.tgz",
|
||||
"integrity": "sha1-feGT/r12gnPEV3MElwJNUSwnkVo=",
|
||||
"requires": {
|
||||
"ambi": "^2.2.0",
|
||||
"csextends": "^1.0.3"
|
||||
}
|
||||
},
|
||||
"timed-out": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
|
||||
@@ -1589,6 +1823,11 @@
|
||||
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
|
||||
"optional": true
|
||||
},
|
||||
"typechecker": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/typechecker/-/typechecker-2.1.0.tgz",
|
||||
"integrity": "sha1-0cIJOlT/ihn1jP+HfuqlTyJC04M="
|
||||
},
|
||||
"underscore": {
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.0.tgz",
|
||||
@@ -1652,6 +1891,21 @@
|
||||
"extsprintf": "^1.2.0"
|
||||
}
|
||||
},
|
||||
"watchr": {
|
||||
"version": "2.4.13",
|
||||
"resolved": "https://registry.npmjs.org/watchr/-/watchr-2.4.13.tgz",
|
||||
"integrity": "sha1-10hHu01vkPYf4sdPn2hmKqDgdgE=",
|
||||
"requires": {
|
||||
"eachr": "^2.0.2",
|
||||
"extendr": "^2.1.0",
|
||||
"extract-opts": "^2.2.0",
|
||||
"ignorefs": "^1.0.0",
|
||||
"safefs": "^3.1.2",
|
||||
"scandirectory": "^2.5.0",
|
||||
"taskgroup": "^4.2.0",
|
||||
"typechecker": "^2.0.8"
|
||||
}
|
||||
},
|
||||
"winreg": {
|
||||
"version": "1.2.4",
|
||||
"resolved": "https://registry.npmjs.org/winreg/-/winreg-1.2.4.tgz",
|
||||
@@ -1672,6 +1926,11 @@
|
||||
"resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz",
|
||||
"integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw="
|
||||
},
|
||||
"xregexp": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz",
|
||||
"integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM="
|
||||
},
|
||||
"yallist": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
|
||||
|
||||
@@ -37,6 +37,7 @@
|
||||
"electron-updater": "4.0.6",
|
||||
"electron-window-state": "5.0.3",
|
||||
"escape-html": "1.0.3",
|
||||
"i18n": "0.8.3",
|
||||
"is-online": "7.0.0",
|
||||
"node-json-db": "0.9.2",
|
||||
"request": "2.85.0",
|
||||
|
||||
29
app/renderer/js/utils/translation-util.js
Normal file
29
app/renderer/js/utils/translation-util.js
Normal file
@@ -0,0 +1,29 @@
|
||||
'use strict';
|
||||
const path = require("path");
|
||||
const electron = require("electron");
|
||||
const i18n = require("i18n");
|
||||
let instance = null;
|
||||
let app = null;
|
||||
/* To make the util runnable in both main and renderer process */
|
||||
if (process.type === 'renderer') {
|
||||
app = electron.remote.app;
|
||||
}
|
||||
else {
|
||||
app = electron.app;
|
||||
}
|
||||
class TranslationUtil {
|
||||
constructor() {
|
||||
if (instance) {
|
||||
return this;
|
||||
}
|
||||
instance = this;
|
||||
i18n.configure({
|
||||
directory: path.join(__dirname, '../../../translations/'),
|
||||
register: this
|
||||
});
|
||||
}
|
||||
__(phrase) {
|
||||
return i18n.__({ phrase, locale: app.getLocale() });
|
||||
}
|
||||
}
|
||||
module.exports = new TranslationUtil();
|
||||
35
app/renderer/js/utils/translation-util.ts
Normal file
35
app/renderer/js/utils/translation-util.ts
Normal file
@@ -0,0 +1,35 @@
|
||||
'use strict';
|
||||
|
||||
import path = require('path');
|
||||
import electron = require('electron');
|
||||
import i18n = require('i18n');
|
||||
|
||||
let instance: TranslationUtil = null;
|
||||
let app: Electron.App = null;
|
||||
|
||||
/* To make the util runnable in both main and renderer process */
|
||||
if (process.type === 'renderer') {
|
||||
app = electron.remote.app;
|
||||
} else {
|
||||
app = electron.app;
|
||||
}
|
||||
|
||||
class TranslationUtil {
|
||||
constructor() {
|
||||
if (instance) {
|
||||
return this;
|
||||
}
|
||||
|
||||
instance = this;
|
||||
i18n.configure({
|
||||
directory: path.join(__dirname, '../../../translations/'),
|
||||
register: this
|
||||
});
|
||||
}
|
||||
|
||||
__(phrase: string): string {
|
||||
return i18n.__({ phrase, locale: app.getLocale() });
|
||||
}
|
||||
}
|
||||
|
||||
export = new TranslationUtil();
|
||||
1
typings.d.ts
vendored
1
typings.d.ts
vendored
@@ -11,6 +11,7 @@ declare module 'electron-spellchecker';
|
||||
declare module 'escape-html';
|
||||
declare module 'fs-extra';
|
||||
declare module 'wurl';
|
||||
declare module 'i18n';
|
||||
|
||||
interface PageParamsObject {
|
||||
realm_uri: string;
|
||||
|
||||
Reference in New Issue
Block a user