mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
i18n: locales support fixes
This commit is contained in:
parent
7efc54424a
commit
b4101d986c
2
.babelrc
2
.babelrc
@ -5,6 +5,8 @@
|
|||||||
"@lingui/babel-preset-react"
|
"@lingui/babel-preset-react"
|
||||||
],
|
],
|
||||||
"plugins": [
|
"plugins": [
|
||||||
|
"@babel/transform-runtime",
|
||||||
|
"@babel/syntax-dynamic-import",
|
||||||
"macros"
|
"macros"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
2
.gitignore
vendored
2
.gitignore
vendored
@ -7,4 +7,4 @@ tmp/
|
|||||||
static/build/client/
|
static/build/client/
|
||||||
binaries/client/
|
binaries/client/
|
||||||
binaries/server/
|
binaries/server/
|
||||||
src/locales/**/**.js
|
locales/**/**.js
|
||||||
|
|||||||
@ -1302,6 +1302,7 @@ msgstr "Names"
|
|||||||
#: src/renderer/components/+workloads-jobs/jobs.tsx:38
|
#: src/renderer/components/+workloads-jobs/jobs.tsx:38
|
||||||
#: src/renderer/components/+workloads-pods/pods.tsx:75
|
#: src/renderer/components/+workloads-pods/pods.tsx:75
|
||||||
#: src/renderer/components/+workloads-statefulsets/statefulsets.tsx:41
|
#: src/renderer/components/+workloads-statefulsets/statefulsets.tsx:41
|
||||||
|
#: src/renderer/components/app.tsx:37
|
||||||
#: src/renderer/components/dock/edit-resource.tsx:91
|
#: src/renderer/components/dock/edit-resource.tsx:91
|
||||||
#: src/renderer/components/dock/install-chart.tsx:122
|
#: src/renderer/components/dock/install-chart.tsx:122
|
||||||
#: src/renderer/components/dock/upgrade-chart.tsx:98
|
#: src/renderer/components/dock/upgrade-chart.tsx:98
|
||||||
@ -6,6 +6,12 @@ msgstr ""
|
|||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: @lingui/cli\n"
|
"X-Generator: @lingui/cli\n"
|
||||||
"Language: fi\n"
|
"Language: fi\n"
|
||||||
|
"Project-Id-Version: \n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"PO-Revision-Date: \n"
|
||||||
|
"Last-Translator: \n"
|
||||||
|
"Language-Team: \n"
|
||||||
|
"Plural-Forms: \n"
|
||||||
|
|
||||||
#: src/renderer/components/+config-autoscalers/hpa-details.tsx:28
|
#: src/renderer/components/+config-autoscalers/hpa-details.tsx:28
|
||||||
msgid "(as a percentage of request)"
|
msgid "(as a percentage of request)"
|
||||||
@ -1287,6 +1293,7 @@ msgstr ""
|
|||||||
#: src/renderer/components/+workloads-jobs/jobs.tsx:38
|
#: src/renderer/components/+workloads-jobs/jobs.tsx:38
|
||||||
#: src/renderer/components/+workloads-pods/pods.tsx:75
|
#: src/renderer/components/+workloads-pods/pods.tsx:75
|
||||||
#: src/renderer/components/+workloads-statefulsets/statefulsets.tsx:41
|
#: src/renderer/components/+workloads-statefulsets/statefulsets.tsx:41
|
||||||
|
#: src/renderer/components/app.tsx:37
|
||||||
#: src/renderer/components/dock/edit-resource.tsx:91
|
#: src/renderer/components/dock/edit-resource.tsx:91
|
||||||
#: src/renderer/components/dock/install-chart.tsx:122
|
#: src/renderer/components/dock/install-chart.tsx:122
|
||||||
#: src/renderer/components/dock/upgrade-chart.tsx:98
|
#: src/renderer/components/dock/upgrade-chart.tsx:98
|
||||||
@ -1303,6 +1303,7 @@ msgstr ""
|
|||||||
#: src/renderer/components/+workloads-jobs/jobs.tsx:38
|
#: src/renderer/components/+workloads-jobs/jobs.tsx:38
|
||||||
#: src/renderer/components/+workloads-pods/pods.tsx:75
|
#: src/renderer/components/+workloads-pods/pods.tsx:75
|
||||||
#: src/renderer/components/+workloads-statefulsets/statefulsets.tsx:41
|
#: src/renderer/components/+workloads-statefulsets/statefulsets.tsx:41
|
||||||
|
#: src/renderer/components/app.tsx:37
|
||||||
#: src/renderer/components/dock/edit-resource.tsx:91
|
#: src/renderer/components/dock/edit-resource.tsx:91
|
||||||
#: src/renderer/components/dock/install-chart.tsx:122
|
#: src/renderer/components/dock/install-chart.tsx:122
|
||||||
#: src/renderer/components/dock/upgrade-chart.tsx:98
|
#: src/renderer/components/dock/upgrade-chart.tsx:98
|
||||||
22
package.json
22
package.json
@ -52,13 +52,18 @@
|
|||||||
"ru",
|
"ru",
|
||||||
"fi"
|
"fi"
|
||||||
],
|
],
|
||||||
|
"format": "po",
|
||||||
"sourceLocale": "en",
|
"sourceLocale": "en",
|
||||||
"fallbackLocale": "en",
|
"fallbackLocale": "en",
|
||||||
"compileNamespace": "es",
|
"compileNamespace": "cjs",
|
||||||
"format": "po",
|
"extractBabelOptions": {
|
||||||
|
"plugins": [
|
||||||
|
"@babel/plugin-syntax-dynamic-import"
|
||||||
|
]
|
||||||
|
},
|
||||||
"catalogs": [
|
"catalogs": [
|
||||||
{
|
{
|
||||||
"path": "./src/locales/{locale}/messages",
|
"path": "./locales/{locale}/messages",
|
||||||
"include": "./src/renderer"
|
"include": "./src/renderer"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@ -75,14 +80,14 @@
|
|||||||
"build": {
|
"build": {
|
||||||
"afterSign": "build/notarize.js",
|
"afterSign": "build/notarize.js",
|
||||||
"extraResources": [
|
"extraResources": [
|
||||||
{
|
|
||||||
"from": "src/locales/",
|
|
||||||
"filter": "**/*.js"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"from": "src/features/",
|
"from": "src/features/",
|
||||||
"filter": "**/*"
|
"filter": "**/*"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"from": "locales/",
|
||||||
|
"filter": "**/*.js"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"from": "static/",
|
"from": "static/",
|
||||||
"filter": "**/*"
|
"filter": "**/*"
|
||||||
@ -204,6 +209,8 @@
|
|||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.10.2",
|
"@babel/core": "^7.10.2",
|
||||||
|
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
|
||||||
|
"@babel/plugin-transform-runtime": "^7.10.1",
|
||||||
"@babel/preset-env": "^7.10.2",
|
"@babel/preset-env": "^7.10.2",
|
||||||
"@babel/preset-react": "^7.10.1",
|
"@babel/preset-react": "^7.10.1",
|
||||||
"@babel/preset-typescript": "^7.10.1",
|
"@babel/preset-typescript": "^7.10.1",
|
||||||
@ -259,6 +266,7 @@
|
|||||||
"identity-obj-proxy": "^3.0.0",
|
"identity-obj-proxy": "^3.0.0",
|
||||||
"include-media": "^1.4.9",
|
"include-media": "^1.4.9",
|
||||||
"jest": "^26.0.1",
|
"jest": "^26.0.1",
|
||||||
|
"make-plural": "^6.2.1",
|
||||||
"material-design-icons": "^3.0.1",
|
"material-design-icons": "^3.0.1",
|
||||||
"mobx": "^5.15.4",
|
"mobx": "^5.15.4",
|
||||||
"mobx-observable-history": "^1.0.3",
|
"mobx-observable-history": "^1.0.3",
|
||||||
|
|||||||
@ -1,8 +1,10 @@
|
|||||||
import moment from "moment";
|
import moment from "moment";
|
||||||
import { observable, reaction } from "mobx";
|
import { observable, reaction } from "mobx";
|
||||||
import { setupI18n } from "@lingui/core";
|
import { setupI18n } from "@lingui/core";
|
||||||
import { autobind, createStorage } from "./utils";
|
|
||||||
import orderBy from "lodash/orderBy"
|
import orderBy from "lodash/orderBy"
|
||||||
|
import { autobind, createStorage } from "./utils";
|
||||||
|
|
||||||
|
const plurals: Record<string, Function> = require('make-plural/plurals');
|
||||||
|
|
||||||
export interface ILanguage {
|
export interface ILanguage {
|
||||||
code: string;
|
code: string;
|
||||||
@ -40,17 +42,22 @@ export class LocalizationStore {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async load(locale: string) {
|
async load(locale: string) {
|
||||||
const catalog = await import(`../locales/${locale}/messages.po`);
|
const { messages } = await import(
|
||||||
return _i18n.load(locale, catalog);
|
/* webpackChunkName: "i18n-[request]" */
|
||||||
|
`@lingui/loader!../../locales/${locale}/messages.po`
|
||||||
|
);
|
||||||
|
_i18n.loadLocaleData(locale, { plurals: plurals[locale] });
|
||||||
|
_i18n.load(locale, messages);
|
||||||
}
|
}
|
||||||
|
|
||||||
async setLocale(locale: string) {
|
async setLocale(locale: string) {
|
||||||
await this.load(locale);
|
await this.load(locale);
|
||||||
await _i18n.activate(locale);
|
|
||||||
|
|
||||||
// set moment's locale before activeLang for proper next render() in app
|
// set moment's locale before activeLang for proper next render() in app
|
||||||
moment.locale(locale);
|
moment.locale(locale);
|
||||||
this.activeLang = locale;
|
this.activeLang = locale;
|
||||||
|
|
||||||
|
await _i18n.activate(locale);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -2,15 +2,11 @@
|
|||||||
const path = require("path");
|
const path = require("path");
|
||||||
|
|
||||||
module.exports = function (config, env) {
|
module.exports = function (config, env) {
|
||||||
const {module, plugins} = config;
|
const {module} = config;
|
||||||
const {rules} = module;
|
const {rules} = module;
|
||||||
|
|
||||||
// localization support
|
// localization support
|
||||||
// https://lingui.js.org/guides/typescript.html
|
// https://lingui.js.org/guides/typescript.html
|
||||||
rules.push({
|
|
||||||
test: /\.po$/,
|
|
||||||
use: '@lingui/loader'
|
|
||||||
});
|
|
||||||
patchLoader(".tsx", "ts-loader", loader => {
|
patchLoader(".tsx", "ts-loader", loader => {
|
||||||
loader.options = Object.assign({}, loader.options, {
|
loader.options = Object.assign({}, loader.options, {
|
||||||
compilerOptions: {
|
compilerOptions: {
|
||||||
@ -43,7 +39,7 @@ module.exports = function (config, env) {
|
|||||||
let loader = typeof loaders[index] === "string" ? {loader: loaders[index]} : loaders[index];
|
let loader = typeof loaders[index] === "string" ? {loader: loaders[index]} : loaders[index];
|
||||||
loaders[index] = updater(loader);
|
loaders[index] = updater(loader);
|
||||||
rule.use = loaders.flat();
|
rule.use = loaders.flat();
|
||||||
console.info(`Patched renderer's webpack loader "${loaderName}"`, loader);
|
console.info(`Patched webpack's renderer config for "${loaderName}" in ${__filename}`, loader);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -4,8 +4,8 @@
|
|||||||
"baseUrl": ".",
|
"baseUrl": ".",
|
||||||
"outDir": "./dist",
|
"outDir": "./dist",
|
||||||
"jsx": "react",
|
"jsx": "react",
|
||||||
"target": "es2017",
|
"target": "ES2017",
|
||||||
"module": "CommonJS",
|
"module": "ESNext",
|
||||||
"lib": ["ESNext", "DOM", "DOM.Iterable"],
|
"lib": ["ESNext", "DOM", "DOM.Iterable"],
|
||||||
"moduleResolution": "Node",
|
"moduleResolution": "Node",
|
||||||
"sourceMap": true,
|
"sourceMap": true,
|
||||||
|
|||||||
14
yarn.lock
14
yarn.lock
@ -729,6 +729,16 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
"@babel/helper-plugin-utils" "^7.10.1"
|
"@babel/helper-plugin-utils" "^7.10.1"
|
||||||
|
|
||||||
|
"@babel/plugin-transform-runtime@^7.10.1":
|
||||||
|
version "7.10.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.10.1.tgz#fd1887f749637fb2ed86dc278e79eb41df37f4b1"
|
||||||
|
integrity sha512-4w2tcglDVEwXJ5qxsY++DgWQdNJcCCsPxfT34wCUwIf2E7dI7pMpH8JczkMBbgBTNzBX62SZlNJ9H+De6Zebaw==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-module-imports" "^7.10.1"
|
||||||
|
"@babel/helper-plugin-utils" "^7.10.1"
|
||||||
|
resolve "^1.8.1"
|
||||||
|
semver "^5.5.1"
|
||||||
|
|
||||||
"@babel/plugin-transform-shorthand-properties@^7.10.1":
|
"@babel/plugin-transform-shorthand-properties@^7.10.1":
|
||||||
version "7.10.1"
|
version "7.10.1"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.1.tgz#e8b54f238a1ccbae482c4dce946180ae7b3143f3"
|
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.1.tgz#e8b54f238a1ccbae482c4dce946180ae7b3143f3"
|
||||||
@ -10307,7 +10317,7 @@ resolve-url@^0.2.1:
|
|||||||
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
|
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
|
||||||
integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
|
integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
|
||||||
|
|
||||||
resolve@^1.1.6, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.17.0, resolve@^1.3.2:
|
resolve@^1.1.6, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.17.0, resolve@^1.3.2, resolve@^1.8.1:
|
||||||
version "1.17.0"
|
version "1.17.0"
|
||||||
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444"
|
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444"
|
||||||
integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==
|
integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==
|
||||||
@ -10567,7 +10577,7 @@ semver-diff@^3.1.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
semver "^6.3.0"
|
semver "^6.3.0"
|
||||||
|
|
||||||
"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0:
|
"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0:
|
||||||
version "5.7.1"
|
version "5.7.1"
|
||||||
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
|
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
|
||||||
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
|
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user