mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2026-05-07 03:50:30 -05:00
update the forked idp web ui
This commit is contained in:
+13
-1
@@ -30,7 +30,9 @@ ci-go-generate: # CI runs ci-node-generate automatically before this target
|
||||
ci-node-generate: assets
|
||||
|
||||
.PHONY: assets
|
||||
assets: yarn-build \
|
||||
assets: i18n \
|
||||
ui-images \
|
||||
yarn-build \
|
||||
assets/identifier/static \
|
||||
assets/identifier/static/logo.svg \
|
||||
assets/identifier/static/favicon.ico
|
||||
@@ -56,6 +58,16 @@ yarn-build: node_modules
|
||||
#yarn test #TODO: activate
|
||||
yarn build
|
||||
|
||||
.PHONY: i18n
|
||||
i18n:
|
||||
@$(MAKE) -C ui/i18n
|
||||
|
||||
.PHONY: ui-images
|
||||
ui-images:
|
||||
@$(MAKE) -C ui/src/images
|
||||
|
||||
|
||||
|
||||
.PHONY: node_modules
|
||||
node_modules:
|
||||
yarn install --immutable
|
||||
|
||||
+88
-131
@@ -3,7 +3,46 @@
|
||||
"version": "1.0.0",
|
||||
"private": true,
|
||||
"homepage": ".",
|
||||
"dependencies": {
|
||||
"@fontsource/roboto": "^4.5.1",
|
||||
"@material-ui/core": "^4.12.3",
|
||||
"@material-ui/icons": "^4.11.2",
|
||||
"@testing-library/jest-dom": "^5.11.4",
|
||||
"@testing-library/react": "^11.1.0",
|
||||
"@testing-library/user-event": "^12.1.10",
|
||||
"@types/jest": "^26.0.15",
|
||||
"@types/node": "^12.0.0",
|
||||
"@types/react": "^17.0.2",
|
||||
"@types/react-dom": "^17.0.2",
|
||||
"@types/react-redux": "^7.1.19",
|
||||
"@types/redux-logger": "^3.0.9",
|
||||
"axios": "^0.22.0",
|
||||
"classnames": "^2.2.6",
|
||||
"eslint-loader": "^4.0.2",
|
||||
"i18next": "^21.6.13",
|
||||
"i18next-browser-languagedetector": "^6.1.3",
|
||||
"i18next-http-backend": "^1.3.2",
|
||||
"i18next-resources-to-backend": "^1.0.0",
|
||||
"query-string": "^7.1.1",
|
||||
"react": "^17.0.2",
|
||||
"react-dom": "^17.0.2",
|
||||
"react-i18next": "^11.15.6",
|
||||
"react-redux": "^7.2.5",
|
||||
"react-router": "^5.2.1",
|
||||
"react-router-dom": "5.2.1",
|
||||
"react-scripts": "4.0.3",
|
||||
"redux": "^3.7.2",
|
||||
"redux-logger": "^3.0.6",
|
||||
"redux-thunk": "^2.2.0",
|
||||
"render-if": "^0.1.1",
|
||||
"typescript": "^4.1.2",
|
||||
"web-vitals": "^1.0.1"
|
||||
},
|
||||
"scripts": {
|
||||
"eject": "react-scripts eject",
|
||||
"lint": "eslint ./src/**/*.{tsx,ts,jsx,js}",
|
||||
"licenses": "NODE_PATH=./node_modules node ../scripts/js-license-ranger.js",
|
||||
"deduplicate": "yarn-deduplicate -s fewer yarn.lock",
|
||||
"analyze": "source-map-explorer 'build/static/js/*.js'",
|
||||
"build": "node scripts/build.js && rm -f build/service-worker.js",
|
||||
"start": "node scripts/start.js",
|
||||
@@ -17,140 +56,58 @@
|
||||
"react-app"
|
||||
]
|
||||
},
|
||||
"browserslist": [
|
||||
">0.2%",
|
||||
"not dead",
|
||||
"not ie <= 11",
|
||||
"not op_mini all"
|
||||
],
|
||||
"devDependencies": {
|
||||
"cldr": "^7.1.1",
|
||||
"eslint-plugin-i18next": "^5.1.2",
|
||||
"i18next-conv": "^12.1.0",
|
||||
"i18next-parser": "^5.4.0",
|
||||
"react-dev-utils": "^11.0.4",
|
||||
"source-map-explorer": "^1.8.0",
|
||||
"webpack-manifest-plugin": "^4.1.1",
|
||||
"yarn-deduplicate": "^1.1.1"
|
||||
},
|
||||
"jest": {
|
||||
"collectCoverageFrom": [
|
||||
"src/**/*.js"
|
||||
],
|
||||
"moduleFileExtensions": [
|
||||
"web.js",
|
||||
"js",
|
||||
"web.ts",
|
||||
"ts",
|
||||
"web.tsx",
|
||||
"tsx",
|
||||
"json",
|
||||
"web.jsx",
|
||||
"jsx",
|
||||
"node"
|
||||
],
|
||||
"moduleNameMapper": {
|
||||
"^react-native$": "react-native-web",
|
||||
"^.+\\.module\\.(css|sass|scss)$": "identity-obj-proxy"
|
||||
},
|
||||
"modulePaths": [],
|
||||
"roots": [
|
||||
"<rootDir>/src"
|
||||
],
|
||||
"setupFiles": [
|
||||
"react-app-polyfill/jsdom"
|
||||
],
|
||||
"setupFilesAfterEnv": [],
|
||||
"testEnvironment": "jest-environment-jsdom-fourteen",
|
||||
"testMatch": [
|
||||
"<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}",
|
||||
"<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"
|
||||
],
|
||||
"transform": {
|
||||
"^.+\\.(js|jsx|ts|tsx)$": "<rootDir>/node_modules/babel-jest",
|
||||
"^.+\\.css$": "<rootDir>/config/jest/cssTransform.js",
|
||||
"^(?!.*\\.(js|jsx|ts|tsx|css|json)$)": "<rootDir>/config/jest/fileTransform.js"
|
||||
},
|
||||
"transformIgnorePatterns": [
|
||||
"node_modules/?!(kpop)"
|
||||
],
|
||||
"watchPlugins": [
|
||||
"jest-watch-typeahead/filename",
|
||||
"jest-watch-typeahead/testname"
|
||||
"src/**/*.{js,jsx,ts,tsx}"
|
||||
]
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.17.9",
|
||||
"@material-ui/core": "^4.8.0",
|
||||
"@material-ui/icons": "^4.5.0",
|
||||
"axios": "^0.21.1",
|
||||
"classnames": "^2.3.1",
|
||||
"dotenv": "10.0.0",
|
||||
"dotenv-expand": "5.1.0",
|
||||
"file-loader": "6.2.0",
|
||||
"fs-extra": "^9.1.0",
|
||||
"identity-obj-proxy": "3.0.0",
|
||||
"kpop": "https://download.kopano.io/community/kapp:/kpop-2.2.0.tgz",
|
||||
"query-string": "^6.14.1",
|
||||
"react": "^17.0.1",
|
||||
"react-app-polyfill": "^2.0.0",
|
||||
"react-dom": "17.0.1",
|
||||
"react-intl": "^5.20.6",
|
||||
"react-loadable": "^5.3.1",
|
||||
"react-redux": "^7.2.4",
|
||||
"react-router": "^5.0.0",
|
||||
"react-router-dom": "^5.2.0",
|
||||
"redux": "^4.0.5",
|
||||
"redux-logger": "^3.0.6",
|
||||
"redux-thunk": "^2.2.0",
|
||||
"render-if": "^0.1.1",
|
||||
"semver": "7.3.4",
|
||||
"typeface-roboto": "^1.1.13"
|
||||
"eslintConfig": {
|
||||
"plugins": [
|
||||
"i18next"
|
||||
],
|
||||
"extends": [
|
||||
"react-app",
|
||||
"react-app/jest",
|
||||
"plugin:@typescript-eslint/recommended",
|
||||
"plugin:i18next/recommended"
|
||||
],
|
||||
"rules": {
|
||||
"no-unused-vars": "off",
|
||||
"@typescript-eslint/no-unused-vars": [
|
||||
"error"
|
||||
],
|
||||
"no-use-before-define": "off",
|
||||
"@typescript-eslint/no-use-before-define": [
|
||||
"error"
|
||||
],
|
||||
"i18next/no-literal-string": [
|
||||
"off",
|
||||
{
|
||||
"markupOnly": true
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/runtime": "7.13.10",
|
||||
"@svgr/webpack": "5.5.0",
|
||||
"@typescript-eslint/eslint-plugin": "^4.17.0",
|
||||
"@typescript-eslint/parser": "^4.32.0",
|
||||
"babel-eslint": "10.1.0",
|
||||
"babel-jest": "^26.6.3",
|
||||
"babel-loader": "8.2.2",
|
||||
"babel-plugin-named-asset-import": "^0.3.8",
|
||||
"babel-preset-react-app": "^10.0.0",
|
||||
"camelcase": "^6.2.0",
|
||||
"case-sensitive-paths-webpack-plugin": "2.4.0",
|
||||
"css-loader": "5.2.6",
|
||||
"eslint": "^7.21.0",
|
||||
"eslint-config-react-app": "^6.0.0",
|
||||
"eslint-loader": "4.0.2",
|
||||
"eslint-plugin-flowtype": "5.7.2",
|
||||
"eslint-plugin-i18n-text": "^1.0.0",
|
||||
"eslint-plugin-import": "2.22.1",
|
||||
"eslint-plugin-jest": "^24.2.1",
|
||||
"eslint-plugin-react": "7.22.0",
|
||||
"eslint-plugin-react-hooks": "^4.2.0",
|
||||
"eslint-plugin-react-intl-format": "^1.1.6",
|
||||
"html-webpack-plugin": "4.5.2",
|
||||
"jest": "26.6.3",
|
||||
"jest-environment-jsdom-fourteen": "1.0.1",
|
||||
"jest-resolve": "27.2.2",
|
||||
"jest-watch-typeahead": "0.6.1",
|
||||
"license-checker-rseidelsohn": "^3.1.0",
|
||||
"mini-css-extract-plugin": "1.3.9",
|
||||
"optimize-css-assets-webpack-plugin": "5.0.4",
|
||||
"pnp-webpack-plugin": "1.6.4",
|
||||
"postcss-flexbugs-fixes": "4.1.0",
|
||||
"postcss-loader": "3.0.0",
|
||||
"postcss-normalize": "9.0.0",
|
||||
"postcss-preset-env": "6.7.0",
|
||||
"postcss-safe-parser": "5.0.2",
|
||||
"prop-types": "^15.6.2",
|
||||
"react-dev-utils": "11.0.4",
|
||||
"react-intl-cra": "^0.3.3",
|
||||
"react-intl-po": "^2.2.2",
|
||||
"resolve": "1.20.0",
|
||||
"resolve-url-loader": "^3.1.2",
|
||||
"sass-loader": "11.0.1",
|
||||
"source-map-explorer": "^2.5.2",
|
||||
"style-loader": "2.0.0",
|
||||
"terser-webpack-plugin": "4.2.3",
|
||||
"ts-pnp": "1.2.0",
|
||||
"url-loader": "4.1.1",
|
||||
"webpack": "4.46.0",
|
||||
"webpack-dev-server": "^3.11.2",
|
||||
"webpack-manifest-plugin": "3.1.0",
|
||||
"workbox-webpack-plugin": "4.3.1",
|
||||
"yarn-deduplicate": "^3.1.0"
|
||||
},
|
||||
"packageManager": "yarn@3.1.0"
|
||||
"browserslist": {
|
||||
"production": [
|
||||
">0.2%",
|
||||
"not dead",
|
||||
"not op_mini all"
|
||||
],
|
||||
"development": [
|
||||
"last 1 chrome version",
|
||||
"last 1 firefox version",
|
||||
"last 1 safari version"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,156 @@
|
||||
{
|
||||
"name": "identifier",
|
||||
"version": "1.0.0",
|
||||
"private": true,
|
||||
"homepage": ".",
|
||||
"scripts": {
|
||||
"analyze": "source-map-explorer 'build/static/js/*.js'",
|
||||
"build": "node scripts/build.js && rm -f build/service-worker.js",
|
||||
"start": "node scripts/start.js",
|
||||
"test": "node scripts/test.js --env=jsdom",
|
||||
"licenses:check": "license-checker-rseidelsohn --summary --relativeLicensePath --onlyAllow 'Python-2.0;Apache*;Apache License, Version 2.0;Apache-2.0;Apache 2.0;Artistic-2.0;BSD;BSD-3-Clause;CC-BY-3.0;CC-BY-4.0;CC0-1.0;ISC;MIT;MPL-2.0;Public Domain;Unicode-TOU;Unlicense;WTFPL' --excludePackages 'identifier;kpop;po2json;unicoderegexp'",
|
||||
"licenses:csv": "license-checker-rseidelsohn --relativeLicensePath --csv --out ../third-party-licenses/node/idp/third-party-licenses.csv",
|
||||
"licenses:save": "license-checker-rseidelsohn --relativeLicensePath --out /dev/null --files ../third-party-licenses/node/idp/third-party-licenses"
|
||||
},
|
||||
"babel": {
|
||||
"presets": [
|
||||
"react-app"
|
||||
]
|
||||
},
|
||||
"browserslist": [
|
||||
">0.2%",
|
||||
"not dead",
|
||||
"not ie <= 11",
|
||||
"not op_mini all"
|
||||
],
|
||||
"jest": {
|
||||
"collectCoverageFrom": [
|
||||
"src/**/*.js"
|
||||
],
|
||||
"moduleFileExtensions": [
|
||||
"web.js",
|
||||
"js",
|
||||
"web.ts",
|
||||
"ts",
|
||||
"web.tsx",
|
||||
"tsx",
|
||||
"json",
|
||||
"web.jsx",
|
||||
"jsx",
|
||||
"node"
|
||||
],
|
||||
"moduleNameMapper": {
|
||||
"^react-native$": "react-native-web",
|
||||
"^.+\\.module\\.(css|sass|scss)$": "identity-obj-proxy"
|
||||
},
|
||||
"modulePaths": [],
|
||||
"roots": [
|
||||
"<rootDir>/src"
|
||||
],
|
||||
"setupFiles": [
|
||||
"react-app-polyfill/jsdom"
|
||||
],
|
||||
"setupFilesAfterEnv": [],
|
||||
"testEnvironment": "jest-environment-jsdom-fourteen",
|
||||
"testMatch": [
|
||||
"<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}",
|
||||
"<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"
|
||||
],
|
||||
"transform": {
|
||||
"^.+\\.(js|jsx|ts|tsx)$": "<rootDir>/node_modules/babel-jest",
|
||||
"^.+\\.css$": "<rootDir>/config/jest/cssTransform.js",
|
||||
"^(?!.*\\.(js|jsx|ts|tsx|css|json)$)": "<rootDir>/config/jest/fileTransform.js"
|
||||
},
|
||||
"transformIgnorePatterns": [
|
||||
"node_modules/?!(kpop)"
|
||||
],
|
||||
"watchPlugins": [
|
||||
"jest-watch-typeahead/filename",
|
||||
"jest-watch-typeahead/testname"
|
||||
]
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.17.9",
|
||||
"@material-ui/core": "^4.8.0",
|
||||
"@material-ui/icons": "^4.5.0",
|
||||
"axios": "^0.21.1",
|
||||
"classnames": "^2.3.1",
|
||||
"dotenv": "10.0.0",
|
||||
"dotenv-expand": "5.1.0",
|
||||
"file-loader": "6.2.0",
|
||||
"fs-extra": "^9.1.0",
|
||||
"identity-obj-proxy": "3.0.0",
|
||||
"kpop": "https://download.kopano.io/community/kapp:/kpop-2.2.0.tgz",
|
||||
"query-string": "^6.14.1",
|
||||
"react": "^17.0.1",
|
||||
"react-app-polyfill": "^2.0.0",
|
||||
"react-dom": "17.0.1",
|
||||
"react-intl": "^5.20.6",
|
||||
"react-loadable": "^5.3.1",
|
||||
"react-redux": "^7.2.4",
|
||||
"react-router": "^5.0.0",
|
||||
"react-router-dom": "^5.2.0",
|
||||
"redux": "^4.0.5",
|
||||
"redux-logger": "^3.0.6",
|
||||
"redux-thunk": "^2.2.0",
|
||||
"render-if": "^0.1.1",
|
||||
"semver": "7.3.4",
|
||||
"typeface-roboto": "^1.1.13"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/runtime": "7.13.10",
|
||||
"@svgr/webpack": "5.5.0",
|
||||
"@typescript-eslint/eslint-plugin": "^4.17.0",
|
||||
"@typescript-eslint/parser": "^4.32.0",
|
||||
"babel-eslint": "10.1.0",
|
||||
"babel-jest": "^26.6.3",
|
||||
"babel-loader": "8.2.2",
|
||||
"babel-plugin-named-asset-import": "^0.3.8",
|
||||
"babel-preset-react-app": "^10.0.0",
|
||||
"camelcase": "^6.2.0",
|
||||
"case-sensitive-paths-webpack-plugin": "2.4.0",
|
||||
"css-loader": "5.2.6",
|
||||
"eslint": "^7.21.0",
|
||||
"eslint-config-react-app": "^6.0.0",
|
||||
"eslint-loader": "4.0.2",
|
||||
"eslint-plugin-flowtype": "5.7.2",
|
||||
"eslint-plugin-i18n-text": "^1.0.0",
|
||||
"eslint-plugin-import": "2.22.1",
|
||||
"eslint-plugin-jest": "^24.2.1",
|
||||
"eslint-plugin-react": "7.22.0",
|
||||
"eslint-plugin-react-hooks": "^4.2.0",
|
||||
"eslint-plugin-react-intl-format": "^1.1.6",
|
||||
"html-webpack-plugin": "4.5.2",
|
||||
"jest": "26.6.3",
|
||||
"jest-environment-jsdom-fourteen": "1.0.1",
|
||||
"jest-resolve": "27.2.2",
|
||||
"jest-watch-typeahead": "0.6.1",
|
||||
"license-checker-rseidelsohn": "^3.1.0",
|
||||
"mini-css-extract-plugin": "1.3.9",
|
||||
"optimize-css-assets-webpack-plugin": "5.0.4",
|
||||
"pnp-webpack-plugin": "1.6.4",
|
||||
"postcss-flexbugs-fixes": "4.1.0",
|
||||
"postcss-loader": "3.0.0",
|
||||
"postcss-normalize": "9.0.0",
|
||||
"postcss-preset-env": "6.7.0",
|
||||
"postcss-safe-parser": "5.0.2",
|
||||
"prop-types": "^15.6.2",
|
||||
"react-dev-utils": "11.0.4",
|
||||
"react-intl-cra": "^0.3.3",
|
||||
"react-intl-po": "^2.2.2",
|
||||
"resolve": "1.20.0",
|
||||
"resolve-url-loader": "^3.1.2",
|
||||
"sass-loader": "11.0.1",
|
||||
"source-map-explorer": "^2.5.2",
|
||||
"style-loader": "2.0.0",
|
||||
"terser-webpack-plugin": "4.2.3",
|
||||
"ts-pnp": "1.2.0",
|
||||
"url-loader": "4.1.1",
|
||||
"webpack": "4.46.0",
|
||||
"webpack-dev-server": "^3.11.2",
|
||||
"webpack-manifest-plugin": "3.1.0",
|
||||
"workbox-webpack-plugin": "4.3.1",
|
||||
"yarn-deduplicate": "^3.1.0"
|
||||
},
|
||||
"packageManager": "yarn@3.1.0"
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"target": "es5",
|
||||
"lib": [
|
||||
"dom",
|
||||
"dom.iterable",
|
||||
"esnext"
|
||||
],
|
||||
"allowJs": true,
|
||||
"skipLibCheck": true,
|
||||
"esModuleInterop": true,
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"strict": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
"module": "esnext",
|
||||
"moduleResolution": "node",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"noEmit": true,
|
||||
"jsx": "react-jsx",
|
||||
"plugins": [
|
||||
]
|
||||
},
|
||||
"include": [
|
||||
"ui/src"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
*.mo
|
||||
dev-translation.json
|
||||
@@ -1,52 +1,57 @@
|
||||
# Tools
|
||||
|
||||
YARN ?= yarn
|
||||
MSGCAT ?= msgcat
|
||||
MSGMERGE ?= msgmerge
|
||||
MSGFMT ?= msgfmt
|
||||
|
||||
# Variables
|
||||
|
||||
POT = konnect-identifier.pot
|
||||
POS = $(wildcard *.po)
|
||||
POT = translation.pot
|
||||
POS ?= $(wildcard *.po)
|
||||
|
||||
# Translations
|
||||
|
||||
.PHONY: build
|
||||
build: json
|
||||
|
||||
.PYTHON: json
|
||||
json:
|
||||
@for po in $(POS); do \
|
||||
lang=$$(echo $$po | sed "s/\.po//"); \
|
||||
$(YARN) i18next-conv -K --skipUntranslated -l $$lang -s ../i18n/$$po -t ../src/locales/$$lang/translation.json; \
|
||||
done
|
||||
$(YARN) node ../i18n/build-json.js ../src/locales/locales.json $(POS)
|
||||
|
||||
dev-translation.json: FORCE
|
||||
$(YARN) i18next --fail-on-warnings
|
||||
|
||||
.PHONY: extract
|
||||
extract: pot
|
||||
|
||||
.PHONY: i18n/src/messages.json
|
||||
i18n/src/messages.json:
|
||||
$(YARN) react-intl-cra './src/**/*.{js,jsx}' -o $@
|
||||
|
||||
.PHONY: pot
|
||||
pot: i18n/src/messages.json
|
||||
$(YARN) rip json2pot './i18n/src/**/*.json' \
|
||||
-o ./i18n/$(POT) \
|
||||
-c 'id'
|
||||
|
||||
.PHONY: json
|
||||
json: i18n/src/messages.json
|
||||
$(YARN) rip po2json './i18n/*.po' \
|
||||
-m './i18n/src/**/*.json' \
|
||||
-o './src/locales/' \
|
||||
-c 'id' \
|
||||
--indentation=2
|
||||
pot: dev-translation.json
|
||||
@tmpfile1=$(shell mktemp).po; \
|
||||
tmpfile2=$(shell mktemp).po; \
|
||||
trap 'rm -f "$$tmpfile1" "$$tmpfile2"' EXIT; \
|
||||
$(YARN) i18next-conv --project "LibreGraph Connect Identifier" -K -l en -s i18n/dev-translation.json -t $$tmpfile1; \
|
||||
$(YARN) node i18n/build-pot.js $$tmpfile1 $$tmpfile2; \
|
||||
$(MSGCAT) --no-wrap -o $(POT) $$tmpfile2
|
||||
|
||||
.PHONY: merge
|
||||
merge: $(POS)
|
||||
|
||||
$(POS): FORCE $(POT)
|
||||
@echo -n "$@ " && \
|
||||
$(MSGMERGE) -U \
|
||||
--backup=none \
|
||||
--no-wrap \
|
||||
--sort-output \
|
||||
$@ $(POT)
|
||||
|
||||
.PHONY: stats
|
||||
stats:
|
||||
$(foreach po, $(POS), $(shell $(MSGFMT) -v --statistics $(po)))
|
||||
@- true
|
||||
|
||||
$(POS): FORCE $(POT)
|
||||
$(MSGMERGE) -U \
|
||||
--backup=none \
|
||||
--no-wrap \
|
||||
$@ $(POT)
|
||||
|
||||
FORCE:
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
const cldr = require('cldr');
|
||||
|
||||
if (process.argv.length < 4) {
|
||||
throw new Error('usage error: at least 2 arguments are required!');
|
||||
}
|
||||
|
||||
const output = process.argv[2];
|
||||
const pos = process.argv.slice(3);
|
||||
|
||||
const englishLanguageDisplayNames = cldr.extractLanguageDisplayNames('en');
|
||||
const englishTerritoryDisplayNames = cldr.extractTerritoryDisplayNames('en');
|
||||
|
||||
function localeCapitalize(s, locale) {
|
||||
return s.charAt(0).toLocaleUpperCase(locale) + s.slice(1)
|
||||
}
|
||||
|
||||
function Locale(locale, overrides={}) {
|
||||
let ietf = null;
|
||||
let [code, country] = locale.split('-', 2);
|
||||
switch(locale) {
|
||||
// Additional mapping.
|
||||
case 'zh-CN':
|
||||
code = 'zh_hans';
|
||||
ietf = code;
|
||||
country = null;
|
||||
break;
|
||||
case 'zh-TW':
|
||||
code = 'zh_hant';
|
||||
ietf = code;
|
||||
country = null;
|
||||
break;
|
||||
default:
|
||||
}
|
||||
overrides = ietf ? {
|
||||
ietf,
|
||||
...overrides,
|
||||
} : overrides;
|
||||
|
||||
const languageDisplayNames = cldr.extractLanguageDisplayNames(code);
|
||||
if (languageDisplayNames) {
|
||||
let name = localeCapitalize(englishLanguageDisplayNames[code], 'en');
|
||||
let nativeName = localeCapitalize(languageDisplayNames[code], locale);
|
||||
if (name && nativeName) {
|
||||
if (country) {
|
||||
let countryNative = localeCapitalize(cldr.extractTerritoryDisplayNames(code)[country], locale);
|
||||
nativeName = `${nativeName} (${countryNative})`;
|
||||
name = `${name} (${localeCapitalize(englishTerritoryDisplayNames[country], 'en')})`;
|
||||
}
|
||||
return {
|
||||
locale,
|
||||
name,
|
||||
nativeName,
|
||||
...cldr.extractLayout(code),
|
||||
...overrides,
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var locales = [
|
||||
Locale('en-GB', { name: 'English', nativeName: 'English' }), // Always add en-GB as English.
|
||||
]
|
||||
|
||||
pos.map((po) => {
|
||||
const locale = Locale(po.replace(/\.[^/.]+$/, ''));
|
||||
if (locale) {
|
||||
locales.push(locale);
|
||||
}
|
||||
});
|
||||
|
||||
locales.sort((a, b) => {
|
||||
return a.locale > b.locale ? 1 : -1;
|
||||
})
|
||||
|
||||
require('fs').writeFileSync(output, JSON.stringify(locales, null, 2));
|
||||
@@ -0,0 +1,26 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
var gettextParser = require("gettext-parser");
|
||||
|
||||
const args = process.argv.slice(2);
|
||||
|
||||
var input = require('fs').readFileSync(args[0]);
|
||||
var po = gettextParser.po.parse(input);
|
||||
|
||||
Object.entries(po.translations[""]).map(([context, v]) => {
|
||||
if (v.msgid) {
|
||||
if (!v.comments) {
|
||||
v.comments = {};
|
||||
}
|
||||
v.comments.extracted = "From: " + (v.comments.reference || '');
|
||||
}
|
||||
});
|
||||
|
||||
delete po.headers["PO-Revision-Date"];
|
||||
delete po.headers["Language"];
|
||||
delete po.headers["Plural-Forms"];
|
||||
delete po.headers["mime-version"];
|
||||
po.headers["MIME-Version"] = "1.0";
|
||||
|
||||
var output = gettextParser.po.compile(po);
|
||||
require('fs').writeFileSync(args[1], output);
|
||||
+136
-221
@@ -1,8 +1,8 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"POT-Creation-Date: 2019-05-09T14:09:27.715Z\n"
|
||||
"PO-Revision-Date: 2019-05-08 18:23+0200\n"
|
||||
"POT-Creation-Date: 2022-03-09T19:33:04.641Z\n"
|
||||
"PO-Revision-Date: 2022-03-10 09:40+0100\n"
|
||||
"Last-Translator: Simon Eisenmann <simon@longsleep.org>\n"
|
||||
"Language-Team: German <http://translate.kopano.io/projects/kopano/konnect/de/>\n"
|
||||
"Language: de\n"
|
||||
@@ -10,300 +10,215 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Poedit 1.8.7.1\n"
|
||||
"X-Generator: Poedit 2.3\n"
|
||||
|
||||
#. [konnect.chooseaccount.useOther.persona.label]
|
||||
#. defaultMessage is:
|
||||
#. ?
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.useOther.persona.label"
|
||||
#. From: konnect##consent##message
|
||||
#: konnect##consent##message
|
||||
msgid "<0><0><0></0></0></0> wants to"
|
||||
msgstr "<0><0><0></0></0></0> möchte"
|
||||
|
||||
#. From: konnect##chooseaccount##useOther##persona##label
|
||||
#: konnect##chooseaccount##useOther##persona##label
|
||||
msgid "?"
|
||||
msgstr "?"
|
||||
|
||||
#. [konnect.scopeDescription.aliasBasic]
|
||||
#. defaultMessage is:
|
||||
#. Access your basic account information
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.aliasBasic"
|
||||
#. From: konnect##scopeDescription##aliasBasic
|
||||
#: konnect##scopeDescription##aliasBasic
|
||||
msgid "Access your basic account information"
|
||||
msgstr "Zugriff auf Ihre grundlegenden Benutzerinformationen"
|
||||
|
||||
#. [konnect.consent.allowButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Allow
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.allowButton.label"
|
||||
#. From: konnect##consent##allowButton##label
|
||||
#: konnect##consent##allowButton##label
|
||||
msgid "Allow"
|
||||
msgstr "Einverstanden"
|
||||
|
||||
#. [konnect.consent.question]
|
||||
#. defaultMessage is:
|
||||
#. Allow {clientDisplayName} to do this?
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.question"
|
||||
msgid "Allow {clientDisplayName} to do this?"
|
||||
msgstr "{clientDisplayName} den Zugriff gestatten?"
|
||||
#. From: konnect##consent##question
|
||||
#: konnect##consent##question
|
||||
msgid "Allow <1><0></0></1> to do this?"
|
||||
msgstr "<1><0></0></1> den Zugriff gestatten?"
|
||||
|
||||
#. [konnect.consent.consequence]
|
||||
#. defaultMessage is:
|
||||
#. By clicking Allow, you allow this app to use your information.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.consequence"
|
||||
#. From: konnect##consent##consequence
|
||||
#: konnect##consent##consequence
|
||||
msgid "By clicking Allow, you allow this app to use your information."
|
||||
msgstr "Wenn Sie Einverstanden klicken, erhält die App Zugriff auf Ihre Informationen."
|
||||
|
||||
#. [konnect.consent.cancelButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Cancel
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.cancelButton.label"
|
||||
#. From: konnect##consent##cancelButton##label
|
||||
#: konnect##consent##cancelButton##label
|
||||
msgid "Cancel"
|
||||
msgstr "Abbrechen"
|
||||
|
||||
#. [konnect.chooseaccount.headline]
|
||||
#. defaultMessage is:
|
||||
#. Choose an account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.headline"
|
||||
#. From: konnect##chooseaccount##headline
|
||||
#: konnect##chooseaccount##headline
|
||||
msgid "Choose an account"
|
||||
msgstr "Konto auswählen"
|
||||
|
||||
#. [konnect.consent.tooltip.client]
|
||||
#. defaultMessage is:
|
||||
#. Clicking "Allow" will redirect you to: {redirectURI}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.tooltip.client"
|
||||
msgid "Clicking \"Allow\" will redirect you to: {redirectURI}"
|
||||
msgstr "Wenn Sie \"Einverstanden\" klicken werden Sie zu {redirectURI} weitergeleitet"
|
||||
#. From: konnect##consent##tooltip##client
|
||||
#: konnect##consent##tooltip##client
|
||||
msgid "Clicking \"Allow\" will redirect you to: {{redirectURI}}"
|
||||
msgstr "Wenn Sie \"Einverstanden\" klicken werden Sie zu {{redirectURI}} weitergeleitet"
|
||||
|
||||
#. [konnect.error.login.validate.missingPassword]
|
||||
#. defaultMessage is:
|
||||
#. Enter a password
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.validate.missingPassword"
|
||||
msgid "Enter a password"
|
||||
msgstr "Geben Sie ein Passwort ein"
|
||||
#. From: konnect##login##usernameField##placeholder##email
|
||||
#: konnect##login##usernameField##placeholder##email
|
||||
msgid "Email"
|
||||
msgstr "E-Mail"
|
||||
|
||||
#. [konnect.error.login.validate.missingUsername]
|
||||
#. defaultMessage is:
|
||||
#. Enter an username
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.validate.missingUsername"
|
||||
msgid "Enter an username"
|
||||
msgstr "Geben Sie einen Benutzername ein"
|
||||
#. From: konnect##error##login##validate##missingUsername
|
||||
#: konnect##error##login##validate##missingUsername
|
||||
msgid "Enter a valid value."
|
||||
msgstr "Geben Sie einen gültigen Wert ein."
|
||||
|
||||
#. [konnect.loading.error.headline]
|
||||
#. defaultMessage is:
|
||||
#. Failed to connect to server
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.loading.error.headline"
|
||||
#. From: konnect##error##login##validate##missingPassword
|
||||
#: konnect##error##login##validate##missingPassword
|
||||
msgid "Enter your password."
|
||||
msgstr "Geben Sie ein Passwort ein."
|
||||
|
||||
#. From: konnect##loading##error##headline
|
||||
#: konnect##loading##error##headline
|
||||
msgid "Failed to connect to server"
|
||||
msgstr "Verbindung zum Server fehlgeschlagen"
|
||||
|
||||
#. [konnect.goodbye.headline]
|
||||
#. defaultMessage is:
|
||||
#. Goodbye
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.headline"
|
||||
#. From: konnect##goodbye##headline
|
||||
#: konnect##goodbye##headline
|
||||
msgid "Goodbye"
|
||||
msgstr "Bis bald"
|
||||
|
||||
#. [konnect.goodbye.confirm.headline]
|
||||
#. defaultMessage is:
|
||||
#. Hello {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.confirm.headline"
|
||||
msgid "Hello {displayName}"
|
||||
msgstr "Hallo {displayName}"
|
||||
#. From: konnect##goodbye##confirm##headline
|
||||
#: konnect##goodbye##confirm##headline
|
||||
msgid "Hello {{displayName}}"
|
||||
msgstr "Hallo {{displayName}}"
|
||||
|
||||
#. [konnect.consent.headline]
|
||||
#. defaultMessage is:
|
||||
#. Hi {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.headline"
|
||||
msgid "Hi {displayName}"
|
||||
msgstr "Hi {displayName}"
|
||||
#. From: konnect##consent##headline
|
||||
#: konnect##consent##headline
|
||||
msgid "Hi {{displayName}}"
|
||||
msgstr "Hallo {{displayName}}"
|
||||
|
||||
#. [konnect.scopeDescription.offlineAccess]
|
||||
#. defaultMessage is:
|
||||
#. Keep the allowed access persistently and forever
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.offlineAccess"
|
||||
#. From: konnect##login##usernameField##placeholder##identity
|
||||
#: konnect##login##usernameField##placeholder##identity
|
||||
msgid "Identity"
|
||||
msgstr "Identität"
|
||||
|
||||
#. From: konnect##scopeDescription##offlineAccess
|
||||
#: konnect##scopeDescription##offlineAccess
|
||||
msgid "Keep the allowed access persistently and forever"
|
||||
msgstr "Dauerhaften Zugriff (läuft nicht ab)"
|
||||
|
||||
#. [konnect.error.login.failed]
|
||||
#. defaultMessage is:
|
||||
#. Logon failed. Please verify your credentials and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.failed"
|
||||
#. From: konnect##error##login##failed
|
||||
#: konnect##error##login##failed
|
||||
msgid "Logon failed. Please verify your credentials and try again."
|
||||
msgstr "Anmeldung fehlgeschlagen. Bitte überprüfen Sie Ihre Eingabe und versuchen Sie es noch einmal."
|
||||
|
||||
#. [konnet.error.http.networkError]
|
||||
#. defaultMessage is:
|
||||
#. Network error. Please check your connection and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnet.error.http.networkError"
|
||||
#. From: konnect##error##http##networkError
|
||||
#: konnect##error##http##networkError
|
||||
msgid "Network error. Please check your connection and try again."
|
||||
msgstr "Netzwerkfehler. Bitte prüfen Sie Ihre Verbindung und versuchen Sie es noch einmal."
|
||||
|
||||
#. [konnect.login.nextButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Next
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.nextButton.label"
|
||||
#. From: konnect##login##nextButton##label
|
||||
#: konnect##login##nextButton##label
|
||||
msgid "Next"
|
||||
msgstr "Weiter"
|
||||
|
||||
#. [konnect.login.passwordField.label]
|
||||
#. defaultMessage is:
|
||||
#. Password
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.passwordField.label"
|
||||
#. From: konnect##login##passwordField##label
|
||||
#: konnect##login##passwordField##label
|
||||
msgid "Password"
|
||||
msgstr "Passwort"
|
||||
|
||||
#. [konnect.goodbye.message.confirm]
|
||||
#. defaultMessage is:
|
||||
#. Press the button below, to sign out from your Kopano account now.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.message.confirm"
|
||||
msgid "Press the button below, to sign out from your Kopano account now."
|
||||
msgstr "Klicken Sie auf die Schaltfläche unten um sich aus Ihrem Kopano Konto abzumelden."
|
||||
#. From: konnect##goodbye##message##confirm
|
||||
#: konnect##goodbye##message##confirm
|
||||
msgid "Press the button below, to sign out from your account now."
|
||||
msgstr "Klicken Sie auf die Schaltfläche unten um sich aus Ihrem Konto abzumelden."
|
||||
|
||||
#. [konnect.login.retryButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Retry
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.retryButton.label"
|
||||
#. From: konnect##login##retryButton##label
|
||||
#: konnect##login##retryButton##label
|
||||
msgid "Retry"
|
||||
msgstr "Wiederholen"
|
||||
|
||||
#. [konnect.scopeDescription.scope]
|
||||
#. defaultMessage is:
|
||||
#. Scope: {scope}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.scope"
|
||||
msgid "Scope: {scope}"
|
||||
msgstr "Geltungsbereich: {scope}"
|
||||
#. From: konnect##scopeDescription##scope
|
||||
#: konnect##scopeDescription##scope
|
||||
msgid "Scope: {{scope}}"
|
||||
msgstr "Geltungsbereich: {{scope}}"
|
||||
|
||||
#. [konnect.login.headline]
|
||||
#. defaultMessage is:
|
||||
#. Sign in
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.headline"
|
||||
#. From: konnect##login##headline
|
||||
#: konnect##login##headline
|
||||
msgid "Sign in"
|
||||
msgstr "Anmelden"
|
||||
|
||||
#. [konnect.goodbye.signoutButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.signoutButton.label"
|
||||
#. From: konnect##goodbye##signoutButton##label
|
||||
#. konnect##welcome##signoutButton##label
|
||||
#: konnect##goodbye##signoutButton##label
|
||||
#: konnect##welcome##signoutButton##label
|
||||
msgid "Sign out"
|
||||
msgstr "Abmelden"
|
||||
|
||||
#. [konnect.welcome.signoutButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.signoutButton.label"
|
||||
msgid "Sign out"
|
||||
msgstr "Abmelden"
|
||||
#. From: konnect##error##http##unexpectedResponseStatus
|
||||
#: konnect##error##http##unexpectedResponseStatus
|
||||
msgid "Unexpected HTTP response: {{status}}. Please check your connection and try again."
|
||||
msgstr "Unerwartete HTTP-Antwort: {{status}}. Bitte prüfen Sie Ihre Verbindung und versuchen Sie es noch einmal."
|
||||
|
||||
#. [konnect.error.http.unexpectedResponseStatus]
|
||||
#. defaultMessage is:
|
||||
#. Unexpected HTTP response: {status}. Please check your connection and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.http.unexpectedResponseStatus"
|
||||
msgid "Unexpected HTTP response: {status}. Please check your connection and try again."
|
||||
msgstr "Unerwartete HTTP-Antwort: {status}. Bitte prüfen Sie Ihre Verbindung und versuchen Sie es noch einmal."
|
||||
#. From: konnect##error##http##unexpectedResponseState
|
||||
#: konnect##error##http##unexpectedResponseState
|
||||
msgid "Unexpected response state: {{state}}"
|
||||
msgstr "Unerwarteter Antwort-Status: {{state}}"
|
||||
|
||||
#. [konnect.error.http.unexpectedResponseState]
|
||||
#. defaultMessage is:
|
||||
#. Unexpected response state: {state}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.http.unexpectedResponseState"
|
||||
msgid "Unexpected response state: {state}"
|
||||
msgstr "Unerwarteter Antwort-Status: {state}"
|
||||
|
||||
#. [konnect.chooseaccount.useOther.label]
|
||||
#. defaultMessage is:
|
||||
#. Use another account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.useOther.label"
|
||||
#. From: konnect##chooseaccount##useOther##label
|
||||
#: konnect##chooseaccount##useOther##label
|
||||
msgid "Use another account"
|
||||
msgstr "Anderes Konto"
|
||||
|
||||
#. [konnect.login.usernameField.label]
|
||||
#. defaultMessage is:
|
||||
#. Username
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.usernameField.label"
|
||||
#. From: konnect##login##usernameField##placeholder##username
|
||||
#: konnect##login##usernameField##placeholder##username
|
||||
msgid "Username"
|
||||
msgstr "Benutzername"
|
||||
|
||||
#. [konnect.welcome.headline]
|
||||
#. defaultMessage is:
|
||||
#. Welcome {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.headline"
|
||||
msgid "Welcome {displayName}"
|
||||
msgstr "Willkommen {displayName}"
|
||||
#. From: konnect##welcome##headline
|
||||
#: konnect##welcome##headline
|
||||
msgid "Welcome {{displayName}}"
|
||||
msgstr "Willkommen {{displayName}}"
|
||||
|
||||
#. [konnect.welcome.message]
|
||||
#. defaultMessage is:
|
||||
#. You are signed in - awesome!
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.message"
|
||||
#. From: konnect##welcome##message
|
||||
#: konnect##welcome##message
|
||||
msgid "You are signed in - awesome!"
|
||||
msgstr "Sie sind angemeldet - super!"
|
||||
|
||||
#. [konnect.goodbye.message.close]
|
||||
#. defaultMessage is:
|
||||
#. You can close this window now.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.message.close"
|
||||
#. From: konnect##goodbye##message##close
|
||||
#: konnect##goodbye##message##close
|
||||
msgid "You can close this window now."
|
||||
msgstr "Sie können dieses Fenster jetzt schließen."
|
||||
|
||||
#. [konnect.goodbye.confirm.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. please confirm sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.confirm.subHeader"
|
||||
#. From: konnect##goodbye##confirm##subHeader
|
||||
#: konnect##goodbye##confirm##subHeader
|
||||
msgid "please confirm sign out"
|
||||
msgstr "Bitte bestätigen Sie, dass Sie sich abmelden möchten"
|
||||
|
||||
#. [konnect.chooseaccount.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. to sign in to Kopano
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.subHeader"
|
||||
msgid "to sign in to Kopano"
|
||||
msgstr "um sich bei Kopano anzumelden"
|
||||
#. From: konnect##chooseaccount##subHeader
|
||||
#: konnect##chooseaccount##subHeader
|
||||
msgid "to sign in"
|
||||
msgstr "das angemeldet werden soll"
|
||||
|
||||
#. [konnect.login.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. with your Kopano account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.subHeader"
|
||||
msgid "with your Kopano account"
|
||||
msgstr "mit Ihrem Kopano Konto"
|
||||
#. From: konnect##goodbye##subHeader
|
||||
#: konnect##goodbye##subHeader
|
||||
msgid "you have been signed out from your account"
|
||||
msgstr "sie sind jetzt abgemeldet"
|
||||
|
||||
#. [konnect.goodbye.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. you have been signed out from your Kopano account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.subHeader"
|
||||
msgid "you have been signed out from your Kopano account"
|
||||
msgstr "sie sind jetzt von Ihrem Kopano Konto abgemeldet"
|
||||
#~ msgctxt "konnect.consent.question"
|
||||
#~ msgid "Allow {clientDisplayName} to do this?"
|
||||
#~ msgstr "{clientDisplayName} den Zugriff gestatten?"
|
||||
|
||||
#. [konnect.consent.message]
|
||||
#. defaultMessage is:
|
||||
#. {clientDisplayName} wants to
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.message"
|
||||
msgid "{clientDisplayName} wants to"
|
||||
msgstr "{clientDisplayName} möchte"
|
||||
#~ msgctxt "konnect.error.login.validate.missingUsername"
|
||||
#~ msgid "Enter an username"
|
||||
#~ msgstr "Geben Sie einen Benutzername ein"
|
||||
|
||||
#~ msgctxt "konnect.welcome.signoutButton.label"
|
||||
#~ msgid "Sign out"
|
||||
#~ msgstr "Abmelden"
|
||||
|
||||
#~ msgctxt "konnect.chooseaccount.subHeader"
|
||||
#~ msgid "to sign in to Kopano"
|
||||
#~ msgstr "um sich bei Kopano anzumelden"
|
||||
|
||||
#~ msgctxt "konnect.login.subHeader"
|
||||
#~ msgid "with your Kopano account"
|
||||
#~ msgstr "mit Ihrem Kopano Konto"
|
||||
|
||||
#~ msgctxt "konnect.consent.message"
|
||||
#~ msgid "{clientDisplayName} wants to"
|
||||
#~ msgstr "{clientDisplayName} möchte"
|
||||
|
||||
+101
-211
@@ -1,309 +1,199 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: 2019-05-09T14:09:27.715Z\n"
|
||||
"PO-Revision-Date: 2018-10-30T16:08:29.860Z\n"
|
||||
"Project-Id-Version: LibreGraph Connect Identifier\n"
|
||||
"POT-Creation-Date: 2022-03-09T19:33:04.641Z\n"
|
||||
"PO-Revision-Date: 2022-03-09T10:29:32.094Z\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
"Language: es\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: react-intl-po\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#. [konnect.chooseaccount.useOther.persona.label]
|
||||
#. defaultMessage is:
|
||||
#. ?
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.useOther.persona.label"
|
||||
#. From: konnect##consent##message
|
||||
#: konnect##consent##message
|
||||
msgid "<0><0><0></0></0></0> wants to"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##chooseaccount##useOther##persona##label
|
||||
#: konnect##chooseaccount##useOther##persona##label
|
||||
msgid "?"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.scopeDescription.aliasBasic]
|
||||
#. defaultMessage is:
|
||||
#. Access your basic account information
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.aliasBasic"
|
||||
#. From: konnect##scopeDescription##aliasBasic
|
||||
#: konnect##scopeDescription##aliasBasic
|
||||
msgid "Access your basic account information"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.allowButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Allow
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.allowButton.label"
|
||||
#. From: konnect##consent##allowButton##label
|
||||
#: konnect##consent##allowButton##label
|
||||
msgid "Allow"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.question]
|
||||
#. defaultMessage is:
|
||||
#. Allow {clientDisplayName} to do this?
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.question"
|
||||
msgid "Allow {clientDisplayName} to do this?"
|
||||
#. From: konnect##consent##question
|
||||
#: konnect##consent##question
|
||||
msgid "Allow <1><0></0></1> to do this?"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.consequence]
|
||||
#. defaultMessage is:
|
||||
#. By clicking Allow, you allow this app to use your information.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.consequence"
|
||||
#. From: konnect##consent##consequence
|
||||
#: konnect##consent##consequence
|
||||
msgid "By clicking Allow, you allow this app to use your information."
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.cancelButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Cancel
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.cancelButton.label"
|
||||
#. From: konnect##consent##cancelButton##label
|
||||
#: konnect##consent##cancelButton##label
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.chooseaccount.headline]
|
||||
#. defaultMessage is:
|
||||
#. Choose an account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.headline"
|
||||
#. From: konnect##chooseaccount##headline
|
||||
#: konnect##chooseaccount##headline
|
||||
msgid "Choose an account"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.tooltip.client]
|
||||
#. defaultMessage is:
|
||||
#. Clicking "Allow" will redirect you to: {redirectURI}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.tooltip.client"
|
||||
msgid "Clicking \"Allow\" will redirect you to: {redirectURI}"
|
||||
#. From: konnect##consent##tooltip##client
|
||||
#: konnect##consent##tooltip##client
|
||||
msgid "Clicking \"Allow\" will redirect you to: {{redirectURI}}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.error.login.validate.missingPassword]
|
||||
#. defaultMessage is:
|
||||
#. Enter a password
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.validate.missingPassword"
|
||||
msgid "Enter a password"
|
||||
#. From: konnect##login##usernameField##placeholder##email
|
||||
#: konnect##login##usernameField##placeholder##email
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.error.login.validate.missingUsername]
|
||||
#. defaultMessage is:
|
||||
#. Enter an username
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.validate.missingUsername"
|
||||
msgid "Enter an username"
|
||||
#. From: konnect##error##login##validate##missingUsername
|
||||
#: konnect##error##login##validate##missingUsername
|
||||
msgid "Enter a valid value."
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.loading.error.headline]
|
||||
#. defaultMessage is:
|
||||
#. Failed to connect to server
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.loading.error.headline"
|
||||
#. From: konnect##error##login##validate##missingPassword
|
||||
#: konnect##error##login##validate##missingPassword
|
||||
msgid "Enter your password."
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##loading##error##headline
|
||||
#: konnect##loading##error##headline
|
||||
msgid "Failed to connect to server"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.headline]
|
||||
#. defaultMessage is:
|
||||
#. Goodbye
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.headline"
|
||||
#. From: konnect##goodbye##headline
|
||||
#: konnect##goodbye##headline
|
||||
msgid "Goodbye"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.confirm.headline]
|
||||
#. defaultMessage is:
|
||||
#. Hello {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.confirm.headline"
|
||||
msgid "Hello {displayName}"
|
||||
#. From: konnect##goodbye##confirm##headline
|
||||
#: konnect##goodbye##confirm##headline
|
||||
msgid "Hello {{displayName}}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.headline]
|
||||
#. defaultMessage is:
|
||||
#. Hi {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.headline"
|
||||
msgid "Hi {displayName}"
|
||||
#. From: konnect##consent##headline
|
||||
#: konnect##consent##headline
|
||||
msgid "Hi {{displayName}}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.scopeDescription.offlineAccess]
|
||||
#. defaultMessage is:
|
||||
#. Keep the allowed access persistently and forever
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.offlineAccess"
|
||||
#. From: konnect##login##usernameField##placeholder##identity
|
||||
#: konnect##login##usernameField##placeholder##identity
|
||||
msgid "Identity"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##scopeDescription##offlineAccess
|
||||
#: konnect##scopeDescription##offlineAccess
|
||||
msgid "Keep the allowed access persistently and forever"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.error.login.failed]
|
||||
#. defaultMessage is:
|
||||
#. Logon failed. Please verify your credentials and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.failed"
|
||||
#. From: konnect##error##login##failed
|
||||
#: konnect##error##login##failed
|
||||
msgid "Logon failed. Please verify your credentials and try again."
|
||||
msgstr ""
|
||||
|
||||
#. [konnet.error.http.networkError]
|
||||
#. defaultMessage is:
|
||||
#. Network error. Please check your connection and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnet.error.http.networkError"
|
||||
#. From: konnect##error##http##networkError
|
||||
#: konnect##error##http##networkError
|
||||
msgid "Network error. Please check your connection and try again."
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.nextButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Next
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.nextButton.label"
|
||||
#. From: konnect##login##nextButton##label
|
||||
#: konnect##login##nextButton##label
|
||||
msgid "Next"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.passwordField.label]
|
||||
#. defaultMessage is:
|
||||
#. Password
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.passwordField.label"
|
||||
#. From: konnect##login##passwordField##label
|
||||
#: konnect##login##passwordField##label
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.message.confirm]
|
||||
#. defaultMessage is:
|
||||
#. Press the button below, to sign out from your Kopano account now.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.message.confirm"
|
||||
msgid "Press the button below, to sign out from your Kopano account now."
|
||||
#. From: konnect##goodbye##message##confirm
|
||||
#: konnect##goodbye##message##confirm
|
||||
msgid "Press the button below, to sign out from your account now."
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.retryButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Retry
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.retryButton.label"
|
||||
#. From: konnect##login##retryButton##label
|
||||
#: konnect##login##retryButton##label
|
||||
msgid "Retry"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.scopeDescription.scope]
|
||||
#. defaultMessage is:
|
||||
#. Scope: {scope}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.scope"
|
||||
msgid "Scope: {scope}"
|
||||
#. From: konnect##scopeDescription##scope
|
||||
#: konnect##scopeDescription##scope
|
||||
msgid "Scope: {{scope}}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.headline]
|
||||
#. defaultMessage is:
|
||||
#. Sign in
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.headline"
|
||||
#. From: konnect##login##headline
|
||||
#: konnect##login##headline
|
||||
msgid "Sign in"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.signoutButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.signoutButton.label"
|
||||
#. From: konnect##goodbye##signoutButton##label
|
||||
#. konnect##welcome##signoutButton##label
|
||||
#: konnect##goodbye##signoutButton##label
|
||||
#: konnect##welcome##signoutButton##label
|
||||
msgid "Sign out"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.welcome.signoutButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.signoutButton.label"
|
||||
msgid "Sign out"
|
||||
#. From: konnect##error##http##unexpectedResponseStatus
|
||||
#: konnect##error##http##unexpectedResponseStatus
|
||||
msgid "Unexpected HTTP response: {{status}}. Please check your connection and try again."
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.error.http.unexpectedResponseStatus]
|
||||
#. defaultMessage is:
|
||||
#. Unexpected HTTP response: {status}. Please check your connection and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.http.unexpectedResponseStatus"
|
||||
msgid "Unexpected HTTP response: {status}. Please check your connection and try again."
|
||||
#. From: konnect##error##http##unexpectedResponseState
|
||||
#: konnect##error##http##unexpectedResponseState
|
||||
msgid "Unexpected response state: {{state}}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.error.http.unexpectedResponseState]
|
||||
#. defaultMessage is:
|
||||
#. Unexpected response state: {state}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.http.unexpectedResponseState"
|
||||
msgid "Unexpected response state: {state}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.chooseaccount.useOther.label]
|
||||
#. defaultMessage is:
|
||||
#. Use another account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.useOther.label"
|
||||
#. From: konnect##chooseaccount##useOther##label
|
||||
#: konnect##chooseaccount##useOther##label
|
||||
msgid "Use another account"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.usernameField.label]
|
||||
#. defaultMessage is:
|
||||
#. Username
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.usernameField.label"
|
||||
#. From: konnect##login##usernameField##placeholder##username
|
||||
#: konnect##login##usernameField##placeholder##username
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.welcome.headline]
|
||||
#. defaultMessage is:
|
||||
#. Welcome {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.headline"
|
||||
msgid "Welcome {displayName}"
|
||||
#. From: konnect##welcome##headline
|
||||
#: konnect##welcome##headline
|
||||
msgid "Welcome {{displayName}}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.welcome.message]
|
||||
#. defaultMessage is:
|
||||
#. You are signed in - awesome!
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.message"
|
||||
#. From: konnect##welcome##message
|
||||
#: konnect##welcome##message
|
||||
msgid "You are signed in - awesome!"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.message.close]
|
||||
#. defaultMessage is:
|
||||
#. You can close this window now.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.message.close"
|
||||
#. From: konnect##goodbye##message##close
|
||||
#: konnect##goodbye##message##close
|
||||
msgid "You can close this window now."
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.confirm.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. please confirm sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.confirm.subHeader"
|
||||
#. From: konnect##goodbye##confirm##subHeader
|
||||
#: konnect##goodbye##confirm##subHeader
|
||||
msgid "please confirm sign out"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.chooseaccount.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. to sign in to Kopano
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.subHeader"
|
||||
msgid "to sign in to Kopano"
|
||||
#. From: konnect##chooseaccount##subHeader
|
||||
#: konnect##chooseaccount##subHeader
|
||||
msgid "to sign in"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. with your Kopano account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.subHeader"
|
||||
msgid "with your Kopano account"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. you have been signed out from your Kopano account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.subHeader"
|
||||
msgid "you have been signed out from your Kopano account"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.message]
|
||||
#. defaultMessage is:
|
||||
#. {clientDisplayName} wants to
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.message"
|
||||
msgid "{clientDisplayName} wants to"
|
||||
#. From: konnect##goodbye##subHeader
|
||||
#: konnect##goodbye##subHeader
|
||||
msgid "you have been signed out from your account"
|
||||
msgstr ""
|
||||
|
||||
+140
-225
@@ -1,309 +1,224 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: 2019-05-09T14:09:27.715Z\n"
|
||||
"PO-Revision-Date: 2019-08-26 15:43+0000\n"
|
||||
"Last-Translator: Dominique <dperessoni@alternatiq.com>\n"
|
||||
"Project-Id-Version: \n"
|
||||
"POT-Creation-Date: 2022-03-09T19:33:04.641Z\n"
|
||||
"PO-Revision-Date: 2022-03-09 18:42+0100\n"
|
||||
"Last-Translator: Simon Eisenmann <simon@longsleep.org>\n"
|
||||
"Language-Team: French <http://translate.kopano.io/projects/kopano/konnect/fr/>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||
"X-Generator: Weblate 2.4\n"
|
||||
"X-Generator: Poedit 2.3\n"
|
||||
|
||||
#. [konnect.chooseaccount.useOther.persona.label]
|
||||
#. defaultMessage is:
|
||||
#. ?
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.useOther.persona.label"
|
||||
#. From: konnect##consent##message
|
||||
#: konnect##consent##message
|
||||
msgid "<0><0><0></0></0></0> wants to"
|
||||
msgstr "<0><0><0></0></0></0> souhaite"
|
||||
|
||||
#. From: konnect##chooseaccount##useOther##persona##label
|
||||
#: konnect##chooseaccount##useOther##persona##label
|
||||
msgid "?"
|
||||
msgstr "?"
|
||||
|
||||
#. [konnect.scopeDescription.aliasBasic]
|
||||
#. defaultMessage is:
|
||||
#. Access your basic account information
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.aliasBasic"
|
||||
#. From: konnect##scopeDescription##aliasBasic
|
||||
#: konnect##scopeDescription##aliasBasic
|
||||
msgid "Access your basic account information"
|
||||
msgstr "Consulter les informations de base de votre compte"
|
||||
|
||||
#. [konnect.consent.allowButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Allow
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.allowButton.label"
|
||||
#. From: konnect##consent##allowButton##label
|
||||
#: konnect##consent##allowButton##label
|
||||
msgid "Allow"
|
||||
msgstr "Autoriser"
|
||||
|
||||
#. [konnect.consent.question]
|
||||
#. defaultMessage is:
|
||||
#. Allow {clientDisplayName} to do this?
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.question"
|
||||
msgid "Allow {clientDisplayName} to do this?"
|
||||
msgstr "Autoriser {clientDisplayName} à faire cela ?"
|
||||
#. From: konnect##consent##question
|
||||
#: konnect##consent##question
|
||||
msgid "Allow <1><0></0></1> to do this?"
|
||||
msgstr "Autoriser <1><0></0></1> à faire cela?"
|
||||
|
||||
#. [konnect.consent.consequence]
|
||||
#. defaultMessage is:
|
||||
#. By clicking Allow, you allow this app to use your information.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.consequence"
|
||||
#. From: konnect##consent##consequence
|
||||
#: konnect##consent##consequence
|
||||
msgid "By clicking Allow, you allow this app to use your information."
|
||||
msgstr "En cliquant, vous autoriser l'app à accéder à vos informations."
|
||||
|
||||
#. [konnect.consent.cancelButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Cancel
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.cancelButton.label"
|
||||
#. From: konnect##consent##cancelButton##label
|
||||
#: konnect##consent##cancelButton##label
|
||||
msgid "Cancel"
|
||||
msgstr "Annuler"
|
||||
|
||||
#. [konnect.chooseaccount.headline]
|
||||
#. defaultMessage is:
|
||||
#. Choose an account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.headline"
|
||||
#. From: konnect##chooseaccount##headline
|
||||
#: konnect##chooseaccount##headline
|
||||
msgid "Choose an account"
|
||||
msgstr "Choisir un compte"
|
||||
|
||||
#. [konnect.consent.tooltip.client]
|
||||
#. defaultMessage is:
|
||||
#. Clicking "Allow" will redirect you to: {redirectURI}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.tooltip.client"
|
||||
msgid "Clicking \"Allow\" will redirect you to: {redirectURI}"
|
||||
msgstr "En cliquant \"Autoriser\" vous serez redirigé vers : {redirectURI}"
|
||||
#. From: konnect##consent##tooltip##client
|
||||
#: konnect##consent##tooltip##client
|
||||
msgid "Clicking \"Allow\" will redirect you to: {{redirectURI}}"
|
||||
msgstr "En cliquant \"Autoriser\" vous serez redirigé vers: {{redirectURI}}"
|
||||
|
||||
#. [konnect.error.login.validate.missingPassword]
|
||||
#. defaultMessage is:
|
||||
#. Enter a password
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.validate.missingPassword"
|
||||
msgid "Enter a password"
|
||||
msgstr "Saisir un mot de passe"
|
||||
#. From: konnect##login##usernameField##placeholder##email
|
||||
#: konnect##login##usernameField##placeholder##email
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.error.login.validate.missingUsername]
|
||||
#. defaultMessage is:
|
||||
#. Enter an username
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.validate.missingUsername"
|
||||
msgid "Enter an username"
|
||||
msgstr "Saisir un identifiant"
|
||||
#. From: konnect##error##login##validate##missingUsername
|
||||
#: konnect##error##login##validate##missingUsername
|
||||
msgid "Enter a valid value."
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.loading.error.headline]
|
||||
#. defaultMessage is:
|
||||
#. Failed to connect to server
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.loading.error.headline"
|
||||
#. From: konnect##error##login##validate##missingPassword
|
||||
#: konnect##error##login##validate##missingPassword
|
||||
msgid "Enter your password."
|
||||
msgstr "Saisir un mot de passe."
|
||||
|
||||
#. From: konnect##loading##error##headline
|
||||
#: konnect##loading##error##headline
|
||||
msgid "Failed to connect to server"
|
||||
msgstr "La connexion au serveur a échoué"
|
||||
|
||||
#. [konnect.goodbye.headline]
|
||||
#. defaultMessage is:
|
||||
#. Goodbye
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.headline"
|
||||
#. From: konnect##goodbye##headline
|
||||
#: konnect##goodbye##headline
|
||||
msgid "Goodbye"
|
||||
msgstr "Au revoir"
|
||||
|
||||
#. [konnect.goodbye.confirm.headline]
|
||||
#. defaultMessage is:
|
||||
#. Hello {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.confirm.headline"
|
||||
msgid "Hello {displayName}"
|
||||
msgstr "Bonjour {displayName}"
|
||||
#. From: konnect##goodbye##confirm##headline
|
||||
#: konnect##goodbye##confirm##headline
|
||||
msgid "Hello {{displayName}}"
|
||||
msgstr "Bonjour {{displayName}}"
|
||||
|
||||
#. [konnect.consent.headline]
|
||||
#. defaultMessage is:
|
||||
#. Hi {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.headline"
|
||||
msgid "Hi {displayName}"
|
||||
msgstr "Bonjour {displayName}"
|
||||
#. From: konnect##consent##headline
|
||||
#: konnect##consent##headline
|
||||
msgid "Hi {{displayName}}"
|
||||
msgstr "Bonjour {{displayName}}"
|
||||
|
||||
#. [konnect.scopeDescription.offlineAccess]
|
||||
#. defaultMessage is:
|
||||
#. Keep the allowed access persistently and forever
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.offlineAccess"
|
||||
#. From: konnect##login##usernameField##placeholder##identity
|
||||
#: konnect##login##usernameField##placeholder##identity
|
||||
msgid "Identity"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##scopeDescription##offlineAccess
|
||||
#: konnect##scopeDescription##offlineAccess
|
||||
msgid "Keep the allowed access persistently and forever"
|
||||
msgstr "Conserver les autorisations d'accès à l'avenir"
|
||||
|
||||
#. [konnect.error.login.failed]
|
||||
#. defaultMessage is:
|
||||
#. Logon failed. Please verify your credentials and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.failed"
|
||||
#. From: konnect##error##login##failed
|
||||
#: konnect##error##login##failed
|
||||
msgid "Logon failed. Please verify your credentials and try again."
|
||||
msgstr "Echec de connexion. Vérifier vos identifiants et essayer à nouveau."
|
||||
|
||||
#. [konnet.error.http.networkError]
|
||||
#. defaultMessage is:
|
||||
#. Network error. Please check your connection and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnet.error.http.networkError"
|
||||
#. From: konnect##error##http##networkError
|
||||
#: konnect##error##http##networkError
|
||||
msgid "Network error. Please check your connection and try again."
|
||||
msgstr "Erreur réseau. Vérifier votre connexion, et réessayer."
|
||||
|
||||
#. [konnect.login.nextButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Next
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.nextButton.label"
|
||||
#. From: konnect##login##nextButton##label
|
||||
#: konnect##login##nextButton##label
|
||||
msgid "Next"
|
||||
msgstr "Suivant"
|
||||
|
||||
#. [konnect.login.passwordField.label]
|
||||
#. defaultMessage is:
|
||||
#. Password
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.passwordField.label"
|
||||
#. From: konnect##login##passwordField##label
|
||||
#: konnect##login##passwordField##label
|
||||
msgid "Password"
|
||||
msgstr "Mot de passe"
|
||||
|
||||
#. [konnect.goodbye.message.confirm]
|
||||
#. defaultMessage is:
|
||||
#. Press the button below, to sign out from your Kopano account now.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.message.confirm"
|
||||
msgid "Press the button below, to sign out from your Kopano account now."
|
||||
msgstr "Cliquer le bouton ci-dessous, pour quitter Kopano."
|
||||
#. From: konnect##goodbye##message##confirm
|
||||
#: konnect##goodbye##message##confirm
|
||||
msgid "Press the button below, to sign out from your account now."
|
||||
msgstr "Cliquer le bouton ci-dessous, pour quitter."
|
||||
|
||||
#. [konnect.login.retryButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Retry
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.retryButton.label"
|
||||
#. From: konnect##login##retryButton##label
|
||||
#: konnect##login##retryButton##label
|
||||
msgid "Retry"
|
||||
msgstr "Réessayer"
|
||||
|
||||
#. [konnect.scopeDescription.scope]
|
||||
#. defaultMessage is:
|
||||
#. Scope: {scope}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.scope"
|
||||
msgid "Scope: {scope}"
|
||||
msgstr "Portée : {scope}"
|
||||
#. From: konnect##scopeDescription##scope
|
||||
#: konnect##scopeDescription##scope
|
||||
msgid "Scope: {{scope}}"
|
||||
msgstr "Portée : {{scope}}"
|
||||
|
||||
#. [konnect.login.headline]
|
||||
#. defaultMessage is:
|
||||
#. Sign in
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.headline"
|
||||
#. From: konnect##login##headline
|
||||
#: konnect##login##headline
|
||||
msgid "Sign in"
|
||||
msgstr "Identification"
|
||||
|
||||
#. [konnect.goodbye.signoutButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.signoutButton.label"
|
||||
#. From: konnect##goodbye##signoutButton##label
|
||||
#. konnect##welcome##signoutButton##label
|
||||
#: konnect##goodbye##signoutButton##label
|
||||
#: konnect##welcome##signoutButton##label
|
||||
msgid "Sign out"
|
||||
msgstr "Quitter"
|
||||
|
||||
#. [konnect.welcome.signoutButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.signoutButton.label"
|
||||
msgid "Sign out"
|
||||
msgstr "Quitter"
|
||||
#. From: konnect##error##http##unexpectedResponseStatus
|
||||
#: konnect##error##http##unexpectedResponseStatus
|
||||
msgid "Unexpected HTTP response: {{status}}. Please check your connection and try again."
|
||||
msgstr "Erreur HTTP inattendue : {{status}}. Vérifier votre connexion et réessayer."
|
||||
|
||||
#. [konnect.error.http.unexpectedResponseStatus]
|
||||
#. defaultMessage is:
|
||||
#. Unexpected HTTP response: {status}. Please check your connection and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.http.unexpectedResponseStatus"
|
||||
msgid "Unexpected HTTP response: {status}. Please check your connection and try again."
|
||||
msgstr "Erreur HTTP inattendue : {status}. Vérifier votre connexion et réessayer."
|
||||
#. From: konnect##error##http##unexpectedResponseState
|
||||
#: konnect##error##http##unexpectedResponseState
|
||||
msgid "Unexpected response state: {{state}}"
|
||||
msgstr "Erreur d'état inattendue : {{state}}"
|
||||
|
||||
#. [konnect.error.http.unexpectedResponseState]
|
||||
#. defaultMessage is:
|
||||
#. Unexpected response state: {state}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.http.unexpectedResponseState"
|
||||
msgid "Unexpected response state: {state}"
|
||||
msgstr "Erreur d'état inattendue : {state}"
|
||||
|
||||
#. [konnect.chooseaccount.useOther.label]
|
||||
#. defaultMessage is:
|
||||
#. Use another account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.useOther.label"
|
||||
#. From: konnect##chooseaccount##useOther##label
|
||||
#: konnect##chooseaccount##useOther##label
|
||||
msgid "Use another account"
|
||||
msgstr "Utiliser un autre compte"
|
||||
|
||||
#. [konnect.login.usernameField.label]
|
||||
#. defaultMessage is:
|
||||
#. Username
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.usernameField.label"
|
||||
#. From: konnect##login##usernameField##placeholder##username
|
||||
#: konnect##login##usernameField##placeholder##username
|
||||
msgid "Username"
|
||||
msgstr "Utilisateur"
|
||||
|
||||
#. [konnect.welcome.headline]
|
||||
#. defaultMessage is:
|
||||
#. Welcome {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.headline"
|
||||
msgid "Welcome {displayName}"
|
||||
msgstr "Bienvenue {displayName}"
|
||||
#. From: konnect##welcome##headline
|
||||
#: konnect##welcome##headline
|
||||
msgid "Welcome {{displayName}}"
|
||||
msgstr "Bienvenue {{displayName}}"
|
||||
|
||||
#. [konnect.welcome.message]
|
||||
#. defaultMessage is:
|
||||
#. You are signed in - awesome!
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.message"
|
||||
#. From: konnect##welcome##message
|
||||
#: konnect##welcome##message
|
||||
msgid "You are signed in - awesome!"
|
||||
msgstr "Magnifique - Vous êtes connecté !"
|
||||
msgstr "Magnifique - Vous êtes connecté!"
|
||||
|
||||
#. [konnect.goodbye.message.close]
|
||||
#. defaultMessage is:
|
||||
#. You can close this window now.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.message.close"
|
||||
#. From: konnect##goodbye##message##close
|
||||
#: konnect##goodbye##message##close
|
||||
msgid "You can close this window now."
|
||||
msgstr "Vous pouvez fermer cette fenêtre à présent."
|
||||
|
||||
#. [konnect.goodbye.confirm.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. please confirm sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.confirm.subHeader"
|
||||
#. From: konnect##goodbye##confirm##subHeader
|
||||
#: konnect##goodbye##confirm##subHeader
|
||||
msgid "please confirm sign out"
|
||||
msgstr "Confirmer votre déconnexion"
|
||||
msgstr "confirmer votre déconnexion"
|
||||
|
||||
#. [konnect.chooseaccount.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. to sign in to Kopano
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.subHeader"
|
||||
msgid "to sign in to Kopano"
|
||||
msgstr "pour vous authentifier dans Kopano"
|
||||
#. From: konnect##chooseaccount##subHeader
|
||||
#: konnect##chooseaccount##subHeader
|
||||
msgid "to sign in"
|
||||
msgstr "identification"
|
||||
|
||||
#. [konnect.login.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. with your Kopano account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.subHeader"
|
||||
msgid "with your Kopano account"
|
||||
msgstr "avec vos identifiants Kopano"
|
||||
#. From: konnect##goodbye##subHeader
|
||||
#: konnect##goodbye##subHeader
|
||||
msgid "you have been signed out from your account"
|
||||
msgstr "vous avez été déconnecté"
|
||||
|
||||
#. [konnect.goodbye.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. you have been signed out from your Kopano account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.subHeader"
|
||||
msgid "you have been signed out from your Kopano account"
|
||||
msgstr "vous avez été déconnecté de Kopano"
|
||||
#~ msgctxt "konnect.consent.question"
|
||||
#~ msgid "Allow {clientDisplayName} to do this?"
|
||||
#~ msgstr "Autoriser {clientDisplayName} à faire cela ?"
|
||||
|
||||
#. [konnect.consent.message]
|
||||
#. defaultMessage is:
|
||||
#. {clientDisplayName} wants to
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.message"
|
||||
msgid "{clientDisplayName} wants to"
|
||||
msgstr "{clientDisplayName} souhaite"
|
||||
#~ msgctxt "konnect.error.login.validate.missingUsername"
|
||||
#~ msgid "Enter an username"
|
||||
#~ msgstr "Saisir un identifiant"
|
||||
|
||||
#~ msgctxt "konnect.welcome.signoutButton.label"
|
||||
#~ msgid "Sign out"
|
||||
#~ msgstr "Quitter"
|
||||
|
||||
#~ msgctxt "konnect.chooseaccount.subHeader"
|
||||
#~ msgid "to sign in to Kopano"
|
||||
#~ msgstr "pour vous authentifier dans Kopano"
|
||||
|
||||
#~ msgctxt "konnect.login.subHeader"
|
||||
#~ msgid "with your Kopano account"
|
||||
#~ msgstr "avec vos identifiants Kopano"
|
||||
|
||||
#~ msgctxt "konnect.consent.message"
|
||||
#~ msgid "{clientDisplayName} wants to"
|
||||
#~ msgstr "{clientDisplayName} souhaite"
|
||||
|
||||
@@ -1,309 +0,0 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: 2019-05-09T14:09:27.715Z\n"
|
||||
"PO-Revision-Date: 2019-09-04 09:55+0000\n"
|
||||
"Last-Translator: Mayank <m.dabhi@kopano.com>\n"
|
||||
"Language-Team: Hindi <http://translate.kopano.io/projects/kopano/konnect/hi/>\n"
|
||||
"Language: hi\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 2.4\n"
|
||||
|
||||
#. [konnect.chooseaccount.useOther.persona.label]
|
||||
#. defaultMessage is:
|
||||
#. ?
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.useOther.persona.label"
|
||||
msgid "?"
|
||||
msgstr "?"
|
||||
|
||||
#. [konnect.scopeDescription.aliasBasic]
|
||||
#. defaultMessage is:
|
||||
#. Access your basic account information
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.aliasBasic"
|
||||
msgid "Access your basic account information"
|
||||
msgstr "अपनी मूल खाता जानकारी देखे"
|
||||
|
||||
#. [konnect.consent.allowButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Allow
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.allowButton.label"
|
||||
msgid "Allow"
|
||||
msgstr "अनुमति दीजिये"
|
||||
|
||||
#. [konnect.consent.question]
|
||||
#. defaultMessage is:
|
||||
#. Allow {clientDisplayName} to do this?
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.question"
|
||||
msgid "Allow {clientDisplayName} to do this?"
|
||||
msgstr "क्या {clientDisplayName} को ये करने की अनुमति देना चाहते है?"
|
||||
|
||||
#. [konnect.consent.consequence]
|
||||
#. defaultMessage is:
|
||||
#. By clicking Allow, you allow this app to use your information.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.consequence"
|
||||
msgid "By clicking Allow, you allow this app to use your information."
|
||||
msgstr "अनुमति पर क्लिक करके, आप इस एप्लिकेशन को आपकी जानकारी का उपयोग करने की अनुमति देते हैं."
|
||||
|
||||
#. [konnect.consent.cancelButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Cancel
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.cancelButton.label"
|
||||
msgid "Cancel"
|
||||
msgstr "रद्द करें"
|
||||
|
||||
#. [konnect.chooseaccount.headline]
|
||||
#. defaultMessage is:
|
||||
#. Choose an account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.headline"
|
||||
msgid "Choose an account"
|
||||
msgstr "खाता चुनें"
|
||||
|
||||
#. [konnect.consent.tooltip.client]
|
||||
#. defaultMessage is:
|
||||
#. Clicking "Allow" will redirect you to: {redirectURI}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.tooltip.client"
|
||||
msgid "Clicking \"Allow\" will redirect you to: {redirectURI}"
|
||||
msgstr "\"अनुमति\" पर क्लिक करने से आपको {redirecturI} पे पुनर्निर्देशित किया जायेगा"
|
||||
|
||||
#. [konnect.error.login.validate.missingPassword]
|
||||
#. defaultMessage is:
|
||||
#. Enter a password
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.validate.missingPassword"
|
||||
msgid "Enter a password"
|
||||
msgstr "पासवर्ड डालिए"
|
||||
|
||||
#. [konnect.error.login.validate.missingUsername]
|
||||
#. defaultMessage is:
|
||||
#. Enter an username
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.validate.missingUsername"
|
||||
msgid "Enter an username"
|
||||
msgstr "उपयोगकर्ता नाम डालिये"
|
||||
|
||||
#. [konnect.loading.error.headline]
|
||||
#. defaultMessage is:
|
||||
#. Failed to connect to server
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.loading.error.headline"
|
||||
msgid "Failed to connect to server"
|
||||
msgstr "सर्वर से कनेक्ट करने में विफल"
|
||||
|
||||
#. [konnect.goodbye.headline]
|
||||
#. defaultMessage is:
|
||||
#. Goodbye
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.headline"
|
||||
msgid "Goodbye"
|
||||
msgstr "अलविदा"
|
||||
|
||||
#. [konnect.goodbye.confirm.headline]
|
||||
#. defaultMessage is:
|
||||
#. Hello {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.confirm.headline"
|
||||
msgid "Hello {displayName}"
|
||||
msgstr "नमस्ते {displayName}"
|
||||
|
||||
#. [konnect.consent.headline]
|
||||
#. defaultMessage is:
|
||||
#. Hi {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.headline"
|
||||
msgid "Hi {displayName}"
|
||||
msgstr "नमस्ते {displayName}"
|
||||
|
||||
#. [konnect.scopeDescription.offlineAccess]
|
||||
#. defaultMessage is:
|
||||
#. Keep the allowed access persistently and forever
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.offlineAccess"
|
||||
msgid "Keep the allowed access persistently and forever"
|
||||
msgstr "अनुमत पहुंच को लगातार और हमेशा बनाए रखें"
|
||||
|
||||
#. [konnect.error.login.failed]
|
||||
#. defaultMessage is:
|
||||
#. Logon failed. Please verify your credentials and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.failed"
|
||||
msgid "Logon failed. Please verify your credentials and try again."
|
||||
msgstr "लोगऑन नाकाम रहा. कृपया अपने क्रेडेंशियल्स जांचे और पुनः प्रयास करें."
|
||||
|
||||
#. [konnet.error.http.networkError]
|
||||
#. defaultMessage is:
|
||||
#. Network error. Please check your connection and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnet.error.http.networkError"
|
||||
msgid "Network error. Please check your connection and try again."
|
||||
msgstr "नेटवर्क त्रुटि। कृपया अपने संपर्क की जांच करे और फिर से प्रयास करें."
|
||||
|
||||
#. [konnect.login.nextButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Next
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.nextButton.label"
|
||||
msgid "Next"
|
||||
msgstr "अगला"
|
||||
|
||||
#. [konnect.login.passwordField.label]
|
||||
#. defaultMessage is:
|
||||
#. Password
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.passwordField.label"
|
||||
msgid "Password"
|
||||
msgstr "पासवर्ड"
|
||||
|
||||
#. [konnect.goodbye.message.confirm]
|
||||
#. defaultMessage is:
|
||||
#. Press the button below, to sign out from your Kopano account now.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.message.confirm"
|
||||
msgid "Press the button below, to sign out from your Kopano account now."
|
||||
msgstr "अपने Kopano खाते से साइन आउट करने के लिए नीचे दिए गए बटन को दबाएं."
|
||||
|
||||
#. [konnect.login.retryButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Retry
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.retryButton.label"
|
||||
msgid "Retry"
|
||||
msgstr "पुन: प्रयास करें"
|
||||
|
||||
#. [konnect.scopeDescription.scope]
|
||||
#. defaultMessage is:
|
||||
#. Scope: {scope}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.scope"
|
||||
msgid "Scope: {scope}"
|
||||
msgstr "क्षेत्र: {scope}"
|
||||
|
||||
#. [konnect.login.headline]
|
||||
#. defaultMessage is:
|
||||
#. Sign in
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.headline"
|
||||
msgid "Sign in"
|
||||
msgstr "साइन इन"
|
||||
|
||||
#. [konnect.goodbye.signoutButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.signoutButton.label"
|
||||
msgid "Sign out"
|
||||
msgstr "साइन आउट"
|
||||
|
||||
#. [konnect.welcome.signoutButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.signoutButton.label"
|
||||
msgid "Sign out"
|
||||
msgstr "साइन आउट"
|
||||
|
||||
#. [konnect.error.http.unexpectedResponseStatus]
|
||||
#. defaultMessage is:
|
||||
#. Unexpected HTTP response: {status}. Please check your connection and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.http.unexpectedResponseStatus"
|
||||
msgid "Unexpected HTTP response: {status}. Please check your connection and try again."
|
||||
msgstr "अनपेक्षित HTTP प्रतिक्रिया: {status}. कृपया अपने संपर्क की जांच करे और फिर से प्रयास करें."
|
||||
|
||||
#. [konnect.error.http.unexpectedResponseState]
|
||||
#. defaultMessage is:
|
||||
#. Unexpected response state: {state}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.http.unexpectedResponseState"
|
||||
msgid "Unexpected response state: {state}"
|
||||
msgstr "अनपेक्षित प्रतिक्रिया अवस्था: {state}"
|
||||
|
||||
#. [konnect.chooseaccount.useOther.label]
|
||||
#. defaultMessage is:
|
||||
#. Use another account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.useOther.label"
|
||||
msgid "Use another account"
|
||||
msgstr "दूसरे खाते का उपयोग करें"
|
||||
|
||||
#. [konnect.login.usernameField.label]
|
||||
#. defaultMessage is:
|
||||
#. Username
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.usernameField.label"
|
||||
msgid "Username"
|
||||
msgstr "उपयोगकर्ता नाम"
|
||||
|
||||
#. [konnect.welcome.headline]
|
||||
#. defaultMessage is:
|
||||
#. Welcome {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.headline"
|
||||
msgid "Welcome {displayName}"
|
||||
msgstr "स्वागत हे {displayName}"
|
||||
|
||||
#. [konnect.welcome.message]
|
||||
#. defaultMessage is:
|
||||
#. You are signed in - awesome!
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.message"
|
||||
msgid "You are signed in - awesome!"
|
||||
msgstr "आप साइंड इन हैं - अद्भुत!"
|
||||
|
||||
#. [konnect.goodbye.message.close]
|
||||
#. defaultMessage is:
|
||||
#. You can close this window now.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.message.close"
|
||||
msgid "You can close this window now."
|
||||
msgstr "अब आप इस विंडो को बंद कर सकते हैं."
|
||||
|
||||
#. [konnect.goodbye.confirm.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. please confirm sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.confirm.subHeader"
|
||||
msgid "please confirm sign out"
|
||||
msgstr "कृपया साइन आउट की पुष्टि करें"
|
||||
|
||||
#. [konnect.chooseaccount.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. to sign in to Kopano
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.subHeader"
|
||||
msgid "to sign in to Kopano"
|
||||
msgstr "Kopano में साइन इन करने के लिए"
|
||||
|
||||
#. [konnect.login.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. with your Kopano account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.subHeader"
|
||||
msgid "with your Kopano account"
|
||||
msgstr "अपने Kopano खाते के साथ"
|
||||
|
||||
#. [konnect.goodbye.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. you have been signed out from your Kopano account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.subHeader"
|
||||
msgid "you have been signed out from your Kopano account"
|
||||
msgstr "आपको अपने Kopano खाते से साइन आउट कर दिया गया है"
|
||||
|
||||
#. [konnect.consent.message]
|
||||
#. defaultMessage is:
|
||||
#. {clientDisplayName} wants to
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.message"
|
||||
msgid "{clientDisplayName} wants to"
|
||||
msgstr "{clientDisplayName} चाहते है की"
|
||||
@@ -1,310 +0,0 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"POT-Creation-Date: 2019-05-09T14:09:27.715Z\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"X-Generator: react-intl-po\n"
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"PO-Revision-Date: 2019-08-30 11:41+0200\n"
|
||||
"Last-Translator: root <translations@kopano.io>\n"
|
||||
"Language-Team: Croatian\n"
|
||||
"Language: hr\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
||||
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
|
||||
#. [konnect.chooseaccount.useOther.persona.label]
|
||||
#. defaultMessage is:
|
||||
#. ?
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.useOther.persona.label"
|
||||
msgid "?"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.scopeDescription.aliasBasic]
|
||||
#. defaultMessage is:
|
||||
#. Access your basic account information
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.aliasBasic"
|
||||
msgid "Access your basic account information"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.allowButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Allow
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.allowButton.label"
|
||||
msgid "Allow"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.question]
|
||||
#. defaultMessage is:
|
||||
#. Allow {clientDisplayName} to do this?
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.question"
|
||||
msgid "Allow {clientDisplayName} to do this?"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.consequence]
|
||||
#. defaultMessage is:
|
||||
#. By clicking Allow, you allow this app to use your information.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.consequence"
|
||||
msgid "By clicking Allow, you allow this app to use your information."
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.cancelButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Cancel
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.cancelButton.label"
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.chooseaccount.headline]
|
||||
#. defaultMessage is:
|
||||
#. Choose an account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.headline"
|
||||
msgid "Choose an account"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.tooltip.client]
|
||||
#. defaultMessage is:
|
||||
#. Clicking "Allow" will redirect you to: {redirectURI}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.tooltip.client"
|
||||
msgid "Clicking \"Allow\" will redirect you to: {redirectURI}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.error.login.validate.missingPassword]
|
||||
#. defaultMessage is:
|
||||
#. Enter a password
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.validate.missingPassword"
|
||||
msgid "Enter a password"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.error.login.validate.missingUsername]
|
||||
#. defaultMessage is:
|
||||
#. Enter an username
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.validate.missingUsername"
|
||||
msgid "Enter an username"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.loading.error.headline]
|
||||
#. defaultMessage is:
|
||||
#. Failed to connect to server
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.loading.error.headline"
|
||||
msgid "Failed to connect to server"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.headline]
|
||||
#. defaultMessage is:
|
||||
#. Goodbye
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.headline"
|
||||
msgid "Goodbye"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.confirm.headline]
|
||||
#. defaultMessage is:
|
||||
#. Hello {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.confirm.headline"
|
||||
msgid "Hello {displayName}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.headline]
|
||||
#. defaultMessage is:
|
||||
#. Hi {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.headline"
|
||||
msgid "Hi {displayName}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.scopeDescription.offlineAccess]
|
||||
#. defaultMessage is:
|
||||
#. Keep the allowed access persistently and forever
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.offlineAccess"
|
||||
msgid "Keep the allowed access persistently and forever"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.error.login.failed]
|
||||
#. defaultMessage is:
|
||||
#. Logon failed. Please verify your credentials and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.failed"
|
||||
msgid "Logon failed. Please verify your credentials and try again."
|
||||
msgstr ""
|
||||
|
||||
#. [konnet.error.http.networkError]
|
||||
#. defaultMessage is:
|
||||
#. Network error. Please check your connection and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnet.error.http.networkError"
|
||||
msgid "Network error. Please check your connection and try again."
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.nextButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Next
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.nextButton.label"
|
||||
msgid "Next"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.passwordField.label]
|
||||
#. defaultMessage is:
|
||||
#. Password
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.passwordField.label"
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.message.confirm]
|
||||
#. defaultMessage is:
|
||||
#. Press the button below, to sign out from your Kopano account now.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.message.confirm"
|
||||
msgid "Press the button below, to sign out from your Kopano account now."
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.retryButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Retry
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.retryButton.label"
|
||||
msgid "Retry"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.scopeDescription.scope]
|
||||
#. defaultMessage is:
|
||||
#. Scope: {scope}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.scope"
|
||||
msgid "Scope: {scope}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.headline]
|
||||
#. defaultMessage is:
|
||||
#. Sign in
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.headline"
|
||||
msgid "Sign in"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.signoutButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.signoutButton.label"
|
||||
msgid "Sign out"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.welcome.signoutButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.signoutButton.label"
|
||||
msgid "Sign out"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.error.http.unexpectedResponseStatus]
|
||||
#. defaultMessage is:
|
||||
#. Unexpected HTTP response: {status}. Please check your connection and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.http.unexpectedResponseStatus"
|
||||
msgid "Unexpected HTTP response: {status}. Please check your connection and try again."
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.error.http.unexpectedResponseState]
|
||||
#. defaultMessage is:
|
||||
#. Unexpected response state: {state}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.http.unexpectedResponseState"
|
||||
msgid "Unexpected response state: {state}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.chooseaccount.useOther.label]
|
||||
#. defaultMessage is:
|
||||
#. Use another account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.useOther.label"
|
||||
msgid "Use another account"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.usernameField.label]
|
||||
#. defaultMessage is:
|
||||
#. Username
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.usernameField.label"
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.welcome.headline]
|
||||
#. defaultMessage is:
|
||||
#. Welcome {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.headline"
|
||||
msgid "Welcome {displayName}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.welcome.message]
|
||||
#. defaultMessage is:
|
||||
#. You are signed in - awesome!
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.message"
|
||||
msgid "You are signed in - awesome!"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.message.close]
|
||||
#. defaultMessage is:
|
||||
#. You can close this window now.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.message.close"
|
||||
msgid "You can close this window now."
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.confirm.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. please confirm sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.confirm.subHeader"
|
||||
msgid "please confirm sign out"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.chooseaccount.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. to sign in to Kopano
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.subHeader"
|
||||
msgid "to sign in to Kopano"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. with your Kopano account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.subHeader"
|
||||
msgid "with your Kopano account"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. you have been signed out from your Kopano account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.subHeader"
|
||||
msgid "you have been signed out from your Kopano account"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.message]
|
||||
#. defaultMessage is:
|
||||
#. {clientDisplayName} wants to
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.message"
|
||||
msgid "{clientDisplayName} wants to"
|
||||
msgstr ""
|
||||
@@ -1,309 +0,0 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: 2019-05-09T14:09:27.715Z\n"
|
||||
"PO-Revision-Date: 2018-10-30T16:08:29.860Z\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
"Language: hu\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: react-intl-po\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#. [konnect.chooseaccount.useOther.persona.label]
|
||||
#. defaultMessage is:
|
||||
#. ?
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.useOther.persona.label"
|
||||
msgid "?"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.scopeDescription.aliasBasic]
|
||||
#. defaultMessage is:
|
||||
#. Access your basic account information
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.aliasBasic"
|
||||
msgid "Access your basic account information"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.allowButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Allow
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.allowButton.label"
|
||||
msgid "Allow"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.question]
|
||||
#. defaultMessage is:
|
||||
#. Allow {clientDisplayName} to do this?
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.question"
|
||||
msgid "Allow {clientDisplayName} to do this?"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.consequence]
|
||||
#. defaultMessage is:
|
||||
#. By clicking Allow, you allow this app to use your information.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.consequence"
|
||||
msgid "By clicking Allow, you allow this app to use your information."
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.cancelButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Cancel
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.cancelButton.label"
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.chooseaccount.headline]
|
||||
#. defaultMessage is:
|
||||
#. Choose an account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.headline"
|
||||
msgid "Choose an account"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.tooltip.client]
|
||||
#. defaultMessage is:
|
||||
#. Clicking "Allow" will redirect you to: {redirectURI}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.tooltip.client"
|
||||
msgid "Clicking \"Allow\" will redirect you to: {redirectURI}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.error.login.validate.missingPassword]
|
||||
#. defaultMessage is:
|
||||
#. Enter a password
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.validate.missingPassword"
|
||||
msgid "Enter a password"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.error.login.validate.missingUsername]
|
||||
#. defaultMessage is:
|
||||
#. Enter an username
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.validate.missingUsername"
|
||||
msgid "Enter an username"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.loading.error.headline]
|
||||
#. defaultMessage is:
|
||||
#. Failed to connect to server
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.loading.error.headline"
|
||||
msgid "Failed to connect to server"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.headline]
|
||||
#. defaultMessage is:
|
||||
#. Goodbye
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.headline"
|
||||
msgid "Goodbye"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.confirm.headline]
|
||||
#. defaultMessage is:
|
||||
#. Hello {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.confirm.headline"
|
||||
msgid "Hello {displayName}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.headline]
|
||||
#. defaultMessage is:
|
||||
#. Hi {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.headline"
|
||||
msgid "Hi {displayName}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.scopeDescription.offlineAccess]
|
||||
#. defaultMessage is:
|
||||
#. Keep the allowed access persistently and forever
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.offlineAccess"
|
||||
msgid "Keep the allowed access persistently and forever"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.error.login.failed]
|
||||
#. defaultMessage is:
|
||||
#. Logon failed. Please verify your credentials and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.failed"
|
||||
msgid "Logon failed. Please verify your credentials and try again."
|
||||
msgstr ""
|
||||
|
||||
#. [konnet.error.http.networkError]
|
||||
#. defaultMessage is:
|
||||
#. Network error. Please check your connection and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnet.error.http.networkError"
|
||||
msgid "Network error. Please check your connection and try again."
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.nextButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Next
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.nextButton.label"
|
||||
msgid "Next"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.passwordField.label]
|
||||
#. defaultMessage is:
|
||||
#. Password
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.passwordField.label"
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.message.confirm]
|
||||
#. defaultMessage is:
|
||||
#. Press the button below, to sign out from your Kopano account now.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.message.confirm"
|
||||
msgid "Press the button below, to sign out from your Kopano account now."
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.retryButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Retry
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.retryButton.label"
|
||||
msgid "Retry"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.scopeDescription.scope]
|
||||
#. defaultMessage is:
|
||||
#. Scope: {scope}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.scope"
|
||||
msgid "Scope: {scope}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.headline]
|
||||
#. defaultMessage is:
|
||||
#. Sign in
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.headline"
|
||||
msgid "Sign in"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.signoutButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.signoutButton.label"
|
||||
msgid "Sign out"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.welcome.signoutButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.signoutButton.label"
|
||||
msgid "Sign out"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.error.http.unexpectedResponseStatus]
|
||||
#. defaultMessage is:
|
||||
#. Unexpected HTTP response: {status}. Please check your connection and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.http.unexpectedResponseStatus"
|
||||
msgid "Unexpected HTTP response: {status}. Please check your connection and try again."
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.error.http.unexpectedResponseState]
|
||||
#. defaultMessage is:
|
||||
#. Unexpected response state: {state}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.http.unexpectedResponseState"
|
||||
msgid "Unexpected response state: {state}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.chooseaccount.useOther.label]
|
||||
#. defaultMessage is:
|
||||
#. Use another account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.useOther.label"
|
||||
msgid "Use another account"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.usernameField.label]
|
||||
#. defaultMessage is:
|
||||
#. Username
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.usernameField.label"
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.welcome.headline]
|
||||
#. defaultMessage is:
|
||||
#. Welcome {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.headline"
|
||||
msgid "Welcome {displayName}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.welcome.message]
|
||||
#. defaultMessage is:
|
||||
#. You are signed in - awesome!
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.message"
|
||||
msgid "You are signed in - awesome!"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.message.close]
|
||||
#. defaultMessage is:
|
||||
#. You can close this window now.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.message.close"
|
||||
msgid "You can close this window now."
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.confirm.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. please confirm sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.confirm.subHeader"
|
||||
msgid "please confirm sign out"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.chooseaccount.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. to sign in to Kopano
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.subHeader"
|
||||
msgid "to sign in to Kopano"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. with your Kopano account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.subHeader"
|
||||
msgid "with your Kopano account"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. you have been signed out from your Kopano account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.subHeader"
|
||||
msgid "you have been signed out from your Kopano account"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.message]
|
||||
#. defaultMessage is:
|
||||
#. {clientDisplayName} wants to
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.message"
|
||||
msgid "{clientDisplayName} wants to"
|
||||
msgstr ""
|
||||
@@ -1,309 +0,0 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: 2019-05-09T14:09:27.715Z\n"
|
||||
"PO-Revision-Date: 2019-09-02 15:40+0000\n"
|
||||
"Last-Translator: Tryggvi Björgvinsson <ME@TRICKVI.IS>\n"
|
||||
"Language-Team: Icelandic <http://translate.kopano.io/projects/kopano/konnect/is/>\n"
|
||||
"Language: is\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 2.4\n"
|
||||
|
||||
#. [konnect.chooseaccount.useOther.persona.label]
|
||||
#. defaultMessage is:
|
||||
#. ?
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.useOther.persona.label"
|
||||
msgid "?"
|
||||
msgstr "?"
|
||||
|
||||
#. [konnect.scopeDescription.aliasBasic]
|
||||
#. defaultMessage is:
|
||||
#. Access your basic account information
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.aliasBasic"
|
||||
msgid "Access your basic account information"
|
||||
msgstr "Komast í grunnupplýsingar um þig"
|
||||
|
||||
#. [konnect.consent.allowButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Allow
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.allowButton.label"
|
||||
msgid "Allow"
|
||||
msgstr "Leyfa"
|
||||
|
||||
#. [konnect.consent.question]
|
||||
#. defaultMessage is:
|
||||
#. Allow {clientDisplayName} to do this?
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.question"
|
||||
msgid "Allow {clientDisplayName} to do this?"
|
||||
msgstr "Leyfa {clientDisplayName} að gera þetta?"
|
||||
|
||||
#. [konnect.consent.consequence]
|
||||
#. defaultMessage is:
|
||||
#. By clicking Allow, you allow this app to use your information.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.consequence"
|
||||
msgid "By clicking Allow, you allow this app to use your information."
|
||||
msgstr "Með því að smella á \"Leyfa\", leyfir þú þessu forriti að nota upplýsingarnar um þig."
|
||||
|
||||
#. [konnect.consent.cancelButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Cancel
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.cancelButton.label"
|
||||
msgid "Cancel"
|
||||
msgstr "Hætta við"
|
||||
|
||||
#. [konnect.chooseaccount.headline]
|
||||
#. defaultMessage is:
|
||||
#. Choose an account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.headline"
|
||||
msgid "Choose an account"
|
||||
msgstr "Veldu aðgang"
|
||||
|
||||
#. [konnect.consent.tooltip.client]
|
||||
#. defaultMessage is:
|
||||
#. Clicking "Allow" will redirect you to: {redirectURI}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.tooltip.client"
|
||||
msgid "Clicking \"Allow\" will redirect you to: {redirectURI}"
|
||||
msgstr "Þegar þú smellir á \"Leyfa\" áframsendist þú á: {redirectURI}"
|
||||
|
||||
#. [konnect.error.login.validate.missingPassword]
|
||||
#. defaultMessage is:
|
||||
#. Enter a password
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.validate.missingPassword"
|
||||
msgid "Enter a password"
|
||||
msgstr "Sláðu inn lykilorð"
|
||||
|
||||
#. [konnect.error.login.validate.missingUsername]
|
||||
#. defaultMessage is:
|
||||
#. Enter an username
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.validate.missingUsername"
|
||||
msgid "Enter an username"
|
||||
msgstr "Sláðu inn notandanafn"
|
||||
|
||||
#. [konnect.loading.error.headline]
|
||||
#. defaultMessage is:
|
||||
#. Failed to connect to server
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.loading.error.headline"
|
||||
msgid "Failed to connect to server"
|
||||
msgstr "Mistókst að tengjast netþjóni"
|
||||
|
||||
#. [konnect.goodbye.headline]
|
||||
#. defaultMessage is:
|
||||
#. Goodbye
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.headline"
|
||||
msgid "Goodbye"
|
||||
msgstr "Bless"
|
||||
|
||||
#. [konnect.goodbye.confirm.headline]
|
||||
#. defaultMessage is:
|
||||
#. Hello {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.confirm.headline"
|
||||
msgid "Hello {displayName}"
|
||||
msgstr "Halló {displayName}"
|
||||
|
||||
#. [konnect.consent.headline]
|
||||
#. defaultMessage is:
|
||||
#. Hi {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.headline"
|
||||
msgid "Hi {displayName}"
|
||||
msgstr "Hæ {displayName}"
|
||||
|
||||
#. [konnect.scopeDescription.offlineAccess]
|
||||
#. defaultMessage is:
|
||||
#. Keep the allowed access persistently and forever
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.offlineAccess"
|
||||
msgid "Keep the allowed access persistently and forever"
|
||||
msgstr "Viðhalda heimildunum alltaf og að eilífu (mundu mig)"
|
||||
|
||||
#. [konnect.error.login.failed]
|
||||
#. defaultMessage is:
|
||||
#. Logon failed. Please verify your credentials and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.failed"
|
||||
msgid "Logon failed. Please verify your credentials and try again."
|
||||
msgstr "Innskráning mistókst. Vinsamlegast staðfestu notandaupplýsingarnar og reyndu aftur."
|
||||
|
||||
#. [konnet.error.http.networkError]
|
||||
#. defaultMessage is:
|
||||
#. Network error. Please check your connection and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnet.error.http.networkError"
|
||||
msgid "Network error. Please check your connection and try again."
|
||||
msgstr "Netvilla. Vinsamlegast athugaðu tenginguna þína og reyndu aftur."
|
||||
|
||||
#. [konnect.login.nextButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Next
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.nextButton.label"
|
||||
msgid "Next"
|
||||
msgstr "Næsta"
|
||||
|
||||
#. [konnect.login.passwordField.label]
|
||||
#. defaultMessage is:
|
||||
#. Password
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.passwordField.label"
|
||||
msgid "Password"
|
||||
msgstr "Lykilorð"
|
||||
|
||||
#. [konnect.goodbye.message.confirm]
|
||||
#. defaultMessage is:
|
||||
#. Press the button below, to sign out from your Kopano account now.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.message.confirm"
|
||||
msgid "Press the button below, to sign out from your Kopano account now."
|
||||
msgstr "Smelltu á takkann fyrir neðan til að skrá þig út af Kopano aðganginum núna."
|
||||
|
||||
#. [konnect.login.retryButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Retry
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.retryButton.label"
|
||||
msgid "Retry"
|
||||
msgstr "Reyna aftur"
|
||||
|
||||
#. [konnect.scopeDescription.scope]
|
||||
#. defaultMessage is:
|
||||
#. Scope: {scope}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.scope"
|
||||
msgid "Scope: {scope}"
|
||||
msgstr "Gildissvið: {scope}"
|
||||
|
||||
#. [konnect.login.headline]
|
||||
#. defaultMessage is:
|
||||
#. Sign in
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.headline"
|
||||
msgid "Sign in"
|
||||
msgstr "Innskrá"
|
||||
|
||||
#. [konnect.goodbye.signoutButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.signoutButton.label"
|
||||
msgid "Sign out"
|
||||
msgstr "Útskrá"
|
||||
|
||||
#. [konnect.welcome.signoutButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.signoutButton.label"
|
||||
msgid "Sign out"
|
||||
msgstr "Útskrá"
|
||||
|
||||
#. [konnect.error.http.unexpectedResponseStatus]
|
||||
#. defaultMessage is:
|
||||
#. Unexpected HTTP response: {status}. Please check your connection and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.http.unexpectedResponseStatus"
|
||||
msgid "Unexpected HTTP response: {status}. Please check your connection and try again."
|
||||
msgstr "Ófyrirsjáanlegt HTTP svar: {status}. Vinsamlegast athugaðu tenginguna þína og reyndu aftur."
|
||||
|
||||
#. [konnect.error.http.unexpectedResponseState]
|
||||
#. defaultMessage is:
|
||||
#. Unexpected response state: {state}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.http.unexpectedResponseState"
|
||||
msgid "Unexpected response state: {state}"
|
||||
msgstr "Ófyrirsjáanleg svarstaða: {state}"
|
||||
|
||||
#. [konnect.chooseaccount.useOther.label]
|
||||
#. defaultMessage is:
|
||||
#. Use another account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.useOther.label"
|
||||
msgid "Use another account"
|
||||
msgstr "Nota annan aðgang"
|
||||
|
||||
#. [konnect.login.usernameField.label]
|
||||
#. defaultMessage is:
|
||||
#. Username
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.usernameField.label"
|
||||
msgid "Username"
|
||||
msgstr "Notandanafn"
|
||||
|
||||
#. [konnect.welcome.headline]
|
||||
#. defaultMessage is:
|
||||
#. Welcome {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.headline"
|
||||
msgid "Welcome {displayName}"
|
||||
msgstr "Halló {displayName}"
|
||||
|
||||
#. [konnect.welcome.message]
|
||||
#. defaultMessage is:
|
||||
#. You are signed in - awesome!
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.message"
|
||||
msgid "You are signed in - awesome!"
|
||||
msgstr "Innskráningin tókst - frábært!"
|
||||
|
||||
#. [konnect.goodbye.message.close]
|
||||
#. defaultMessage is:
|
||||
#. You can close this window now.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.message.close"
|
||||
msgid "You can close this window now."
|
||||
msgstr "Þú getur lokað þessum glugga núna."
|
||||
|
||||
#. [konnect.goodbye.confirm.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. please confirm sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.confirm.subHeader"
|
||||
msgid "please confirm sign out"
|
||||
msgstr "vinsamlegast staðfestu útskráningu"
|
||||
|
||||
#. [konnect.chooseaccount.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. to sign in to Kopano
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.subHeader"
|
||||
msgid "to sign in to Kopano"
|
||||
msgstr "til að skrá þig inn í Kopano"
|
||||
|
||||
#. [konnect.login.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. with your Kopano account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.subHeader"
|
||||
msgid "with your Kopano account"
|
||||
msgstr "með Kopano-aðganginum þínum"
|
||||
|
||||
#. [konnect.goodbye.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. you have been signed out from your Kopano account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.subHeader"
|
||||
msgid "you have been signed out from your Kopano account"
|
||||
msgstr "útskráning Kopano-aðgangsins þíns tókst"
|
||||
|
||||
#. [konnect.consent.message]
|
||||
#. defaultMessage is:
|
||||
#. {clientDisplayName} wants to
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.message"
|
||||
msgid "{clientDisplayName} wants to"
|
||||
msgstr "{clientDisplayName} vill"
|
||||
+104
-213
@@ -1,309 +1,200 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: 2019-05-09T14:09:27.715Z\n"
|
||||
"PO-Revision-Date: 2018-10-30T16:08:29.860Z\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
"Project-Id-Version: LibreGraph Connect Identifier\n"
|
||||
"POT-Creation-Date: 2022-03-09T19:33:04.641Z\n"
|
||||
"PO-Revision-Date: 2022-03-09 11:22+0100\n"
|
||||
"Last-Translator: Simon Eisenmann <simon@longsleep.org>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: it\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: react-intl-po\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Poedit 2.3\n"
|
||||
|
||||
#. [konnect.chooseaccount.useOther.persona.label]
|
||||
#. defaultMessage is:
|
||||
#. ?
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.useOther.persona.label"
|
||||
#. From: konnect##consent##message
|
||||
#: konnect##consent##message
|
||||
msgid "<0><0><0></0></0></0> wants to"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##chooseaccount##useOther##persona##label
|
||||
#: konnect##chooseaccount##useOther##persona##label
|
||||
msgid "?"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.scopeDescription.aliasBasic]
|
||||
#. defaultMessage is:
|
||||
#. Access your basic account information
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.aliasBasic"
|
||||
#. From: konnect##scopeDescription##aliasBasic
|
||||
#: konnect##scopeDescription##aliasBasic
|
||||
msgid "Access your basic account information"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.allowButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Allow
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.allowButton.label"
|
||||
#. From: konnect##consent##allowButton##label
|
||||
#: konnect##consent##allowButton##label
|
||||
msgid "Allow"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.question]
|
||||
#. defaultMessage is:
|
||||
#. Allow {clientDisplayName} to do this?
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.question"
|
||||
msgid "Allow {clientDisplayName} to do this?"
|
||||
#. From: konnect##consent##question
|
||||
#: konnect##consent##question
|
||||
msgid "Allow <1><0></0></1> to do this?"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.consequence]
|
||||
#. defaultMessage is:
|
||||
#. By clicking Allow, you allow this app to use your information.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.consequence"
|
||||
#. From: konnect##consent##consequence
|
||||
#: konnect##consent##consequence
|
||||
msgid "By clicking Allow, you allow this app to use your information."
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.cancelButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Cancel
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.cancelButton.label"
|
||||
#. From: konnect##consent##cancelButton##label
|
||||
#: konnect##consent##cancelButton##label
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.chooseaccount.headline]
|
||||
#. defaultMessage is:
|
||||
#. Choose an account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.headline"
|
||||
#. From: konnect##chooseaccount##headline
|
||||
#: konnect##chooseaccount##headline
|
||||
msgid "Choose an account"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.tooltip.client]
|
||||
#. defaultMessage is:
|
||||
#. Clicking "Allow" will redirect you to: {redirectURI}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.tooltip.client"
|
||||
msgid "Clicking \"Allow\" will redirect you to: {redirectURI}"
|
||||
#. From: konnect##consent##tooltip##client
|
||||
#: konnect##consent##tooltip##client
|
||||
msgid "Clicking \"Allow\" will redirect you to: {{redirectURI}}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.error.login.validate.missingPassword]
|
||||
#. defaultMessage is:
|
||||
#. Enter a password
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.validate.missingPassword"
|
||||
msgid "Enter a password"
|
||||
#. From: konnect##login##usernameField##placeholder##email
|
||||
#: konnect##login##usernameField##placeholder##email
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.error.login.validate.missingUsername]
|
||||
#. defaultMessage is:
|
||||
#. Enter an username
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.validate.missingUsername"
|
||||
msgid "Enter an username"
|
||||
#. From: konnect##error##login##validate##missingUsername
|
||||
#: konnect##error##login##validate##missingUsername
|
||||
msgid "Enter a valid value."
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.loading.error.headline]
|
||||
#. defaultMessage is:
|
||||
#. Failed to connect to server
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.loading.error.headline"
|
||||
#. From: konnect##error##login##validate##missingPassword
|
||||
#: konnect##error##login##validate##missingPassword
|
||||
msgid "Enter your password."
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##loading##error##headline
|
||||
#: konnect##loading##error##headline
|
||||
msgid "Failed to connect to server"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.headline]
|
||||
#. defaultMessage is:
|
||||
#. Goodbye
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.headline"
|
||||
#. From: konnect##goodbye##headline
|
||||
#: konnect##goodbye##headline
|
||||
msgid "Goodbye"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.confirm.headline]
|
||||
#. defaultMessage is:
|
||||
#. Hello {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.confirm.headline"
|
||||
msgid "Hello {displayName}"
|
||||
#. From: konnect##goodbye##confirm##headline
|
||||
#: konnect##goodbye##confirm##headline
|
||||
msgid "Hello {{displayName}}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.headline]
|
||||
#. defaultMessage is:
|
||||
#. Hi {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.headline"
|
||||
msgid "Hi {displayName}"
|
||||
#. From: konnect##consent##headline
|
||||
#: konnect##consent##headline
|
||||
msgid "Hi {{displayName}}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.scopeDescription.offlineAccess]
|
||||
#. defaultMessage is:
|
||||
#. Keep the allowed access persistently and forever
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.offlineAccess"
|
||||
#. From: konnect##login##usernameField##placeholder##identity
|
||||
#: konnect##login##usernameField##placeholder##identity
|
||||
msgid "Identity"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##scopeDescription##offlineAccess
|
||||
#: konnect##scopeDescription##offlineAccess
|
||||
msgid "Keep the allowed access persistently and forever"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.error.login.failed]
|
||||
#. defaultMessage is:
|
||||
#. Logon failed. Please verify your credentials and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.failed"
|
||||
#. From: konnect##error##login##failed
|
||||
#: konnect##error##login##failed
|
||||
msgid "Logon failed. Please verify your credentials and try again."
|
||||
msgstr ""
|
||||
|
||||
#. [konnet.error.http.networkError]
|
||||
#. defaultMessage is:
|
||||
#. Network error. Please check your connection and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnet.error.http.networkError"
|
||||
#. From: konnect##error##http##networkError
|
||||
#: konnect##error##http##networkError
|
||||
msgid "Network error. Please check your connection and try again."
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.nextButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Next
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.nextButton.label"
|
||||
#. From: konnect##login##nextButton##label
|
||||
#: konnect##login##nextButton##label
|
||||
msgid "Next"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.passwordField.label]
|
||||
#. defaultMessage is:
|
||||
#. Password
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.passwordField.label"
|
||||
#. From: konnect##login##passwordField##label
|
||||
#: konnect##login##passwordField##label
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.message.confirm]
|
||||
#. defaultMessage is:
|
||||
#. Press the button below, to sign out from your Kopano account now.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.message.confirm"
|
||||
msgid "Press the button below, to sign out from your Kopano account now."
|
||||
#. From: konnect##goodbye##message##confirm
|
||||
#: konnect##goodbye##message##confirm
|
||||
msgid "Press the button below, to sign out from your account now."
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.retryButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Retry
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.retryButton.label"
|
||||
#. From: konnect##login##retryButton##label
|
||||
#: konnect##login##retryButton##label
|
||||
msgid "Retry"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.scopeDescription.scope]
|
||||
#. defaultMessage is:
|
||||
#. Scope: {scope}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.scope"
|
||||
msgid "Scope: {scope}"
|
||||
#. From: konnect##scopeDescription##scope
|
||||
#: konnect##scopeDescription##scope
|
||||
msgid "Scope: {{scope}}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.headline]
|
||||
#. defaultMessage is:
|
||||
#. Sign in
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.headline"
|
||||
#. From: konnect##login##headline
|
||||
#: konnect##login##headline
|
||||
msgid "Sign in"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.signoutButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.signoutButton.label"
|
||||
#. From: konnect##goodbye##signoutButton##label
|
||||
#. konnect##welcome##signoutButton##label
|
||||
#: konnect##goodbye##signoutButton##label
|
||||
#: konnect##welcome##signoutButton##label
|
||||
msgid "Sign out"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.welcome.signoutButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.signoutButton.label"
|
||||
msgid "Sign out"
|
||||
#. From: konnect##error##http##unexpectedResponseStatus
|
||||
#: konnect##error##http##unexpectedResponseStatus
|
||||
msgid "Unexpected HTTP response: {{status}}. Please check your connection and try again."
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.error.http.unexpectedResponseStatus]
|
||||
#. defaultMessage is:
|
||||
#. Unexpected HTTP response: {status}. Please check your connection and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.http.unexpectedResponseStatus"
|
||||
msgid "Unexpected HTTP response: {status}. Please check your connection and try again."
|
||||
#. From: konnect##error##http##unexpectedResponseState
|
||||
#: konnect##error##http##unexpectedResponseState
|
||||
msgid "Unexpected response state: {{state}}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.error.http.unexpectedResponseState]
|
||||
#. defaultMessage is:
|
||||
#. Unexpected response state: {state}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.http.unexpectedResponseState"
|
||||
msgid "Unexpected response state: {state}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.chooseaccount.useOther.label]
|
||||
#. defaultMessage is:
|
||||
#. Use another account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.useOther.label"
|
||||
#. From: konnect##chooseaccount##useOther##label
|
||||
#: konnect##chooseaccount##useOther##label
|
||||
msgid "Use another account"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.usernameField.label]
|
||||
#. defaultMessage is:
|
||||
#. Username
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.usernameField.label"
|
||||
#. From: konnect##login##usernameField##placeholder##username
|
||||
#: konnect##login##usernameField##placeholder##username
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.welcome.headline]
|
||||
#. defaultMessage is:
|
||||
#. Welcome {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.headline"
|
||||
msgid "Welcome {displayName}"
|
||||
#. From: konnect##welcome##headline
|
||||
#: konnect##welcome##headline
|
||||
msgid "Welcome {{displayName}}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.welcome.message]
|
||||
#. defaultMessage is:
|
||||
#. You are signed in - awesome!
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.message"
|
||||
#. From: konnect##welcome##message
|
||||
#: konnect##welcome##message
|
||||
msgid "You are signed in - awesome!"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.message.close]
|
||||
#. defaultMessage is:
|
||||
#. You can close this window now.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.message.close"
|
||||
#. From: konnect##goodbye##message##close
|
||||
#: konnect##goodbye##message##close
|
||||
msgid "You can close this window now."
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.confirm.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. please confirm sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.confirm.subHeader"
|
||||
#. From: konnect##goodbye##confirm##subHeader
|
||||
#: konnect##goodbye##confirm##subHeader
|
||||
msgid "please confirm sign out"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.chooseaccount.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. to sign in to Kopano
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.subHeader"
|
||||
msgid "to sign in to Kopano"
|
||||
#. From: konnect##chooseaccount##subHeader
|
||||
#: konnect##chooseaccount##subHeader
|
||||
msgid "to sign in"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. with your Kopano account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.subHeader"
|
||||
msgid "with your Kopano account"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. you have been signed out from your Kopano account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.subHeader"
|
||||
msgid "you have been signed out from your Kopano account"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.message]
|
||||
#. defaultMessage is:
|
||||
#. {clientDisplayName} wants to
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.message"
|
||||
msgid "{clientDisplayName} wants to"
|
||||
#. From: konnect##goodbye##subHeader
|
||||
#: konnect##goodbye##subHeader
|
||||
msgid "you have been signed out from your account"
|
||||
msgstr ""
|
||||
|
||||
@@ -1,309 +0,0 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: 2019-05-09T14:09:27.715Z\n"
|
||||
"PO-Revision-Date: 2018-10-30T16:08:29.860Z\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
"Language: ja\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: react-intl-po\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
#. [konnect.chooseaccount.useOther.persona.label]
|
||||
#. defaultMessage is:
|
||||
#. ?
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.useOther.persona.label"
|
||||
msgid "?"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.scopeDescription.aliasBasic]
|
||||
#. defaultMessage is:
|
||||
#. Access your basic account information
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.aliasBasic"
|
||||
msgid "Access your basic account information"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.allowButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Allow
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.allowButton.label"
|
||||
msgid "Allow"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.question]
|
||||
#. defaultMessage is:
|
||||
#. Allow {clientDisplayName} to do this?
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.question"
|
||||
msgid "Allow {clientDisplayName} to do this?"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.consequence]
|
||||
#. defaultMessage is:
|
||||
#. By clicking Allow, you allow this app to use your information.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.consequence"
|
||||
msgid "By clicking Allow, you allow this app to use your information."
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.cancelButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Cancel
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.cancelButton.label"
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.chooseaccount.headline]
|
||||
#. defaultMessage is:
|
||||
#. Choose an account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.headline"
|
||||
msgid "Choose an account"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.tooltip.client]
|
||||
#. defaultMessage is:
|
||||
#. Clicking "Allow" will redirect you to: {redirectURI}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.tooltip.client"
|
||||
msgid "Clicking \"Allow\" will redirect you to: {redirectURI}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.error.login.validate.missingPassword]
|
||||
#. defaultMessage is:
|
||||
#. Enter a password
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.validate.missingPassword"
|
||||
msgid "Enter a password"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.error.login.validate.missingUsername]
|
||||
#. defaultMessage is:
|
||||
#. Enter an username
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.validate.missingUsername"
|
||||
msgid "Enter an username"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.loading.error.headline]
|
||||
#. defaultMessage is:
|
||||
#. Failed to connect to server
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.loading.error.headline"
|
||||
msgid "Failed to connect to server"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.headline]
|
||||
#. defaultMessage is:
|
||||
#. Goodbye
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.headline"
|
||||
msgid "Goodbye"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.confirm.headline]
|
||||
#. defaultMessage is:
|
||||
#. Hello {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.confirm.headline"
|
||||
msgid "Hello {displayName}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.headline]
|
||||
#. defaultMessage is:
|
||||
#. Hi {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.headline"
|
||||
msgid "Hi {displayName}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.scopeDescription.offlineAccess]
|
||||
#. defaultMessage is:
|
||||
#. Keep the allowed access persistently and forever
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.offlineAccess"
|
||||
msgid "Keep the allowed access persistently and forever"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.error.login.failed]
|
||||
#. defaultMessage is:
|
||||
#. Logon failed. Please verify your credentials and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.failed"
|
||||
msgid "Logon failed. Please verify your credentials and try again."
|
||||
msgstr ""
|
||||
|
||||
#. [konnet.error.http.networkError]
|
||||
#. defaultMessage is:
|
||||
#. Network error. Please check your connection and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnet.error.http.networkError"
|
||||
msgid "Network error. Please check your connection and try again."
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.nextButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Next
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.nextButton.label"
|
||||
msgid "Next"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.passwordField.label]
|
||||
#. defaultMessage is:
|
||||
#. Password
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.passwordField.label"
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.message.confirm]
|
||||
#. defaultMessage is:
|
||||
#. Press the button below, to sign out from your Kopano account now.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.message.confirm"
|
||||
msgid "Press the button below, to sign out from your Kopano account now."
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.retryButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Retry
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.retryButton.label"
|
||||
msgid "Retry"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.scopeDescription.scope]
|
||||
#. defaultMessage is:
|
||||
#. Scope: {scope}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.scope"
|
||||
msgid "Scope: {scope}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.headline]
|
||||
#. defaultMessage is:
|
||||
#. Sign in
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.headline"
|
||||
msgid "Sign in"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.signoutButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.signoutButton.label"
|
||||
msgid "Sign out"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.welcome.signoutButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.signoutButton.label"
|
||||
msgid "Sign out"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.error.http.unexpectedResponseStatus]
|
||||
#. defaultMessage is:
|
||||
#. Unexpected HTTP response: {status}. Please check your connection and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.http.unexpectedResponseStatus"
|
||||
msgid "Unexpected HTTP response: {status}. Please check your connection and try again."
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.error.http.unexpectedResponseState]
|
||||
#. defaultMessage is:
|
||||
#. Unexpected response state: {state}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.http.unexpectedResponseState"
|
||||
msgid "Unexpected response state: {state}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.chooseaccount.useOther.label]
|
||||
#. defaultMessage is:
|
||||
#. Use another account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.useOther.label"
|
||||
msgid "Use another account"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.usernameField.label]
|
||||
#. defaultMessage is:
|
||||
#. Username
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.usernameField.label"
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.welcome.headline]
|
||||
#. defaultMessage is:
|
||||
#. Welcome {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.headline"
|
||||
msgid "Welcome {displayName}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.welcome.message]
|
||||
#. defaultMessage is:
|
||||
#. You are signed in - awesome!
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.message"
|
||||
msgid "You are signed in - awesome!"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.message.close]
|
||||
#. defaultMessage is:
|
||||
#. You can close this window now.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.message.close"
|
||||
msgid "You can close this window now."
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.confirm.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. please confirm sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.confirm.subHeader"
|
||||
msgid "please confirm sign out"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.chooseaccount.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. to sign in to Kopano
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.subHeader"
|
||||
msgid "to sign in to Kopano"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. with your Kopano account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.subHeader"
|
||||
msgid "with your Kopano account"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. you have been signed out from your Kopano account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.subHeader"
|
||||
msgid "you have been signed out from your Kopano account"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.message]
|
||||
#. defaultMessage is:
|
||||
#. {clientDisplayName} wants to
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.message"
|
||||
msgid "{clientDisplayName} wants to"
|
||||
msgstr ""
|
||||
@@ -1,304 +0,0 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"POT-Creation-Date: 2019-05-09T14:09:27.715Z\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"X-Generator: react-intl-po\n"
|
||||
|
||||
|
||||
#: ./i18n/src/messages.json
|
||||
#. [konnect.chooseaccount.useOther.persona.label]
|
||||
#. defaultMessage is:
|
||||
#. ?
|
||||
msgctxt "konnect.chooseaccount.useOther.persona.label"
|
||||
msgid "?"
|
||||
msgstr ""
|
||||
|
||||
#: ./i18n/src/messages.json
|
||||
#. [konnect.scopeDescription.aliasBasic]
|
||||
#. defaultMessage is:
|
||||
#. Access your basic account information
|
||||
msgctxt "konnect.scopeDescription.aliasBasic"
|
||||
msgid "Access your basic account information"
|
||||
msgstr ""
|
||||
|
||||
#: ./i18n/src/messages.json
|
||||
#. [konnect.consent.allowButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Allow
|
||||
msgctxt "konnect.consent.allowButton.label"
|
||||
msgid "Allow"
|
||||
msgstr ""
|
||||
|
||||
#: ./i18n/src/messages.json
|
||||
#. [konnect.consent.question]
|
||||
#. defaultMessage is:
|
||||
#. Allow {clientDisplayName} to do this?
|
||||
msgctxt "konnect.consent.question"
|
||||
msgid "Allow {clientDisplayName} to do this?"
|
||||
msgstr ""
|
||||
|
||||
#: ./i18n/src/messages.json
|
||||
#. [konnect.consent.consequence]
|
||||
#. defaultMessage is:
|
||||
#. By clicking Allow, you allow this app to use your information.
|
||||
msgctxt "konnect.consent.consequence"
|
||||
msgid "By clicking Allow, you allow this app to use your information."
|
||||
msgstr ""
|
||||
|
||||
#: ./i18n/src/messages.json
|
||||
#. [konnect.consent.cancelButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Cancel
|
||||
msgctxt "konnect.consent.cancelButton.label"
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: ./i18n/src/messages.json
|
||||
#. [konnect.chooseaccount.headline]
|
||||
#. defaultMessage is:
|
||||
#. Choose an account
|
||||
msgctxt "konnect.chooseaccount.headline"
|
||||
msgid "Choose an account"
|
||||
msgstr ""
|
||||
|
||||
#: ./i18n/src/messages.json
|
||||
#. [konnect.consent.tooltip.client]
|
||||
#. defaultMessage is:
|
||||
#. Clicking "Allow" will redirect you to: {redirectURI}
|
||||
msgctxt "konnect.consent.tooltip.client"
|
||||
msgid "Clicking \"Allow\" will redirect you to: {redirectURI}"
|
||||
msgstr ""
|
||||
|
||||
#: ./i18n/src/messages.json
|
||||
#. [konnect.error.login.validate.missingPassword]
|
||||
#. defaultMessage is:
|
||||
#. Enter a password
|
||||
msgctxt "konnect.error.login.validate.missingPassword"
|
||||
msgid "Enter a password"
|
||||
msgstr ""
|
||||
|
||||
#: ./i18n/src/messages.json
|
||||
#. [konnect.error.login.validate.missingUsername]
|
||||
#. defaultMessage is:
|
||||
#. Enter an username
|
||||
msgctxt "konnect.error.login.validate.missingUsername"
|
||||
msgid "Enter an username"
|
||||
msgstr ""
|
||||
|
||||
#: ./i18n/src/messages.json
|
||||
#. [konnect.loading.error.headline]
|
||||
#. defaultMessage is:
|
||||
#. Failed to connect to server
|
||||
msgctxt "konnect.loading.error.headline"
|
||||
msgid "Failed to connect to server"
|
||||
msgstr ""
|
||||
|
||||
#: ./i18n/src/messages.json
|
||||
#. [konnect.goodbye.headline]
|
||||
#. defaultMessage is:
|
||||
#. Goodbye
|
||||
msgctxt "konnect.goodbye.headline"
|
||||
msgid "Goodbye"
|
||||
msgstr ""
|
||||
|
||||
#: ./i18n/src/messages.json
|
||||
#. [konnect.goodbye.confirm.headline]
|
||||
#. defaultMessage is:
|
||||
#. Hello {displayName}
|
||||
msgctxt "konnect.goodbye.confirm.headline"
|
||||
msgid "Hello {displayName}"
|
||||
msgstr ""
|
||||
|
||||
#: ./i18n/src/messages.json
|
||||
#. [konnect.consent.headline]
|
||||
#. defaultMessage is:
|
||||
#. Hi {displayName}
|
||||
msgctxt "konnect.consent.headline"
|
||||
msgid "Hi {displayName}"
|
||||
msgstr ""
|
||||
|
||||
#: ./i18n/src/messages.json
|
||||
#. [konnect.scopeDescription.offlineAccess]
|
||||
#. defaultMessage is:
|
||||
#. Keep the allowed access persistently and forever
|
||||
msgctxt "konnect.scopeDescription.offlineAccess"
|
||||
msgid "Keep the allowed access persistently and forever"
|
||||
msgstr ""
|
||||
|
||||
#: ./i18n/src/messages.json
|
||||
#. [konnect.error.login.failed]
|
||||
#. defaultMessage is:
|
||||
#. Logon failed. Please verify your credentials and try again.
|
||||
msgctxt "konnect.error.login.failed"
|
||||
msgid "Logon failed. Please verify your credentials and try again."
|
||||
msgstr ""
|
||||
|
||||
#: ./i18n/src/messages.json
|
||||
#. [konnet.error.http.networkError]
|
||||
#. defaultMessage is:
|
||||
#. Network error. Please check your connection and try again.
|
||||
msgctxt "konnet.error.http.networkError"
|
||||
msgid "Network error. Please check your connection and try again."
|
||||
msgstr ""
|
||||
|
||||
#: ./i18n/src/messages.json
|
||||
#. [konnect.login.nextButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Next
|
||||
msgctxt "konnect.login.nextButton.label"
|
||||
msgid "Next"
|
||||
msgstr ""
|
||||
|
||||
#: ./i18n/src/messages.json
|
||||
#. [konnect.login.passwordField.label]
|
||||
#. defaultMessage is:
|
||||
#. Password
|
||||
msgctxt "konnect.login.passwordField.label"
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#: ./i18n/src/messages.json
|
||||
#. [konnect.goodbye.message.confirm]
|
||||
#. defaultMessage is:
|
||||
#. Press the button below, to sign out from your Kopano account now.
|
||||
msgctxt "konnect.goodbye.message.confirm"
|
||||
msgid "Press the button below, to sign out from your Kopano account now."
|
||||
msgstr ""
|
||||
|
||||
#: ./i18n/src/messages.json
|
||||
#. [konnect.login.retryButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Retry
|
||||
msgctxt "konnect.login.retryButton.label"
|
||||
msgid "Retry"
|
||||
msgstr ""
|
||||
|
||||
#: ./i18n/src/messages.json
|
||||
#. [konnect.scopeDescription.scope]
|
||||
#. defaultMessage is:
|
||||
#. Scope: {scope}
|
||||
msgctxt "konnect.scopeDescription.scope"
|
||||
msgid "Scope: {scope}"
|
||||
msgstr ""
|
||||
|
||||
#: ./i18n/src/messages.json
|
||||
#. [konnect.login.headline]
|
||||
#. defaultMessage is:
|
||||
#. Sign in
|
||||
msgctxt "konnect.login.headline"
|
||||
msgid "Sign in"
|
||||
msgstr ""
|
||||
|
||||
#: ./i18n/src/messages.json
|
||||
#. [konnect.goodbye.signoutButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Sign out
|
||||
msgctxt "konnect.goodbye.signoutButton.label"
|
||||
msgid "Sign out"
|
||||
msgstr ""
|
||||
|
||||
#: ./i18n/src/messages.json
|
||||
#. [konnect.welcome.signoutButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Sign out
|
||||
msgctxt "konnect.welcome.signoutButton.label"
|
||||
msgid "Sign out"
|
||||
msgstr ""
|
||||
|
||||
#: ./i18n/src/messages.json
|
||||
#. [konnect.error.http.unexpectedResponseStatus]
|
||||
#. defaultMessage is:
|
||||
#. Unexpected HTTP response: {status}. Please check your connection and try again.
|
||||
msgctxt "konnect.error.http.unexpectedResponseStatus"
|
||||
msgid "Unexpected HTTP response: {status}. Please check your connection and try again."
|
||||
msgstr ""
|
||||
|
||||
#: ./i18n/src/messages.json
|
||||
#. [konnect.error.http.unexpectedResponseState]
|
||||
#. defaultMessage is:
|
||||
#. Unexpected response state: {state}
|
||||
msgctxt "konnect.error.http.unexpectedResponseState"
|
||||
msgid "Unexpected response state: {state}"
|
||||
msgstr ""
|
||||
|
||||
#: ./i18n/src/messages.json
|
||||
#. [konnect.chooseaccount.useOther.label]
|
||||
#. defaultMessage is:
|
||||
#. Use another account
|
||||
msgctxt "konnect.chooseaccount.useOther.label"
|
||||
msgid "Use another account"
|
||||
msgstr ""
|
||||
|
||||
#: ./i18n/src/messages.json
|
||||
#. [konnect.login.usernameField.label]
|
||||
#. defaultMessage is:
|
||||
#. Username
|
||||
msgctxt "konnect.login.usernameField.label"
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
|
||||
#: ./i18n/src/messages.json
|
||||
#. [konnect.welcome.headline]
|
||||
#. defaultMessage is:
|
||||
#. Welcome {displayName}
|
||||
msgctxt "konnect.welcome.headline"
|
||||
msgid "Welcome {displayName}"
|
||||
msgstr ""
|
||||
|
||||
#: ./i18n/src/messages.json
|
||||
#. [konnect.welcome.message]
|
||||
#. defaultMessage is:
|
||||
#. You are signed in - awesome!
|
||||
msgctxt "konnect.welcome.message"
|
||||
msgid "You are signed in - awesome!"
|
||||
msgstr ""
|
||||
|
||||
#: ./i18n/src/messages.json
|
||||
#. [konnect.goodbye.message.close]
|
||||
#. defaultMessage is:
|
||||
#. You can close this window now.
|
||||
msgctxt "konnect.goodbye.message.close"
|
||||
msgid "You can close this window now."
|
||||
msgstr ""
|
||||
|
||||
#: ./i18n/src/messages.json
|
||||
#. [konnect.goodbye.confirm.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. please confirm sign out
|
||||
msgctxt "konnect.goodbye.confirm.subHeader"
|
||||
msgid "please confirm sign out"
|
||||
msgstr ""
|
||||
|
||||
#: ./i18n/src/messages.json
|
||||
#. [konnect.chooseaccount.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. to sign in to Kopano
|
||||
msgctxt "konnect.chooseaccount.subHeader"
|
||||
msgid "to sign in to Kopano"
|
||||
msgstr ""
|
||||
|
||||
#: ./i18n/src/messages.json
|
||||
#. [konnect.login.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. with your Kopano account
|
||||
msgctxt "konnect.login.subHeader"
|
||||
msgid "with your Kopano account"
|
||||
msgstr ""
|
||||
|
||||
#: ./i18n/src/messages.json
|
||||
#. [konnect.goodbye.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. you have been signed out from your Kopano account
|
||||
msgctxt "konnect.goodbye.subHeader"
|
||||
msgid "you have been signed out from your Kopano account"
|
||||
msgstr ""
|
||||
|
||||
#: ./i18n/src/messages.json
|
||||
#. [konnect.consent.message]
|
||||
#. defaultMessage is:
|
||||
#. {clientDisplayName} wants to
|
||||
msgctxt "konnect.consent.message"
|
||||
msgid "{clientDisplayName} wants to"
|
||||
msgstr ""
|
||||
@@ -1,309 +0,0 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: 2019-05-09T14:09:27.715Z\n"
|
||||
"PO-Revision-Date: 2019-08-26 16:21+0000\n"
|
||||
"Last-Translator: Klaus <klaus@linuxavdelingen.no>\n"
|
||||
"Language-Team: Norwegian Bokmål <http://translate.kopano.io/projects/kopano/konnect/nb/>\n"
|
||||
"Language: nb\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 2.4\n"
|
||||
|
||||
#. [konnect.chooseaccount.useOther.persona.label]
|
||||
#. defaultMessage is:
|
||||
#. ?
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.useOther.persona.label"
|
||||
msgid "?"
|
||||
msgstr "?"
|
||||
|
||||
#. [konnect.scopeDescription.aliasBasic]
|
||||
#. defaultMessage is:
|
||||
#. Access your basic account information
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.aliasBasic"
|
||||
msgid "Access your basic account information"
|
||||
msgstr "Tilgang til informasjon om basiskonto"
|
||||
|
||||
#. [konnect.consent.allowButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Allow
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.allowButton.label"
|
||||
msgid "Allow"
|
||||
msgstr "Tillat"
|
||||
|
||||
#. [konnect.consent.question]
|
||||
#. defaultMessage is:
|
||||
#. Allow {clientDisplayName} to do this?
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.question"
|
||||
msgid "Allow {clientDisplayName} to do this?"
|
||||
msgstr "Tillatt {clientDisplayName} å gjøre dette?"
|
||||
|
||||
#. [konnect.consent.consequence]
|
||||
#. defaultMessage is:
|
||||
#. By clicking Allow, you allow this app to use your information.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.consequence"
|
||||
msgid "By clicking Allow, you allow this app to use your information."
|
||||
msgstr "Ved å klikke på Aksepter, så tillater du at appen bruker din informasjon."
|
||||
|
||||
#. [konnect.consent.cancelButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Cancel
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.cancelButton.label"
|
||||
msgid "Cancel"
|
||||
msgstr "Avbryt"
|
||||
|
||||
#. [konnect.chooseaccount.headline]
|
||||
#. defaultMessage is:
|
||||
#. Choose an account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.headline"
|
||||
msgid "Choose an account"
|
||||
msgstr "Velg en konto"
|
||||
|
||||
#. [konnect.consent.tooltip.client]
|
||||
#. defaultMessage is:
|
||||
#. Clicking "Allow" will redirect you to: {redirectURI}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.tooltip.client"
|
||||
msgid "Clicking \"Allow\" will redirect you to: {redirectURI}"
|
||||
msgstr "Ved å klikke på \"Tillatt\" så vil du bli ledet til: {redirectURI}"
|
||||
|
||||
#. [konnect.error.login.validate.missingPassword]
|
||||
#. defaultMessage is:
|
||||
#. Enter a password
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.validate.missingPassword"
|
||||
msgid "Enter a password"
|
||||
msgstr "Skriv inn et passord"
|
||||
|
||||
#. [konnect.error.login.validate.missingUsername]
|
||||
#. defaultMessage is:
|
||||
#. Enter an username
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.validate.missingUsername"
|
||||
msgid "Enter an username"
|
||||
msgstr "Skriv inn et brukernavn"
|
||||
|
||||
#. [konnect.loading.error.headline]
|
||||
#. defaultMessage is:
|
||||
#. Failed to connect to server
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.loading.error.headline"
|
||||
msgid "Failed to connect to server"
|
||||
msgstr "Klarte ikke å forbinde med server"
|
||||
|
||||
#. [konnect.goodbye.headline]
|
||||
#. defaultMessage is:
|
||||
#. Goodbye
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.headline"
|
||||
msgid "Goodbye"
|
||||
msgstr "Farvel"
|
||||
|
||||
#. [konnect.goodbye.confirm.headline]
|
||||
#. defaultMessage is:
|
||||
#. Hello {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.confirm.headline"
|
||||
msgid "Hello {displayName}"
|
||||
msgstr "Hallo {displayName}"
|
||||
|
||||
#. [konnect.consent.headline]
|
||||
#. defaultMessage is:
|
||||
#. Hi {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.headline"
|
||||
msgid "Hi {displayName}"
|
||||
msgstr "Hei {displayName}"
|
||||
|
||||
#. [konnect.scopeDescription.offlineAccess]
|
||||
#. defaultMessage is:
|
||||
#. Keep the allowed access persistently and forever
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.offlineAccess"
|
||||
msgid "Keep the allowed access persistently and forever"
|
||||
msgstr "Behold den tillate tilgangen for alltid"
|
||||
|
||||
#. [konnect.error.login.failed]
|
||||
#. defaultMessage is:
|
||||
#. Logon failed. Please verify your credentials and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.failed"
|
||||
msgid "Logon failed. Please verify your credentials and try again."
|
||||
msgstr "Logg inn feilet. Vennligst sjekk brukernavn/passord, og forsøk igjen."
|
||||
|
||||
#. [konnet.error.http.networkError]
|
||||
#. defaultMessage is:
|
||||
#. Network error. Please check your connection and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnet.error.http.networkError"
|
||||
msgid "Network error. Please check your connection and try again."
|
||||
msgstr "Nettverksfeil. Sjekk din forbindelse, og forsøk igjen."
|
||||
|
||||
#. [konnect.login.nextButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Next
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.nextButton.label"
|
||||
msgid "Next"
|
||||
msgstr "Neste"
|
||||
|
||||
#. [konnect.login.passwordField.label]
|
||||
#. defaultMessage is:
|
||||
#. Password
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.passwordField.label"
|
||||
msgid "Password"
|
||||
msgstr "Passord"
|
||||
|
||||
#. [konnect.goodbye.message.confirm]
|
||||
#. defaultMessage is:
|
||||
#. Press the button below, to sign out from your Kopano account now.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.message.confirm"
|
||||
msgid "Press the button below, to sign out from your Kopano account now."
|
||||
msgstr "Trykk på knappen under, for å logge ut av din Kopano konto."
|
||||
|
||||
#. [konnect.login.retryButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Retry
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.retryButton.label"
|
||||
msgid "Retry"
|
||||
msgstr "Prøv igjen"
|
||||
|
||||
#. [konnect.scopeDescription.scope]
|
||||
#. defaultMessage is:
|
||||
#. Scope: {scope}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.scope"
|
||||
msgid "Scope: {scope}"
|
||||
msgstr "Omfang: {scope}"
|
||||
|
||||
#. [konnect.login.headline]
|
||||
#. defaultMessage is:
|
||||
#. Sign in
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.headline"
|
||||
msgid "Sign in"
|
||||
msgstr "Logg inn"
|
||||
|
||||
#. [konnect.goodbye.signoutButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.signoutButton.label"
|
||||
msgid "Sign out"
|
||||
msgstr "Logg ut"
|
||||
|
||||
#. [konnect.welcome.signoutButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.signoutButton.label"
|
||||
msgid "Sign out"
|
||||
msgstr "Logg ut"
|
||||
|
||||
#. [konnect.error.http.unexpectedResponseStatus]
|
||||
#. defaultMessage is:
|
||||
#. Unexpected HTTP response: {status}. Please check your connection and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.http.unexpectedResponseStatus"
|
||||
msgid "Unexpected HTTP response: {status}. Please check your connection and try again."
|
||||
msgstr "Uventet HTTP respons: {status}. Sjekk tilkoblingen din og prøv igjen."
|
||||
|
||||
#. [konnect.error.http.unexpectedResponseState]
|
||||
#. defaultMessage is:
|
||||
#. Unexpected response state: {state}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.http.unexpectedResponseState"
|
||||
msgid "Unexpected response state: {state}"
|
||||
msgstr "Uventet svar-status: {state}"
|
||||
|
||||
#. [konnect.chooseaccount.useOther.label]
|
||||
#. defaultMessage is:
|
||||
#. Use another account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.useOther.label"
|
||||
msgid "Use another account"
|
||||
msgstr "Bruk en annen konto"
|
||||
|
||||
#. [konnect.login.usernameField.label]
|
||||
#. defaultMessage is:
|
||||
#. Username
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.usernameField.label"
|
||||
msgid "Username"
|
||||
msgstr "Brukernavn"
|
||||
|
||||
#. [konnect.welcome.headline]
|
||||
#. defaultMessage is:
|
||||
#. Welcome {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.headline"
|
||||
msgid "Welcome {displayName}"
|
||||
msgstr "Velkommen {displayName}"
|
||||
|
||||
#. [konnect.welcome.message]
|
||||
#. defaultMessage is:
|
||||
#. You are signed in - awesome!
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.message"
|
||||
msgid "You are signed in - awesome!"
|
||||
msgstr "Du er logget på!"
|
||||
|
||||
#. [konnect.goodbye.message.close]
|
||||
#. defaultMessage is:
|
||||
#. You can close this window now.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.message.close"
|
||||
msgid "You can close this window now."
|
||||
msgstr "Du kan lukke dette vinduet nå."
|
||||
|
||||
#. [konnect.goodbye.confirm.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. please confirm sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.confirm.subHeader"
|
||||
msgid "please confirm sign out"
|
||||
msgstr "vennligst bekreft utlogging"
|
||||
|
||||
#. [konnect.chooseaccount.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. to sign in to Kopano
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.subHeader"
|
||||
msgid "to sign in to Kopano"
|
||||
msgstr "for å logge inn i Kopano"
|
||||
|
||||
#. [konnect.login.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. with your Kopano account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.subHeader"
|
||||
msgid "with your Kopano account"
|
||||
msgstr "med din Kopano konto"
|
||||
|
||||
#. [konnect.goodbye.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. you have been signed out from your Kopano account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.subHeader"
|
||||
msgid "you have been signed out from your Kopano account"
|
||||
msgstr "du har blitt logget ut fra din Kopano konto"
|
||||
|
||||
#. [konnect.consent.message]
|
||||
#. defaultMessage is:
|
||||
#. {clientDisplayName} wants to
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.message"
|
||||
msgid "{clientDisplayName} wants to"
|
||||
msgstr "{clientDisplayName} ønsker"
|
||||
+138
-223
@@ -1,309 +1,224 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: 2019-05-09T14:09:27.715Z\n"
|
||||
"PO-Revision-Date: 2019-05-09 13:19+0000\n"
|
||||
"Last-Translator: Bob <b.huisman@kopano.com>\n"
|
||||
"Project-Id-Version: \n"
|
||||
"POT-Creation-Date: 2022-03-09T19:33:04.641Z\n"
|
||||
"PO-Revision-Date: 2022-03-09 18:45+0100\n"
|
||||
"Last-Translator: Simon Eisenmann <simon@longsleep.org>\n"
|
||||
"Language-Team: Dutch <http://translate.kopano.io/projects/kopano/konnect/nl/>\n"
|
||||
"Language: nl\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 2.4\n"
|
||||
"X-Generator: Poedit 2.3\n"
|
||||
|
||||
#. [konnect.chooseaccount.useOther.persona.label]
|
||||
#. defaultMessage is:
|
||||
#. ?
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.useOther.persona.label"
|
||||
#. From: konnect##consent##message
|
||||
#: konnect##consent##message
|
||||
msgid "<0><0><0></0></0></0> wants to"
|
||||
msgstr "<0><0><0></0></0></0> wil"
|
||||
|
||||
#. From: konnect##chooseaccount##useOther##persona##label
|
||||
#: konnect##chooseaccount##useOther##persona##label
|
||||
msgid "?"
|
||||
msgstr "?"
|
||||
|
||||
#. [konnect.scopeDescription.aliasBasic]
|
||||
#. defaultMessage is:
|
||||
#. Access your basic account information
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.aliasBasic"
|
||||
#. From: konnect##scopeDescription##aliasBasic
|
||||
#: konnect##scopeDescription##aliasBasic
|
||||
msgid "Access your basic account information"
|
||||
msgstr "Basis accountgegevens weergeven"
|
||||
|
||||
#. [konnect.consent.allowButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Allow
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.allowButton.label"
|
||||
#. From: konnect##consent##allowButton##label
|
||||
#: konnect##consent##allowButton##label
|
||||
msgid "Allow"
|
||||
msgstr "Toestaan"
|
||||
|
||||
#. [konnect.consent.question]
|
||||
#. defaultMessage is:
|
||||
#. Allow {clientDisplayName} to do this?
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.question"
|
||||
msgid "Allow {clientDisplayName} to do this?"
|
||||
msgstr "{clientDisplayName} toestaan dit te doen?"
|
||||
#. From: konnect##consent##question
|
||||
#: konnect##consent##question
|
||||
msgid "Allow <1><0></0></1> to do this?"
|
||||
msgstr "<1><0></0></1> toestaan dit te doen?"
|
||||
|
||||
#. [konnect.consent.consequence]
|
||||
#. defaultMessage is:
|
||||
#. By clicking Allow, you allow this app to use your information.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.consequence"
|
||||
#. From: konnect##consent##consequence
|
||||
#: konnect##consent##consequence
|
||||
msgid "By clicking Allow, you allow this app to use your information."
|
||||
msgstr "Door op Toestaan te klikken, krijgt deze app toestemming je informatie te gebruiken."
|
||||
|
||||
#. [konnect.consent.cancelButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Cancel
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.cancelButton.label"
|
||||
#. From: konnect##consent##cancelButton##label
|
||||
#: konnect##consent##cancelButton##label
|
||||
msgid "Cancel"
|
||||
msgstr "Annuleren"
|
||||
|
||||
#. [konnect.chooseaccount.headline]
|
||||
#. defaultMessage is:
|
||||
#. Choose an account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.headline"
|
||||
#. From: konnect##chooseaccount##headline
|
||||
#: konnect##chooseaccount##headline
|
||||
msgid "Choose an account"
|
||||
msgstr "Account kiezen"
|
||||
|
||||
#. [konnect.consent.tooltip.client]
|
||||
#. defaultMessage is:
|
||||
#. Clicking "Allow" will redirect you to: {redirectURI}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.tooltip.client"
|
||||
msgid "Clicking \"Allow\" will redirect you to: {redirectURI}"
|
||||
msgstr "Door op \"Toestaan\" te klikken word je doorverwezen naar: {redirectURI}"
|
||||
#. From: konnect##consent##tooltip##client
|
||||
#: konnect##consent##tooltip##client
|
||||
msgid "Clicking \"Allow\" will redirect you to: {{redirectURI}}"
|
||||
msgstr "Door op \"Toestaan\" te klikken word je doorverwezen naar: {{redirectURI}}"
|
||||
|
||||
#. [konnect.error.login.validate.missingPassword]
|
||||
#. defaultMessage is:
|
||||
#. Enter a password
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.validate.missingPassword"
|
||||
msgid "Enter a password"
|
||||
msgstr "Voer een wachtwoord in"
|
||||
#. From: konnect##login##usernameField##placeholder##email
|
||||
#: konnect##login##usernameField##placeholder##email
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.error.login.validate.missingUsername]
|
||||
#. defaultMessage is:
|
||||
#. Enter an username
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.validate.missingUsername"
|
||||
msgid "Enter an username"
|
||||
msgstr "Voer een gebruikersnaam in"
|
||||
#. From: konnect##error##login##validate##missingUsername
|
||||
#: konnect##error##login##validate##missingUsername
|
||||
msgid "Enter a valid value."
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.loading.error.headline]
|
||||
#. defaultMessage is:
|
||||
#. Failed to connect to server
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.loading.error.headline"
|
||||
#. From: konnect##error##login##validate##missingPassword
|
||||
#: konnect##error##login##validate##missingPassword
|
||||
msgid "Enter your password."
|
||||
msgstr "Voer een wachtwoord in."
|
||||
|
||||
#. From: konnect##loading##error##headline
|
||||
#: konnect##loading##error##headline
|
||||
msgid "Failed to connect to server"
|
||||
msgstr "Kon niet met server verbinden"
|
||||
|
||||
#. [konnect.goodbye.headline]
|
||||
#. defaultMessage is:
|
||||
#. Goodbye
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.headline"
|
||||
#. From: konnect##goodbye##headline
|
||||
#: konnect##goodbye##headline
|
||||
msgid "Goodbye"
|
||||
msgstr "Tot ziens"
|
||||
|
||||
#. [konnect.goodbye.confirm.headline]
|
||||
#. defaultMessage is:
|
||||
#. Hello {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.confirm.headline"
|
||||
msgid "Hello {displayName}"
|
||||
msgstr "Hallo {displayName}"
|
||||
#. From: konnect##goodbye##confirm##headline
|
||||
#: konnect##goodbye##confirm##headline
|
||||
msgid "Hello {{displayName}}"
|
||||
msgstr "Hallo {{displayName}}"
|
||||
|
||||
#. [konnect.consent.headline]
|
||||
#. defaultMessage is:
|
||||
#. Hi {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.headline"
|
||||
msgid "Hi {displayName}"
|
||||
msgstr "Hoi {displayName}"
|
||||
#. From: konnect##consent##headline
|
||||
#: konnect##consent##headline
|
||||
msgid "Hi {{displayName}}"
|
||||
msgstr "Hoi {{displayName}}"
|
||||
|
||||
#. [konnect.scopeDescription.offlineAccess]
|
||||
#. defaultMessage is:
|
||||
#. Keep the allowed access persistently and forever
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.offlineAccess"
|
||||
#. From: konnect##login##usernameField##placeholder##identity
|
||||
#: konnect##login##usernameField##placeholder##identity
|
||||
msgid "Identity"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##scopeDescription##offlineAccess
|
||||
#: konnect##scopeDescription##offlineAccess
|
||||
msgid "Keep the allowed access persistently and forever"
|
||||
msgstr "De toestemming voor altijd onthouden"
|
||||
|
||||
#. [konnect.error.login.failed]
|
||||
#. defaultMessage is:
|
||||
#. Logon failed. Please verify your credentials and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.failed"
|
||||
#. From: konnect##error##login##failed
|
||||
#: konnect##error##login##failed
|
||||
msgid "Logon failed. Please verify your credentials and try again."
|
||||
msgstr "Inloggen mislukt. Controleer logingegevens en probeer opnieuw."
|
||||
|
||||
#. [konnet.error.http.networkError]
|
||||
#. defaultMessage is:
|
||||
#. Network error. Please check your connection and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnet.error.http.networkError"
|
||||
#. From: konnect##error##http##networkError
|
||||
#: konnect##error##http##networkError
|
||||
msgid "Network error. Please check your connection and try again."
|
||||
msgstr "Netwerk probleem. Controleer je verbinding en probeer opnieuw."
|
||||
|
||||
#. [konnect.login.nextButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Next
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.nextButton.label"
|
||||
#. From: konnect##login##nextButton##label
|
||||
#: konnect##login##nextButton##label
|
||||
msgid "Next"
|
||||
msgstr "Volgende"
|
||||
|
||||
#. [konnect.login.passwordField.label]
|
||||
#. defaultMessage is:
|
||||
#. Password
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.passwordField.label"
|
||||
#. From: konnect##login##passwordField##label
|
||||
#: konnect##login##passwordField##label
|
||||
msgid "Password"
|
||||
msgstr "Wachtwoord"
|
||||
|
||||
#. [konnect.goodbye.message.confirm]
|
||||
#. defaultMessage is:
|
||||
#. Press the button below, to sign out from your Kopano account now.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.message.confirm"
|
||||
msgid "Press the button below, to sign out from your Kopano account now."
|
||||
msgstr "Klik op onderstaande knop om af te melden van je Kopano account."
|
||||
#. From: konnect##goodbye##message##confirm
|
||||
#: konnect##goodbye##message##confirm
|
||||
msgid "Press the button below, to sign out from your account now."
|
||||
msgstr "Klik op onderstaande knop om af te melden van je account."
|
||||
|
||||
#. [konnect.login.retryButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Retry
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.retryButton.label"
|
||||
#. From: konnect##login##retryButton##label
|
||||
#: konnect##login##retryButton##label
|
||||
msgid "Retry"
|
||||
msgstr "Opnieuw"
|
||||
|
||||
#. [konnect.scopeDescription.scope]
|
||||
#. defaultMessage is:
|
||||
#. Scope: {scope}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.scope"
|
||||
msgid "Scope: {scope}"
|
||||
msgstr "Scope: {scope}"
|
||||
#. From: konnect##scopeDescription##scope
|
||||
#: konnect##scopeDescription##scope
|
||||
msgid "Scope: {{scope}}"
|
||||
msgstr "Scope: {{scope}}"
|
||||
|
||||
#. [konnect.login.headline]
|
||||
#. defaultMessage is:
|
||||
#. Sign in
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.headline"
|
||||
#. From: konnect##login##headline
|
||||
#: konnect##login##headline
|
||||
msgid "Sign in"
|
||||
msgstr "Aanmelden"
|
||||
|
||||
#. [konnect.goodbye.signoutButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.signoutButton.label"
|
||||
#. From: konnect##goodbye##signoutButton##label
|
||||
#. konnect##welcome##signoutButton##label
|
||||
#: konnect##goodbye##signoutButton##label
|
||||
#: konnect##welcome##signoutButton##label
|
||||
msgid "Sign out"
|
||||
msgstr "Afmelden"
|
||||
|
||||
#. [konnect.welcome.signoutButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.signoutButton.label"
|
||||
msgid "Sign out"
|
||||
msgstr "Afmelden"
|
||||
#. From: konnect##error##http##unexpectedResponseStatus
|
||||
#: konnect##error##http##unexpectedResponseStatus
|
||||
msgid "Unexpected HTTP response: {{status}}. Please check your connection and try again."
|
||||
msgstr "Onverwachte HTTP respons: {{status}}. Controleer je verbinding en probeer opnieuw."
|
||||
|
||||
#. [konnect.error.http.unexpectedResponseStatus]
|
||||
#. defaultMessage is:
|
||||
#. Unexpected HTTP response: {status}. Please check your connection and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.http.unexpectedResponseStatus"
|
||||
msgid "Unexpected HTTP response: {status}. Please check your connection and try again."
|
||||
msgstr "Onverwachte HTTP respons: {status}. Controleer je verbinding en probeer opnieuw."
|
||||
#. From: konnect##error##http##unexpectedResponseState
|
||||
#: konnect##error##http##unexpectedResponseState
|
||||
msgid "Unexpected response state: {{state}}"
|
||||
msgstr "Onverwachte respons status: {{state}}"
|
||||
|
||||
#. [konnect.error.http.unexpectedResponseState]
|
||||
#. defaultMessage is:
|
||||
#. Unexpected response state: {state}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.http.unexpectedResponseState"
|
||||
msgid "Unexpected response state: {state}"
|
||||
msgstr "Onverwachte respons status: {state}"
|
||||
|
||||
#. [konnect.chooseaccount.useOther.label]
|
||||
#. defaultMessage is:
|
||||
#. Use another account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.useOther.label"
|
||||
#. From: konnect##chooseaccount##useOther##label
|
||||
#: konnect##chooseaccount##useOther##label
|
||||
msgid "Use another account"
|
||||
msgstr "Gebruik een ander account"
|
||||
|
||||
#. [konnect.login.usernameField.label]
|
||||
#. defaultMessage is:
|
||||
#. Username
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.usernameField.label"
|
||||
#. From: konnect##login##usernameField##placeholder##username
|
||||
#: konnect##login##usernameField##placeholder##username
|
||||
msgid "Username"
|
||||
msgstr "Gebruikersnaam"
|
||||
|
||||
#. [konnect.welcome.headline]
|
||||
#. defaultMessage is:
|
||||
#. Welcome {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.headline"
|
||||
msgid "Welcome {displayName}"
|
||||
msgstr "Welkom {displayName}"
|
||||
#. From: konnect##welcome##headline
|
||||
#: konnect##welcome##headline
|
||||
msgid "Welcome {{displayName}}"
|
||||
msgstr "Welkom {{displayName}}"
|
||||
|
||||
#. [konnect.welcome.message]
|
||||
#. defaultMessage is:
|
||||
#. You are signed in - awesome!
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.message"
|
||||
#. From: konnect##welcome##message
|
||||
#: konnect##welcome##message
|
||||
msgid "You are signed in - awesome!"
|
||||
msgstr "Je bent aangemeld - fantastisch!"
|
||||
|
||||
#. [konnect.goodbye.message.close]
|
||||
#. defaultMessage is:
|
||||
#. You can close this window now.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.message.close"
|
||||
#. From: konnect##goodbye##message##close
|
||||
#: konnect##goodbye##message##close
|
||||
msgid "You can close this window now."
|
||||
msgstr "Dit venster kan nu worden gesloten."
|
||||
|
||||
#. [konnect.goodbye.confirm.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. please confirm sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.confirm.subHeader"
|
||||
#. From: konnect##goodbye##confirm##subHeader
|
||||
#: konnect##goodbye##confirm##subHeader
|
||||
msgid "please confirm sign out"
|
||||
msgstr "bevestig afmelden"
|
||||
|
||||
#. [konnect.chooseaccount.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. to sign in to Kopano
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.subHeader"
|
||||
msgid "to sign in to Kopano"
|
||||
msgstr "om aan te melden bij Kopano"
|
||||
#. From: konnect##chooseaccount##subHeader
|
||||
#: konnect##chooseaccount##subHeader
|
||||
msgid "to sign in"
|
||||
msgstr "aanmelden"
|
||||
|
||||
#. [konnect.login.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. with your Kopano account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.subHeader"
|
||||
msgid "with your Kopano account"
|
||||
msgstr "met je Kopano account"
|
||||
#. From: konnect##goodbye##subHeader
|
||||
#: konnect##goodbye##subHeader
|
||||
msgid "you have been signed out from your account"
|
||||
msgstr "je bent afgemeld van je account"
|
||||
|
||||
#. [konnect.goodbye.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. you have been signed out from your Kopano account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.subHeader"
|
||||
msgid "you have been signed out from your Kopano account"
|
||||
msgstr "je bent afgemeld van je Kopano account"
|
||||
#~ msgctxt "konnect.consent.question"
|
||||
#~ msgid "Allow {clientDisplayName} to do this?"
|
||||
#~ msgstr "{clientDisplayName} toestaan dit te doen?"
|
||||
|
||||
#. [konnect.consent.message]
|
||||
#. defaultMessage is:
|
||||
#. {clientDisplayName} wants to
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.message"
|
||||
msgid "{clientDisplayName} wants to"
|
||||
msgstr "{clientDisplayName} wil"
|
||||
#~ msgctxt "konnect.error.login.validate.missingUsername"
|
||||
#~ msgid "Enter an username"
|
||||
#~ msgstr "Voer een gebruikersnaam in"
|
||||
|
||||
#~ msgctxt "konnect.welcome.signoutButton.label"
|
||||
#~ msgid "Sign out"
|
||||
#~ msgstr "Afmelden"
|
||||
|
||||
#~ msgctxt "konnect.chooseaccount.subHeader"
|
||||
#~ msgid "to sign in to Kopano"
|
||||
#~ msgstr "om aan te melden bij Kopano"
|
||||
|
||||
#~ msgctxt "konnect.login.subHeader"
|
||||
#~ msgid "with your Kopano account"
|
||||
#~ msgstr "met je Kopano account"
|
||||
|
||||
#~ msgctxt "konnect.consent.message"
|
||||
#~ msgid "{clientDisplayName} wants to"
|
||||
#~ msgstr "{clientDisplayName} wil"
|
||||
|
||||
@@ -1,308 +0,0 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"POT-Creation-Date: 2019-05-09T14:09:27.715Z\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"X-Generator: react-intl-po\n"
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"PO-Revision-Date: 2019-08-30 11:45+0200\n"
|
||||
"Last-Translator: root <root@podo.kopano.io>\n"
|
||||
"Language-Team: Language po\n"
|
||||
"Language: po\n"
|
||||
|
||||
#. [konnect.chooseaccount.useOther.persona.label]
|
||||
#. defaultMessage is:
|
||||
#. ?
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.useOther.persona.label"
|
||||
msgid "?"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.scopeDescription.aliasBasic]
|
||||
#. defaultMessage is:
|
||||
#. Access your basic account information
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.aliasBasic"
|
||||
msgid "Access your basic account information"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.allowButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Allow
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.allowButton.label"
|
||||
msgid "Allow"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.question]
|
||||
#. defaultMessage is:
|
||||
#. Allow {clientDisplayName} to do this?
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.question"
|
||||
msgid "Allow {clientDisplayName} to do this?"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.consequence]
|
||||
#. defaultMessage is:
|
||||
#. By clicking Allow, you allow this app to use your information.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.consequence"
|
||||
msgid "By clicking Allow, you allow this app to use your information."
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.cancelButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Cancel
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.cancelButton.label"
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.chooseaccount.headline]
|
||||
#. defaultMessage is:
|
||||
#. Choose an account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.headline"
|
||||
msgid "Choose an account"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.tooltip.client]
|
||||
#. defaultMessage is:
|
||||
#. Clicking "Allow" will redirect you to: {redirectURI}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.tooltip.client"
|
||||
msgid "Clicking \"Allow\" will redirect you to: {redirectURI}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.error.login.validate.missingPassword]
|
||||
#. defaultMessage is:
|
||||
#. Enter a password
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.validate.missingPassword"
|
||||
msgid "Enter a password"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.error.login.validate.missingUsername]
|
||||
#. defaultMessage is:
|
||||
#. Enter an username
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.validate.missingUsername"
|
||||
msgid "Enter an username"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.loading.error.headline]
|
||||
#. defaultMessage is:
|
||||
#. Failed to connect to server
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.loading.error.headline"
|
||||
msgid "Failed to connect to server"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.headline]
|
||||
#. defaultMessage is:
|
||||
#. Goodbye
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.headline"
|
||||
msgid "Goodbye"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.confirm.headline]
|
||||
#. defaultMessage is:
|
||||
#. Hello {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.confirm.headline"
|
||||
msgid "Hello {displayName}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.headline]
|
||||
#. defaultMessage is:
|
||||
#. Hi {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.headline"
|
||||
msgid "Hi {displayName}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.scopeDescription.offlineAccess]
|
||||
#. defaultMessage is:
|
||||
#. Keep the allowed access persistently and forever
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.offlineAccess"
|
||||
msgid "Keep the allowed access persistently and forever"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.error.login.failed]
|
||||
#. defaultMessage is:
|
||||
#. Logon failed. Please verify your credentials and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.failed"
|
||||
msgid "Logon failed. Please verify your credentials and try again."
|
||||
msgstr ""
|
||||
|
||||
#. [konnet.error.http.networkError]
|
||||
#. defaultMessage is:
|
||||
#. Network error. Please check your connection and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnet.error.http.networkError"
|
||||
msgid "Network error. Please check your connection and try again."
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.nextButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Next
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.nextButton.label"
|
||||
msgid "Next"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.passwordField.label]
|
||||
#. defaultMessage is:
|
||||
#. Password
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.passwordField.label"
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.message.confirm]
|
||||
#. defaultMessage is:
|
||||
#. Press the button below, to sign out from your Kopano account now.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.message.confirm"
|
||||
msgid "Press the button below, to sign out from your Kopano account now."
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.retryButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Retry
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.retryButton.label"
|
||||
msgid "Retry"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.scopeDescription.scope]
|
||||
#. defaultMessage is:
|
||||
#. Scope: {scope}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.scope"
|
||||
msgid "Scope: {scope}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.headline]
|
||||
#. defaultMessage is:
|
||||
#. Sign in
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.headline"
|
||||
msgid "Sign in"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.signoutButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.signoutButton.label"
|
||||
msgid "Sign out"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.welcome.signoutButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.signoutButton.label"
|
||||
msgid "Sign out"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.error.http.unexpectedResponseStatus]
|
||||
#. defaultMessage is:
|
||||
#. Unexpected HTTP response: {status}. Please check your connection and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.http.unexpectedResponseStatus"
|
||||
msgid "Unexpected HTTP response: {status}. Please check your connection and try again."
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.error.http.unexpectedResponseState]
|
||||
#. defaultMessage is:
|
||||
#. Unexpected response state: {state}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.http.unexpectedResponseState"
|
||||
msgid "Unexpected response state: {state}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.chooseaccount.useOther.label]
|
||||
#. defaultMessage is:
|
||||
#. Use another account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.useOther.label"
|
||||
msgid "Use another account"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.usernameField.label]
|
||||
#. defaultMessage is:
|
||||
#. Username
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.usernameField.label"
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.welcome.headline]
|
||||
#. defaultMessage is:
|
||||
#. Welcome {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.headline"
|
||||
msgid "Welcome {displayName}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.welcome.message]
|
||||
#. defaultMessage is:
|
||||
#. You are signed in - awesome!
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.message"
|
||||
msgid "You are signed in - awesome!"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.message.close]
|
||||
#. defaultMessage is:
|
||||
#. You can close this window now.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.message.close"
|
||||
msgid "You can close this window now."
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.confirm.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. please confirm sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.confirm.subHeader"
|
||||
msgid "please confirm sign out"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.chooseaccount.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. to sign in to Kopano
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.subHeader"
|
||||
msgid "to sign in to Kopano"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. with your Kopano account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.subHeader"
|
||||
msgid "with your Kopano account"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. you have been signed out from your Kopano account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.subHeader"
|
||||
msgid "you have been signed out from your Kopano account"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.message]
|
||||
#. defaultMessage is:
|
||||
#. {clientDisplayName} wants to
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.message"
|
||||
msgid "{clientDisplayName} wants to"
|
||||
msgstr ""
|
||||
@@ -1,309 +0,0 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: 2019-05-09T14:09:27.715Z\n"
|
||||
"PO-Revision-Date: 2019-05-31 09:39+0000\n"
|
||||
"Last-Translator: Nuno Jerónimo <nuno.jeronimo@valsousa.pt>\n"
|
||||
"Language-Team: Portuguese (Portugal) <http://translate.kopano.io/projects/kopano/konnect/pt_PT/>\n"
|
||||
"Language: pt_PT\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||
"X-Generator: Weblate 2.4\n"
|
||||
|
||||
#. [konnect.chooseaccount.useOther.persona.label]
|
||||
#. defaultMessage is:
|
||||
#. ?
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.useOther.persona.label"
|
||||
msgid "?"
|
||||
msgstr "?"
|
||||
|
||||
#. [konnect.scopeDescription.aliasBasic]
|
||||
#. defaultMessage is:
|
||||
#. Access your basic account information
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.aliasBasic"
|
||||
msgid "Access your basic account information"
|
||||
msgstr "Aceder à sua informação básica da conta"
|
||||
|
||||
#. [konnect.consent.allowButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Allow
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.allowButton.label"
|
||||
msgid "Allow"
|
||||
msgstr "Permitir"
|
||||
|
||||
#. [konnect.consent.question]
|
||||
#. defaultMessage is:
|
||||
#. Allow {clientDisplayName} to do this?
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.question"
|
||||
msgid "Allow {clientDisplayName} to do this?"
|
||||
msgstr "Permitir que {clientDisplayName} faça isto?"
|
||||
|
||||
#. [konnect.consent.consequence]
|
||||
#. defaultMessage is:
|
||||
#. By clicking Allow, you allow this app to use your information.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.consequence"
|
||||
msgid "By clicking Allow, you allow this app to use your information."
|
||||
msgstr "Ao carregar em Permitir, está a permitir que esta app use os seus dados."
|
||||
|
||||
#. [konnect.consent.cancelButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Cancel
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.cancelButton.label"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#. [konnect.chooseaccount.headline]
|
||||
#. defaultMessage is:
|
||||
#. Choose an account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.headline"
|
||||
msgid "Choose an account"
|
||||
msgstr "Escolher uma conta"
|
||||
|
||||
#. [konnect.consent.tooltip.client]
|
||||
#. defaultMessage is:
|
||||
#. Clicking "Allow" will redirect you to: {redirectURI}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.tooltip.client"
|
||||
msgid "Clicking \"Allow\" will redirect you to: {redirectURI}"
|
||||
msgstr "Ao carregar em \"Permitir\" será redirecionado para: {redirectURI}"
|
||||
|
||||
#. [konnect.error.login.validate.missingPassword]
|
||||
#. defaultMessage is:
|
||||
#. Enter a password
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.validate.missingPassword"
|
||||
msgid "Enter a password"
|
||||
msgstr "Insira uma palavra-passe"
|
||||
|
||||
#. [konnect.error.login.validate.missingUsername]
|
||||
#. defaultMessage is:
|
||||
#. Enter an username
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.validate.missingUsername"
|
||||
msgid "Enter an username"
|
||||
msgstr "Insira um utilizador"
|
||||
|
||||
#. [konnect.loading.error.headline]
|
||||
#. defaultMessage is:
|
||||
#. Failed to connect to server
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.loading.error.headline"
|
||||
msgid "Failed to connect to server"
|
||||
msgstr "Falhou a ligar ao servidor"
|
||||
|
||||
#. [konnect.goodbye.headline]
|
||||
#. defaultMessage is:
|
||||
#. Goodbye
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.headline"
|
||||
msgid "Goodbye"
|
||||
msgstr "Adeus"
|
||||
|
||||
#. [konnect.goodbye.confirm.headline]
|
||||
#. defaultMessage is:
|
||||
#. Hello {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.confirm.headline"
|
||||
msgid "Hello {displayName}"
|
||||
msgstr "Olá {displayName}"
|
||||
|
||||
#. [konnect.consent.headline]
|
||||
#. defaultMessage is:
|
||||
#. Hi {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.headline"
|
||||
msgid "Hi {displayName}"
|
||||
msgstr "Olá {displayName}"
|
||||
|
||||
#. [konnect.scopeDescription.offlineAccess]
|
||||
#. defaultMessage is:
|
||||
#. Keep the allowed access persistently and forever
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.offlineAccess"
|
||||
msgid "Keep the allowed access persistently and forever"
|
||||
msgstr "Manter o acesso permitido de forma persistente e para sempre"
|
||||
|
||||
#. [konnect.error.login.failed]
|
||||
#. defaultMessage is:
|
||||
#. Logon failed. Please verify your credentials and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.failed"
|
||||
msgid "Logon failed. Please verify your credentials and try again."
|
||||
msgstr "Falhou início de sessão. Por favor verifique as suas credenciais e tente novamente."
|
||||
|
||||
#. [konnet.error.http.networkError]
|
||||
#. defaultMessage is:
|
||||
#. Network error. Please check your connection and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnet.error.http.networkError"
|
||||
msgid "Network error. Please check your connection and try again."
|
||||
msgstr "Erro de rede. Por favor verifique as ligações e tente novamente."
|
||||
|
||||
#. [konnect.login.nextButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Next
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.nextButton.label"
|
||||
msgid "Next"
|
||||
msgstr "Seguinte"
|
||||
|
||||
#. [konnect.login.passwordField.label]
|
||||
#. defaultMessage is:
|
||||
#. Password
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.passwordField.label"
|
||||
msgid "Password"
|
||||
msgstr "Palavra-passe"
|
||||
|
||||
#. [konnect.goodbye.message.confirm]
|
||||
#. defaultMessage is:
|
||||
#. Press the button below, to sign out from your Kopano account now.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.message.confirm"
|
||||
msgid "Press the button below, to sign out from your Kopano account now."
|
||||
msgstr "Carregue no botão abaixo para terminar sessão na sua conta Kopano agora."
|
||||
|
||||
#. [konnect.login.retryButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Retry
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.retryButton.label"
|
||||
msgid "Retry"
|
||||
msgstr "Tentar novamente"
|
||||
|
||||
#. [konnect.scopeDescription.scope]
|
||||
#. defaultMessage is:
|
||||
#. Scope: {scope}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.scope"
|
||||
msgid "Scope: {scope}"
|
||||
msgstr "Contexto: {scope}"
|
||||
|
||||
#. [konnect.login.headline]
|
||||
#. defaultMessage is:
|
||||
#. Sign in
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.headline"
|
||||
msgid "Sign in"
|
||||
msgstr "Iniciar sessão"
|
||||
|
||||
#. [konnect.goodbye.signoutButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.signoutButton.label"
|
||||
msgid "Sign out"
|
||||
msgstr "Terminar sessão"
|
||||
|
||||
#. [konnect.welcome.signoutButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.signoutButton.label"
|
||||
msgid "Sign out"
|
||||
msgstr "Terminar sessão"
|
||||
|
||||
#. [konnect.error.http.unexpectedResponseStatus]
|
||||
#. defaultMessage is:
|
||||
#. Unexpected HTTP response: {status}. Please check your connection and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.http.unexpectedResponseStatus"
|
||||
msgid "Unexpected HTTP response: {status}. Please check your connection and try again."
|
||||
msgstr "Resposta HTTP inesperada: {status}. Por favor verifique a sua ligação e tente novamente."
|
||||
|
||||
#. [konnect.error.http.unexpectedResponseState]
|
||||
#. defaultMessage is:
|
||||
#. Unexpected response state: {state}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.http.unexpectedResponseState"
|
||||
msgid "Unexpected response state: {state}"
|
||||
msgstr "Resposta de estado inesperada: {state}"
|
||||
|
||||
#. [konnect.chooseaccount.useOther.label]
|
||||
#. defaultMessage is:
|
||||
#. Use another account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.useOther.label"
|
||||
msgid "Use another account"
|
||||
msgstr "Use outra conta"
|
||||
|
||||
#. [konnect.login.usernameField.label]
|
||||
#. defaultMessage is:
|
||||
#. Username
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.usernameField.label"
|
||||
msgid "Username"
|
||||
msgstr "Utilizador"
|
||||
|
||||
#. [konnect.welcome.headline]
|
||||
#. defaultMessage is:
|
||||
#. Welcome {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.headline"
|
||||
msgid "Welcome {displayName}"
|
||||
msgstr "Bem vindo {displayName}"
|
||||
|
||||
#. [konnect.welcome.message]
|
||||
#. defaultMessage is:
|
||||
#. You are signed in - awesome!
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.message"
|
||||
msgid "You are signed in - awesome!"
|
||||
msgstr "Iniciou sessão - fantástico!"
|
||||
|
||||
#. [konnect.goodbye.message.close]
|
||||
#. defaultMessage is:
|
||||
#. You can close this window now.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.message.close"
|
||||
msgid "You can close this window now."
|
||||
msgstr "Pode fechar esta janela agora."
|
||||
|
||||
#. [konnect.goodbye.confirm.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. please confirm sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.confirm.subHeader"
|
||||
msgid "please confirm sign out"
|
||||
msgstr "por favor confirme o fim de sessão"
|
||||
|
||||
#. [konnect.chooseaccount.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. to sign in to Kopano
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.subHeader"
|
||||
msgid "to sign in to Kopano"
|
||||
msgstr "para iniciar sessão no Kopano"
|
||||
|
||||
#. [konnect.login.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. with your Kopano account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.subHeader"
|
||||
msgid "with your Kopano account"
|
||||
msgstr "com a sua conta Kopano"
|
||||
|
||||
#. [konnect.goodbye.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. you have been signed out from your Kopano account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.subHeader"
|
||||
msgid "you have been signed out from your Kopano account"
|
||||
msgstr "a sessão da sua conta Kopano foi terminada"
|
||||
|
||||
#. [konnect.consent.message]
|
||||
#. defaultMessage is:
|
||||
#. {clientDisplayName} wants to
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.message"
|
||||
msgid "{clientDisplayName} wants to"
|
||||
msgstr "{clientDisplayName} quer"
|
||||
@@ -1,309 +0,0 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: 2019-05-09T14:09:27.715Z\n"
|
||||
"PO-Revision-Date: 2019-08-27 08:46+0000\n"
|
||||
"Last-Translator: Sotneo <kerovsot@gmail.com>\n"
|
||||
"Language-Team: Russian <http://translate.kopano.io/projects/kopano/konnect/ru/>\n"
|
||||
"Language: ru\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||
"X-Generator: Weblate 2.4\n"
|
||||
|
||||
#. [konnect.chooseaccount.useOther.persona.label]
|
||||
#. defaultMessage is:
|
||||
#. ?
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.useOther.persona.label"
|
||||
msgid "?"
|
||||
msgstr "?"
|
||||
|
||||
#. [konnect.scopeDescription.aliasBasic]
|
||||
#. defaultMessage is:
|
||||
#. Access your basic account information
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.aliasBasic"
|
||||
msgid "Access your basic account information"
|
||||
msgstr "Доступ к вашей основной учетной записи"
|
||||
|
||||
#. [konnect.consent.allowButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Allow
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.allowButton.label"
|
||||
msgid "Allow"
|
||||
msgstr "Разрешить"
|
||||
|
||||
#. [konnect.consent.question]
|
||||
#. defaultMessage is:
|
||||
#. Allow {clientDisplayName} to do this?
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.question"
|
||||
msgid "Allow {clientDisplayName} to do this?"
|
||||
msgstr "Разрешить {clientDisplayName} сделать это?"
|
||||
|
||||
#. [konnect.consent.consequence]
|
||||
#. defaultMessage is:
|
||||
#. By clicking Allow, you allow this app to use your information.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.consequence"
|
||||
msgid "By clicking Allow, you allow this app to use your information."
|
||||
msgstr "Нажимая Разрешить, ты даёте разрешение этому приложению использовать вашу информацию."
|
||||
|
||||
#. [konnect.consent.cancelButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Cancel
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.cancelButton.label"
|
||||
msgid "Cancel"
|
||||
msgstr "Отмена"
|
||||
|
||||
#. [konnect.chooseaccount.headline]
|
||||
#. defaultMessage is:
|
||||
#. Choose an account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.headline"
|
||||
msgid "Choose an account"
|
||||
msgstr "Выберите учётную запись"
|
||||
|
||||
#. [konnect.consent.tooltip.client]
|
||||
#. defaultMessage is:
|
||||
#. Clicking "Allow" will redirect you to: {redirectURI}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.tooltip.client"
|
||||
msgid "Clicking \"Allow\" will redirect you to: {redirectURI}"
|
||||
msgstr "После нажатия \"Разрешить\" вы будете перенаправлена на: {redirectURI}"
|
||||
|
||||
#. [konnect.error.login.validate.missingPassword]
|
||||
#. defaultMessage is:
|
||||
#. Enter a password
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.validate.missingPassword"
|
||||
msgid "Enter a password"
|
||||
msgstr "Введите пароль"
|
||||
|
||||
#. [konnect.error.login.validate.missingUsername]
|
||||
#. defaultMessage is:
|
||||
#. Enter an username
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.validate.missingUsername"
|
||||
msgid "Enter an username"
|
||||
msgstr "Введите имя пользователя"
|
||||
|
||||
#. [konnect.loading.error.headline]
|
||||
#. defaultMessage is:
|
||||
#. Failed to connect to server
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.loading.error.headline"
|
||||
msgid "Failed to connect to server"
|
||||
msgstr "Не удалось подключиться к серверу"
|
||||
|
||||
#. [konnect.goodbye.headline]
|
||||
#. defaultMessage is:
|
||||
#. Goodbye
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.headline"
|
||||
msgid "Goodbye"
|
||||
msgstr "До свидания"
|
||||
|
||||
#. [konnect.goodbye.confirm.headline]
|
||||
#. defaultMessage is:
|
||||
#. Hello {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.confirm.headline"
|
||||
msgid "Hello {displayName}"
|
||||
msgstr "Здравствуйте, {displayName}"
|
||||
|
||||
#. [konnect.consent.headline]
|
||||
#. defaultMessage is:
|
||||
#. Hi {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.headline"
|
||||
msgid "Hi {displayName}"
|
||||
msgstr "Привет, {displayName}"
|
||||
|
||||
#. [konnect.scopeDescription.offlineAccess]
|
||||
#. defaultMessage is:
|
||||
#. Keep the allowed access persistently and forever
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.offlineAccess"
|
||||
msgid "Keep the allowed access persistently and forever"
|
||||
msgstr "Сохраните разрешение на доступ как постоянное"
|
||||
|
||||
#. [konnect.error.login.failed]
|
||||
#. defaultMessage is:
|
||||
#. Logon failed. Please verify your credentials and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.failed"
|
||||
msgid "Logon failed. Please verify your credentials and try again."
|
||||
msgstr "Не удалось войти. Пожалуйста, проверьте ваши учетные данные и попробуйте снова."
|
||||
|
||||
#. [konnet.error.http.networkError]
|
||||
#. defaultMessage is:
|
||||
#. Network error. Please check your connection and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnet.error.http.networkError"
|
||||
msgid "Network error. Please check your connection and try again."
|
||||
msgstr "Сетевая ошибка. Пожалуйста, проверьте ваше соединение и попробуйте снова."
|
||||
|
||||
#. [konnect.login.nextButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Next
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.nextButton.label"
|
||||
msgid "Next"
|
||||
msgstr "Далее"
|
||||
|
||||
#. [konnect.login.passwordField.label]
|
||||
#. defaultMessage is:
|
||||
#. Password
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.passwordField.label"
|
||||
msgid "Password"
|
||||
msgstr "Пароль"
|
||||
|
||||
#. [konnect.goodbye.message.confirm]
|
||||
#. defaultMessage is:
|
||||
#. Press the button below, to sign out from your Kopano account now.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.message.confirm"
|
||||
msgid "Press the button below, to sign out from your Kopano account now."
|
||||
msgstr "Нажмите кнопку ниже, чтобы выйти из вашей учетной записи Kopano."
|
||||
|
||||
#. [konnect.login.retryButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Retry
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.retryButton.label"
|
||||
msgid "Retry"
|
||||
msgstr "Повторить"
|
||||
|
||||
#. [konnect.scopeDescription.scope]
|
||||
#. defaultMessage is:
|
||||
#. Scope: {scope}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.scope"
|
||||
msgid "Scope: {scope}"
|
||||
msgstr "Охват: {scope}"
|
||||
|
||||
#. [konnect.login.headline]
|
||||
#. defaultMessage is:
|
||||
#. Sign in
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.headline"
|
||||
msgid "Sign in"
|
||||
msgstr "Вход"
|
||||
|
||||
#. [konnect.goodbye.signoutButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.signoutButton.label"
|
||||
msgid "Sign out"
|
||||
msgstr "Выход"
|
||||
|
||||
#. [konnect.welcome.signoutButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.signoutButton.label"
|
||||
msgid "Sign out"
|
||||
msgstr "Выход"
|
||||
|
||||
#. [konnect.error.http.unexpectedResponseStatus]
|
||||
#. defaultMessage is:
|
||||
#. Unexpected HTTP response: {status}. Please check your connection and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.http.unexpectedResponseStatus"
|
||||
msgid "Unexpected HTTP response: {status}. Please check your connection and try again."
|
||||
msgstr "Неожиданный ответ HTTP: {status}. Проверьте подключение и повторите попытку."
|
||||
|
||||
#. [konnect.error.http.unexpectedResponseState]
|
||||
#. defaultMessage is:
|
||||
#. Unexpected response state: {state}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.http.unexpectedResponseState"
|
||||
msgid "Unexpected response state: {state}"
|
||||
msgstr "Неожиданный ответ: {state}"
|
||||
|
||||
#. [konnect.chooseaccount.useOther.label]
|
||||
#. defaultMessage is:
|
||||
#. Use another account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.useOther.label"
|
||||
msgid "Use another account"
|
||||
msgstr "Другой пользователь"
|
||||
|
||||
#. [konnect.login.usernameField.label]
|
||||
#. defaultMessage is:
|
||||
#. Username
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.usernameField.label"
|
||||
msgid "Username"
|
||||
msgstr "Имя пользователя"
|
||||
|
||||
#. [konnect.welcome.headline]
|
||||
#. defaultMessage is:
|
||||
#. Welcome {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.headline"
|
||||
msgid "Welcome {displayName}"
|
||||
msgstr "Добро пожаловать, {displayName}"
|
||||
|
||||
#. [konnect.welcome.message]
|
||||
#. defaultMessage is:
|
||||
#. You are signed in - awesome!
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.message"
|
||||
msgid "You are signed in - awesome!"
|
||||
msgstr "Вы вошли - круто!"
|
||||
|
||||
#. [konnect.goodbye.message.close]
|
||||
#. defaultMessage is:
|
||||
#. You can close this window now.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.message.close"
|
||||
msgid "You can close this window now."
|
||||
msgstr "Теперь вы можете закрыть окно."
|
||||
|
||||
#. [konnect.goodbye.confirm.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. please confirm sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.confirm.subHeader"
|
||||
msgid "please confirm sign out"
|
||||
msgstr "пожалуйста, подтвердите выход"
|
||||
|
||||
#. [konnect.chooseaccount.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. to sign in to Kopano
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.subHeader"
|
||||
msgid "to sign in to Kopano"
|
||||
msgstr "для входа в Kopano"
|
||||
|
||||
#. [konnect.login.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. with your Kopano account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.subHeader"
|
||||
msgid "with your Kopano account"
|
||||
msgstr "с вашей учётной записью Kopano"
|
||||
|
||||
#. [konnect.goodbye.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. you have been signed out from your Kopano account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.subHeader"
|
||||
msgid "you have been signed out from your Kopano account"
|
||||
msgstr "вы вышли из вашей учетной записи Kopano"
|
||||
|
||||
#. [konnect.consent.message]
|
||||
#. defaultMessage is:
|
||||
#. {clientDisplayName} wants to
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.message"
|
||||
msgid "{clientDisplayName} wants to"
|
||||
msgstr "{clientDisplayName} хочет"
|
||||
@@ -1,310 +0,0 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"POT-Creation-Date: 2019-05-09T14:09:27.715Z\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"X-Generator: react-intl-po\n"
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"PO-Revision-Date: 2019-08-30 11:46+0200\n"
|
||||
"Last-Translator: root <root@transdoc.kopano.io>\n"
|
||||
"Language-Team: Slovenian\n"
|
||||
"Language: sl\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n"
|
||||
"%100==4 ? 2 : 3);\n"
|
||||
|
||||
#. [konnect.chooseaccount.useOther.persona.label]
|
||||
#. defaultMessage is:
|
||||
#. ?
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.useOther.persona.label"
|
||||
msgid "?"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.scopeDescription.aliasBasic]
|
||||
#. defaultMessage is:
|
||||
#. Access your basic account information
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.aliasBasic"
|
||||
msgid "Access your basic account information"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.allowButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Allow
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.allowButton.label"
|
||||
msgid "Allow"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.question]
|
||||
#. defaultMessage is:
|
||||
#. Allow {clientDisplayName} to do this?
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.question"
|
||||
msgid "Allow {clientDisplayName} to do this?"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.consequence]
|
||||
#. defaultMessage is:
|
||||
#. By clicking Allow, you allow this app to use your information.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.consequence"
|
||||
msgid "By clicking Allow, you allow this app to use your information."
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.cancelButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Cancel
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.cancelButton.label"
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.chooseaccount.headline]
|
||||
#. defaultMessage is:
|
||||
#. Choose an account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.headline"
|
||||
msgid "Choose an account"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.tooltip.client]
|
||||
#. defaultMessage is:
|
||||
#. Clicking "Allow" will redirect you to: {redirectURI}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.tooltip.client"
|
||||
msgid "Clicking \"Allow\" will redirect you to: {redirectURI}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.error.login.validate.missingPassword]
|
||||
#. defaultMessage is:
|
||||
#. Enter a password
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.validate.missingPassword"
|
||||
msgid "Enter a password"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.error.login.validate.missingUsername]
|
||||
#. defaultMessage is:
|
||||
#. Enter an username
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.validate.missingUsername"
|
||||
msgid "Enter an username"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.loading.error.headline]
|
||||
#. defaultMessage is:
|
||||
#. Failed to connect to server
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.loading.error.headline"
|
||||
msgid "Failed to connect to server"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.headline]
|
||||
#. defaultMessage is:
|
||||
#. Goodbye
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.headline"
|
||||
msgid "Goodbye"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.confirm.headline]
|
||||
#. defaultMessage is:
|
||||
#. Hello {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.confirm.headline"
|
||||
msgid "Hello {displayName}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.headline]
|
||||
#. defaultMessage is:
|
||||
#. Hi {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.headline"
|
||||
msgid "Hi {displayName}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.scopeDescription.offlineAccess]
|
||||
#. defaultMessage is:
|
||||
#. Keep the allowed access persistently and forever
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.offlineAccess"
|
||||
msgid "Keep the allowed access persistently and forever"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.error.login.failed]
|
||||
#. defaultMessage is:
|
||||
#. Logon failed. Please verify your credentials and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.login.failed"
|
||||
msgid "Logon failed. Please verify your credentials and try again."
|
||||
msgstr ""
|
||||
|
||||
#. [konnet.error.http.networkError]
|
||||
#. defaultMessage is:
|
||||
#. Network error. Please check your connection and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnet.error.http.networkError"
|
||||
msgid "Network error. Please check your connection and try again."
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.nextButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Next
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.nextButton.label"
|
||||
msgid "Next"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.passwordField.label]
|
||||
#. defaultMessage is:
|
||||
#. Password
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.passwordField.label"
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.message.confirm]
|
||||
#. defaultMessage is:
|
||||
#. Press the button below, to sign out from your Kopano account now.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.message.confirm"
|
||||
msgid "Press the button below, to sign out from your Kopano account now."
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.retryButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Retry
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.retryButton.label"
|
||||
msgid "Retry"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.scopeDescription.scope]
|
||||
#. defaultMessage is:
|
||||
#. Scope: {scope}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.scopeDescription.scope"
|
||||
msgid "Scope: {scope}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.headline]
|
||||
#. defaultMessage is:
|
||||
#. Sign in
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.headline"
|
||||
msgid "Sign in"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.signoutButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.signoutButton.label"
|
||||
msgid "Sign out"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.welcome.signoutButton.label]
|
||||
#. defaultMessage is:
|
||||
#. Sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.signoutButton.label"
|
||||
msgid "Sign out"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.error.http.unexpectedResponseStatus]
|
||||
#. defaultMessage is:
|
||||
#. Unexpected HTTP response: {status}. Please check your connection and try again.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.http.unexpectedResponseStatus"
|
||||
msgid "Unexpected HTTP response: {status}. Please check your connection and try again."
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.error.http.unexpectedResponseState]
|
||||
#. defaultMessage is:
|
||||
#. Unexpected response state: {state}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.error.http.unexpectedResponseState"
|
||||
msgid "Unexpected response state: {state}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.chooseaccount.useOther.label]
|
||||
#. defaultMessage is:
|
||||
#. Use another account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.useOther.label"
|
||||
msgid "Use another account"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.usernameField.label]
|
||||
#. defaultMessage is:
|
||||
#. Username
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.usernameField.label"
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.welcome.headline]
|
||||
#. defaultMessage is:
|
||||
#. Welcome {displayName}
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.headline"
|
||||
msgid "Welcome {displayName}"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.welcome.message]
|
||||
#. defaultMessage is:
|
||||
#. You are signed in - awesome!
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.welcome.message"
|
||||
msgid "You are signed in - awesome!"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.message.close]
|
||||
#. defaultMessage is:
|
||||
#. You can close this window now.
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.message.close"
|
||||
msgid "You can close this window now."
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.confirm.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. please confirm sign out
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.confirm.subHeader"
|
||||
msgid "please confirm sign out"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.chooseaccount.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. to sign in to Kopano
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.chooseaccount.subHeader"
|
||||
msgid "to sign in to Kopano"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.login.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. with your Kopano account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.login.subHeader"
|
||||
msgid "with your Kopano account"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.goodbye.subHeader]
|
||||
#. defaultMessage is:
|
||||
#. you have been signed out from your Kopano account
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.goodbye.subHeader"
|
||||
msgid "you have been signed out from your Kopano account"
|
||||
msgstr ""
|
||||
|
||||
#. [konnect.consent.message]
|
||||
#. defaultMessage is:
|
||||
#. {clientDisplayName} wants to
|
||||
#: i18n/src/messages.json
|
||||
msgctxt "konnect.consent.message"
|
||||
msgid "{clientDisplayName} wants to"
|
||||
msgstr ""
|
||||
@@ -1,187 +0,0 @@
|
||||
[
|
||||
{
|
||||
"id": "konnect.loading.error.headline",
|
||||
"defaultMessage": "Failed to connect to server",
|
||||
"filepath": "./src/components/Loading.js"
|
||||
},
|
||||
{
|
||||
"id": "konnect.login.retryButton.label",
|
||||
"defaultMessage": "Retry",
|
||||
"filepath": "./src/components/Loading.js"
|
||||
},
|
||||
{
|
||||
"id": "konnect.scopeDescription.aliasBasic",
|
||||
"defaultMessage": "Access your basic account information",
|
||||
"filepath": "./src/components/ScopesList.js"
|
||||
},
|
||||
{
|
||||
"id": "konnect.scopeDescription.offlineAccess",
|
||||
"defaultMessage": "Keep the allowed access persistently and forever",
|
||||
"filepath": "./src/components/ScopesList.js"
|
||||
},
|
||||
{
|
||||
"id": "konnect.scopeDescription.scope",
|
||||
"defaultMessage": "Scope: {scope}",
|
||||
"filepath": "./src/components/ScopesList.js"
|
||||
},
|
||||
{
|
||||
"id": "konnect.goodbye.headline",
|
||||
"defaultMessage": "Goodbye",
|
||||
"filepath": "./src/containers/Goodbye/Goodbyescreen.js"
|
||||
},
|
||||
{
|
||||
"id": "konnect.goodbye.subHeader",
|
||||
"defaultMessage": "you have been signed out from your Kopano account",
|
||||
"filepath": "./src/containers/Goodbye/Goodbyescreen.js"
|
||||
},
|
||||
{
|
||||
"id": "konnect.goodbye.message.close",
|
||||
"defaultMessage": "You can close this window now.",
|
||||
"filepath": "./src/containers/Goodbye/Goodbyescreen.js"
|
||||
},
|
||||
{
|
||||
"id": "konnect.goodbye.confirm.headline",
|
||||
"defaultMessage": "Hello {displayName}",
|
||||
"filepath": "./src/containers/Goodbye/Goodbyescreen.js"
|
||||
},
|
||||
{
|
||||
"id": "konnect.goodbye.confirm.subHeader",
|
||||
"defaultMessage": "please confirm sign out",
|
||||
"filepath": "./src/containers/Goodbye/Goodbyescreen.js"
|
||||
},
|
||||
{
|
||||
"id": "konnect.goodbye.message.confirm",
|
||||
"defaultMessage": "Press the button below, to sign out from your Kopano account now.",
|
||||
"filepath": "./src/containers/Goodbye/Goodbyescreen.js"
|
||||
},
|
||||
{
|
||||
"id": "konnect.goodbye.signoutButton.label",
|
||||
"defaultMessage": "Sign out",
|
||||
"filepath": "./src/containers/Goodbye/Goodbyescreen.js"
|
||||
},
|
||||
{
|
||||
"id": "konnect.chooseaccount.headline",
|
||||
"defaultMessage": "Choose an account",
|
||||
"filepath": "./src/containers/Login/Chooseaccount.js"
|
||||
},
|
||||
{
|
||||
"id": "konnect.chooseaccount.subHeader",
|
||||
"defaultMessage": "to sign in to Kopano",
|
||||
"filepath": "./src/containers/Login/Chooseaccount.js"
|
||||
},
|
||||
{
|
||||
"id": "konnect.chooseaccount.useOther.persona.label",
|
||||
"defaultMessage": "?",
|
||||
"filepath": "./src/containers/Login/Chooseaccount.js"
|
||||
},
|
||||
{
|
||||
"id": "konnect.chooseaccount.useOther.label",
|
||||
"defaultMessage": "Use another account",
|
||||
"filepath": "./src/containers/Login/Chooseaccount.js"
|
||||
},
|
||||
{
|
||||
"id": "konnect.consent.headline",
|
||||
"defaultMessage": "Hi {displayName}",
|
||||
"filepath": "./src/containers/Login/Consent.js"
|
||||
},
|
||||
{
|
||||
"id": "konnect.consent.message",
|
||||
"defaultMessage": "{clientDisplayName} wants to",
|
||||
"filepath": "./src/containers/Login/Consent.js"
|
||||
},
|
||||
{
|
||||
"id": "konnect.consent.tooltip.client",
|
||||
"defaultMessage": "Clicking \"Allow\" will redirect you to: {redirectURI}",
|
||||
"filepath": "./src/containers/Login/Consent.js"
|
||||
},
|
||||
{
|
||||
"id": "konnect.consent.question",
|
||||
"defaultMessage": "Allow {clientDisplayName} to do this?",
|
||||
"filepath": "./src/containers/Login/Consent.js"
|
||||
},
|
||||
{
|
||||
"id": "konnect.consent.consequence",
|
||||
"defaultMessage": "By clicking Allow, you allow this app to use your information.",
|
||||
"filepath": "./src/containers/Login/Consent.js"
|
||||
},
|
||||
{
|
||||
"id": "konnect.consent.cancelButton.label",
|
||||
"defaultMessage": "Cancel",
|
||||
"filepath": "./src/containers/Login/Consent.js"
|
||||
},
|
||||
{
|
||||
"id": "konnect.consent.allowButton.label",
|
||||
"defaultMessage": "Allow",
|
||||
"filepath": "./src/containers/Login/Consent.js"
|
||||
},
|
||||
{
|
||||
"id": "konnect.login.headline",
|
||||
"defaultMessage": "Sign in",
|
||||
"filepath": "./src/containers/Login/Login.js"
|
||||
},
|
||||
{
|
||||
"id": "konnect.login.subHeader",
|
||||
"defaultMessage": "with your Kopano account",
|
||||
"filepath": "./src/containers/Login/Login.js"
|
||||
},
|
||||
{
|
||||
"id": "konnect.login.usernameField.label",
|
||||
"defaultMessage": "Username",
|
||||
"filepath": "./src/containers/Login/Login.js"
|
||||
},
|
||||
{
|
||||
"id": "konnect.login.passwordField.label",
|
||||
"defaultMessage": "Password",
|
||||
"filepath": "./src/containers/Login/Login.js"
|
||||
},
|
||||
{
|
||||
"id": "konnect.login.nextButton.label",
|
||||
"defaultMessage": "Next",
|
||||
"filepath": "./src/containers/Login/Login.js"
|
||||
},
|
||||
{
|
||||
"id": "konnect.welcome.headline",
|
||||
"defaultMessage": "Welcome {displayName}",
|
||||
"filepath": "./src/containers/Welcome/Welcomescreen.js"
|
||||
},
|
||||
{
|
||||
"id": "konnect.welcome.message",
|
||||
"defaultMessage": "You are signed in - awesome!",
|
||||
"filepath": "./src/containers/Welcome/Welcomescreen.js"
|
||||
},
|
||||
{
|
||||
"id": "konnect.welcome.signoutButton.label",
|
||||
"defaultMessage": "Sign out",
|
||||
"filepath": "./src/containers/Welcome/Welcomescreen.js"
|
||||
},
|
||||
{
|
||||
"id": "konnect.error.login.validate.missingUsername",
|
||||
"defaultMessage": "Enter an username",
|
||||
"filepath": "./src/errors/index.js"
|
||||
},
|
||||
{
|
||||
"id": "konnect.error.login.validate.missingPassword",
|
||||
"defaultMessage": "Enter a password",
|
||||
"filepath": "./src/errors/index.js"
|
||||
},
|
||||
{
|
||||
"id": "konnect.error.login.failed",
|
||||
"defaultMessage": "Logon failed. Please verify your credentials and try again.",
|
||||
"filepath": "./src/errors/index.js"
|
||||
},
|
||||
{
|
||||
"id": "konnet.error.http.networkError",
|
||||
"defaultMessage": "Network error. Please check your connection and try again.",
|
||||
"filepath": "./src/errors/index.js"
|
||||
},
|
||||
{
|
||||
"id": "konnect.error.http.unexpectedResponseStatus",
|
||||
"defaultMessage": "Unexpected HTTP response: {status}. Please check your connection and try again.",
|
||||
"filepath": "./src/errors/index.js"
|
||||
},
|
||||
{
|
||||
"id": "konnect.error.http.unexpectedResponseState",
|
||||
"defaultMessage": "Unexpected response state: {state}",
|
||||
"filepath": "./src/errors/index.js"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,194 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: LibreGraph Connect Identifier\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"POT-Creation-Date: 2022-03-09T19:33:04.641Z\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
||||
#. From: konnect##loading##error##headline
|
||||
#: konnect##loading##error##headline
|
||||
msgid "Failed to connect to server"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##login##retryButton##label
|
||||
#: konnect##login##retryButton##label
|
||||
msgid "Retry"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##login##usernameField##placeholder##email
|
||||
#: konnect##login##usernameField##placeholder##email
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##login##usernameField##placeholder##identity
|
||||
#: konnect##login##usernameField##placeholder##identity
|
||||
msgid "Identity"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##login##usernameField##placeholder##username
|
||||
#: konnect##login##usernameField##placeholder##username
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##login##headline
|
||||
#: konnect##login##headline
|
||||
msgid "Sign in"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##login##passwordField##label
|
||||
#: konnect##login##passwordField##label
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##login##nextButton##label
|
||||
#: konnect##login##nextButton##label
|
||||
msgid "Next"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##scopeDescription##aliasBasic
|
||||
#: konnect##scopeDescription##aliasBasic
|
||||
msgid "Access your basic account information"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##scopeDescription##offlineAccess
|
||||
#: konnect##scopeDescription##offlineAccess
|
||||
msgid "Keep the allowed access persistently and forever"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##scopeDescription##scope
|
||||
#: konnect##scopeDescription##scope
|
||||
msgid "Scope: {{scope}}"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##goodbye##headline
|
||||
#: konnect##goodbye##headline
|
||||
msgid "Goodbye"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##goodbye##subHeader
|
||||
#: konnect##goodbye##subHeader
|
||||
msgid "you have been signed out from your account"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##goodbye##message##close
|
||||
#: konnect##goodbye##message##close
|
||||
msgid "You can close this window now."
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##goodbye##message##confirm
|
||||
#: konnect##goodbye##message##confirm
|
||||
msgid "Press the button below, to sign out from your account now."
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##goodbye##confirm##headline
|
||||
#: konnect##goodbye##confirm##headline
|
||||
msgid "Hello {{displayName}}"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##goodbye##confirm##subHeader
|
||||
#: konnect##goodbye##confirm##subHeader
|
||||
msgid "please confirm sign out"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##goodbye##signoutButton##label
|
||||
#. konnect##welcome##signoutButton##label
|
||||
#: konnect##goodbye##signoutButton##label
|
||||
#: konnect##welcome##signoutButton##label
|
||||
msgid "Sign out"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##chooseaccount##headline
|
||||
#: konnect##chooseaccount##headline
|
||||
msgid "Choose an account"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##chooseaccount##subHeader
|
||||
#: konnect##chooseaccount##subHeader
|
||||
msgid "to sign in"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##chooseaccount##useOther##persona##label
|
||||
#: konnect##chooseaccount##useOther##persona##label
|
||||
msgid "?"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##chooseaccount##useOther##label
|
||||
#: konnect##chooseaccount##useOther##label
|
||||
msgid "Use another account"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##consent##headline
|
||||
#: konnect##consent##headline
|
||||
msgid "Hi {{displayName}}"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##consent##message
|
||||
#: konnect##consent##message
|
||||
msgid "<0><0><0></0></0></0> wants to"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##consent##tooltip##client
|
||||
#: konnect##consent##tooltip##client
|
||||
msgid "Clicking \"Allow\" will redirect you to: {{redirectURI}}"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##consent##question
|
||||
#: konnect##consent##question
|
||||
msgid "Allow <1><0></0></1> to do this?"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##consent##consequence
|
||||
#: konnect##consent##consequence
|
||||
msgid "By clicking Allow, you allow this app to use your information."
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##consent##cancelButton##label
|
||||
#: konnect##consent##cancelButton##label
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##consent##allowButton##label
|
||||
#: konnect##consent##allowButton##label
|
||||
msgid "Allow"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##welcome##headline
|
||||
#: konnect##welcome##headline
|
||||
msgid "Welcome {{displayName}}"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##welcome##message
|
||||
#: konnect##welcome##message
|
||||
msgid "You are signed in - awesome!"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##error##login##validate##missingUsername
|
||||
#: konnect##error##login##validate##missingUsername
|
||||
msgid "Enter a valid value."
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##error##login##validate##missingPassword
|
||||
#: konnect##error##login##validate##missingPassword
|
||||
msgid "Enter your password."
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##error##login##failed
|
||||
#: konnect##error##login##failed
|
||||
msgid "Logon failed. Please verify your credentials and try again."
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##error##http##networkError
|
||||
#: konnect##error##http##networkError
|
||||
msgid "Network error. Please check your connection and try again."
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##error##http##unexpectedResponseStatus
|
||||
#: konnect##error##http##unexpectedResponseStatus
|
||||
msgid "Unexpected HTTP response: {{status}}. Please check your connection and try again."
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##error##http##unexpectedResponseState
|
||||
#: konnect##error##http##unexpectedResponseState
|
||||
msgid "Unexpected response state: {{state}}"
|
||||
msgstr ""
|
||||
@@ -0,0 +1,198 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: LibreGraph Connect Identifier\n"
|
||||
"POT-Creation-Date: 2022-03-09T19:33:04.641Z\n"
|
||||
"PO-Revision-Date: 2022-03-09T10:29:32.094Z\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
"Language: zh-CN\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. From: konnect##consent##message
|
||||
#: konnect##consent##message
|
||||
msgid "<0><0><0></0></0></0> wants to"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##chooseaccount##useOther##persona##label
|
||||
#: konnect##chooseaccount##useOther##persona##label
|
||||
msgid "?"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##scopeDescription##aliasBasic
|
||||
#: konnect##scopeDescription##aliasBasic
|
||||
msgid "Access your basic account information"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##consent##allowButton##label
|
||||
#: konnect##consent##allowButton##label
|
||||
msgid "Allow"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##consent##question
|
||||
#: konnect##consent##question
|
||||
msgid "Allow <1><0></0></1> to do this?"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##consent##consequence
|
||||
#: konnect##consent##consequence
|
||||
msgid "By clicking Allow, you allow this app to use your information."
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##consent##cancelButton##label
|
||||
#: konnect##consent##cancelButton##label
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##chooseaccount##headline
|
||||
#: konnect##chooseaccount##headline
|
||||
msgid "Choose an account"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##consent##tooltip##client
|
||||
#: konnect##consent##tooltip##client
|
||||
msgid "Clicking \"Allow\" will redirect you to: {{redirectURI}}"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##login##usernameField##placeholder##email
|
||||
#: konnect##login##usernameField##placeholder##email
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##error##login##validate##missingUsername
|
||||
#: konnect##error##login##validate##missingUsername
|
||||
msgid "Enter a valid value."
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##error##login##validate##missingPassword
|
||||
#: konnect##error##login##validate##missingPassword
|
||||
msgid "Enter your password."
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##loading##error##headline
|
||||
#: konnect##loading##error##headline
|
||||
msgid "Failed to connect to server"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##goodbye##headline
|
||||
#: konnect##goodbye##headline
|
||||
msgid "Goodbye"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##goodbye##confirm##headline
|
||||
#: konnect##goodbye##confirm##headline
|
||||
msgid "Hello {{displayName}}"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##consent##headline
|
||||
#: konnect##consent##headline
|
||||
msgid "Hi {{displayName}}"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##login##usernameField##placeholder##identity
|
||||
#: konnect##login##usernameField##placeholder##identity
|
||||
msgid "Identity"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##scopeDescription##offlineAccess
|
||||
#: konnect##scopeDescription##offlineAccess
|
||||
msgid "Keep the allowed access persistently and forever"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##error##login##failed
|
||||
#: konnect##error##login##failed
|
||||
msgid "Logon failed. Please verify your credentials and try again."
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##error##http##networkError
|
||||
#: konnect##error##http##networkError
|
||||
msgid "Network error. Please check your connection and try again."
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##login##nextButton##label
|
||||
#: konnect##login##nextButton##label
|
||||
msgid "Next"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##login##passwordField##label
|
||||
#: konnect##login##passwordField##label
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##goodbye##message##confirm
|
||||
#: konnect##goodbye##message##confirm
|
||||
msgid "Press the button below, to sign out from your account now."
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##login##retryButton##label
|
||||
#: konnect##login##retryButton##label
|
||||
msgid "Retry"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##scopeDescription##scope
|
||||
#: konnect##scopeDescription##scope
|
||||
msgid "Scope: {{scope}}"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##login##headline
|
||||
#: konnect##login##headline
|
||||
msgid "Sign in"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##goodbye##signoutButton##label
|
||||
#. konnect##welcome##signoutButton##label
|
||||
#: konnect##goodbye##signoutButton##label
|
||||
#: konnect##welcome##signoutButton##label
|
||||
msgid "Sign out"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##error##http##unexpectedResponseStatus
|
||||
#: konnect##error##http##unexpectedResponseStatus
|
||||
msgid "Unexpected HTTP response: {{status}}. Please check your connection and try again."
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##error##http##unexpectedResponseState
|
||||
#: konnect##error##http##unexpectedResponseState
|
||||
msgid "Unexpected response state: {{state}}"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##chooseaccount##useOther##label
|
||||
#: konnect##chooseaccount##useOther##label
|
||||
msgid "Use another account"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##login##usernameField##placeholder##username
|
||||
#: konnect##login##usernameField##placeholder##username
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##welcome##headline
|
||||
#: konnect##welcome##headline
|
||||
msgid "Welcome {{displayName}}"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##welcome##message
|
||||
#: konnect##welcome##message
|
||||
msgid "You are signed in - awesome!"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##goodbye##message##close
|
||||
#: konnect##goodbye##message##close
|
||||
msgid "You can close this window now."
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##goodbye##confirm##subHeader
|
||||
#: konnect##goodbye##confirm##subHeader
|
||||
msgid "please confirm sign out"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##chooseaccount##subHeader
|
||||
#: konnect##chooseaccount##subHeader
|
||||
msgid "to sign in"
|
||||
msgstr ""
|
||||
|
||||
#. From: konnect##goodbye##subHeader
|
||||
#: konnect##goodbye##subHeader
|
||||
msgid "you have been signed out from your account"
|
||||
msgstr ""
|
||||
@@ -1,18 +1,20 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<head data-kopano-build="%REACT_APP_KOPANO_BUILD%">
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="theme-color" content="#1b223d">
|
||||
<meta name="theme-color" content="#ffffff">
|
||||
<link rel="shortcut icon" href="%PUBLIC_URL%/static/favicon.ico" type="image/x-icon">
|
||||
<link href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;600&display=swap" rel="stylesheet">
|
||||
<meta property="csp-nonce" content="__CSP_NONCE__">
|
||||
<title>Sign in - ownCloud</title>
|
||||
<title>Sign in to your account</title>
|
||||
</head>
|
||||
<body>
|
||||
<noscript>
|
||||
You need to enable JavaScript to run this app.
|
||||
</noscript>
|
||||
<main id="root" class="oc-login-bg" data-path-prefix="__PATH_PREFIX__" passwort-reset-link="__PASSWORD_RESET_LINK__"></main>
|
||||
<div id="bg">
|
||||
<div></div>
|
||||
</div>
|
||||
<div id="root" data-path-prefix="__PATH_PREFIX__"></div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 106 KiB |
@@ -1 +0,0 @@
|
||||
<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="cloud" class="svg-inline--fa fa-cloud fa-w-20" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path fill="#ffffff" d="M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4z"></path></svg>
|
||||
|
Before Width: | Height: | Size: 479 B |
@@ -0,0 +1,3 @@
|
||||
/* Additional global CSS. */
|
||||
|
||||
@import url('fancy-background.css');
|
||||
@@ -0,0 +1,29 @@
|
||||
import React, { Suspense, lazy } from 'react';
|
||||
|
||||
import { MuiThemeProvider } from '@material-ui/core/styles';
|
||||
import {
|
||||
CssBaseline,
|
||||
} from '@material-ui/core';
|
||||
|
||||
import './App.css';
|
||||
import './fancy-background.css';
|
||||
import Spinner from './components/Spinner';
|
||||
import * as version from './version';
|
||||
import theme from './theme';
|
||||
|
||||
const LazyMain = lazy(() => import(/* webpackChunkName: "identifier-main" */ './Main'));
|
||||
|
||||
console.info(`Kopano Identifier build version: ${version.build}`); // eslint-disable-line no-console
|
||||
|
||||
const App = () => {
|
||||
return (
|
||||
<MuiThemeProvider theme={theme}>
|
||||
<CssBaseline/>
|
||||
<Suspense fallback={<Spinner/>}>
|
||||
<LazyMain />
|
||||
</Suspense>
|
||||
</MuiThemeProvider>
|
||||
);
|
||||
}
|
||||
|
||||
export default App;
|
||||
@@ -4,16 +4,28 @@ import { connect } from 'react-redux';
|
||||
|
||||
import { BrowserRouter } from 'react-router-dom';
|
||||
|
||||
import { withStyles } from '@material-ui/core/styles';
|
||||
|
||||
import Routes from './Routes';
|
||||
|
||||
class App extends PureComponent {
|
||||
const styles = () => ({
|
||||
root: {
|
||||
position: 'relative',
|
||||
display: 'flex',
|
||||
flex: 1
|
||||
}
|
||||
});
|
||||
|
||||
class Main extends PureComponent {
|
||||
render() {
|
||||
const { classes, hello, pathPrefix } = this.props;
|
||||
|
||||
return (
|
||||
<BrowserRouter basename={pathPrefix}>
|
||||
<Routes hello={hello}/>
|
||||
</BrowserRouter>
|
||||
<div className={classes.root}>
|
||||
<BrowserRouter basename={pathPrefix}>
|
||||
<Routes hello={hello}/>
|
||||
</BrowserRouter>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -24,7 +36,7 @@ class App extends PureComponent {
|
||||
}
|
||||
}
|
||||
|
||||
App.propTypes = {
|
||||
Main.propTypes = {
|
||||
classes: PropTypes.object.isRequired,
|
||||
|
||||
hello: PropTypes.object,
|
||||
@@ -42,4 +54,4 @@ const mapStateToProps = (state) => {
|
||||
};
|
||||
};
|
||||
|
||||
export default connect(mapStateToProps)(App);
|
||||
export default connect(mapStateToProps)(withStyles(styles)(Main));
|
||||
@@ -4,7 +4,7 @@ import ReactDOM from 'react-dom';
|
||||
import { Provider } from 'react-redux';
|
||||
|
||||
import store from './store';
|
||||
import App from './Main';
|
||||
import App from './App';
|
||||
|
||||
it('renders without crashing', () => {
|
||||
const div = document.createElement('div');
|
||||
@@ -0,0 +1,8 @@
|
||||
all: images
|
||||
|
||||
.PHONY: images
|
||||
images:
|
||||
@$(MAKE) -C images
|
||||
|
||||
clean:
|
||||
@$(MAKE) -C images clean
|
||||
@@ -1,16 +1,15 @@
|
||||
import React from 'react';
|
||||
import React, { lazy } from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
|
||||
import { Route, Switch } from 'react-router-dom';
|
||||
import AsyncComponent from 'kpop/es/AsyncComponent';
|
||||
|
||||
import PrivateRoute from './components/PrivateRoute';
|
||||
|
||||
const AsyncLogin = AsyncComponent(() =>
|
||||
const AsyncLogin = lazy(() =>
|
||||
import(/* webpackChunkName: "containers-login" */ './containers/Login'));
|
||||
const AsyncWelcome = AsyncComponent(() =>
|
||||
const AsyncWelcome = lazy(() =>
|
||||
import(/* webpackChunkName: "containers-welcome" */ './containers/Welcome'));
|
||||
const AsyncGoodbye = AsyncComponent(() =>
|
||||
const AsyncGoodbye = lazy(() =>
|
||||
import(/* webpackChunkName: "containers-goodbye" */ './containers/Goodbye'));
|
||||
|
||||
const Routes = ({ hello }) => (
|
||||
@@ -1,157 +0,0 @@
|
||||
/* additional css on top of kpop */
|
||||
html {
|
||||
font-family: 'Open Sans', sans-serif;
|
||||
}
|
||||
|
||||
strong {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.oc-login-bg {
|
||||
background-image: url(./images/background.jpg);
|
||||
background-size: cover;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
#loader {
|
||||
/* NOTE(longsleep): White here needed because of the background image */
|
||||
color: white;
|
||||
text-shadow: #000 0 0 1px;
|
||||
}
|
||||
|
||||
.oc-logo {
|
||||
position: absolute;
|
||||
top: -130px;
|
||||
left: 50%;
|
||||
height: 80px;
|
||||
transform: translateX(-50%);
|
||||
}
|
||||
|
||||
.oc-progress {
|
||||
/* Needs to be important to overwrite material-ui */
|
||||
background-color: rgba(78, 133, 200, 0.8) !important;
|
||||
height: 4px;
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
.oc-progress > div {
|
||||
/* Needs to be important to overwrite material-ui */
|
||||
background-color: #4a76ac !important;
|
||||
}
|
||||
|
||||
.oc-input {
|
||||
background-color: #042047;
|
||||
border: 1px solid rgba(78, 133, 200, 0.8);
|
||||
border-radius: 3px;
|
||||
color: rgba(255, 255, 255, 0.8);
|
||||
height: 40px;
|
||||
width: 300px;
|
||||
padding: 16px;
|
||||
box-sizing: border-box;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.oc-label {
|
||||
color: #fff;
|
||||
display: inline-block;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.oc-input.error {
|
||||
outline: none;
|
||||
border: 1px solid #fe4600;
|
||||
}
|
||||
|
||||
.MuiTypography-colorError {
|
||||
color: #fe4600 !important;
|
||||
}
|
||||
|
||||
.oc-input:focus {
|
||||
outline: none;
|
||||
border: 1px solid #fff;
|
||||
}
|
||||
|
||||
.oc-input::placeholder {
|
||||
color: rgba(78, 133, 200, 0.8);
|
||||
}
|
||||
|
||||
.oc-input + .oc-input {
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.MuiTouchRipple-root {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.oc-button {
|
||||
/* Needs to be important to overwrite material-ui */
|
||||
font-size: 1.0625rem !important;
|
||||
}
|
||||
|
||||
.oc-button-primary {
|
||||
/* Needs to be important to overwrite material-ui */
|
||||
background-color: #4a76ac !important;
|
||||
border: 1px solid transparent !important;
|
||||
}
|
||||
|
||||
.oc-button-primary:hover,
|
||||
.oc-button-primary:focus {
|
||||
/* Needs to be important to overwrite material-ui */
|
||||
background-color: #4a76ac !important;
|
||||
border: 1px solid white !important;
|
||||
}
|
||||
|
||||
.oc-checkbox-dark svg {
|
||||
/* Needs to be important to overwrite material-ui */
|
||||
fill: white !important;
|
||||
}
|
||||
|
||||
.oc-footer-message {
|
||||
color: white;
|
||||
padding: 10px;
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 768px) {
|
||||
.oc-logo {
|
||||
height: 60px;
|
||||
top: -90px;
|
||||
}
|
||||
}
|
||||
|
||||
/* Helpers */
|
||||
.oc-mt-l {
|
||||
margin-top: 30px !important;
|
||||
}
|
||||
|
||||
.oc-mb-m {
|
||||
margin-bottom: 20px !important;
|
||||
}
|
||||
|
||||
.oc-light {
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
.oc-login-form div:not(:last-of-type) {
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Special SR classes
|
||||
* Used to hide an element visually, but keeping it accessible for accessibility tools.
|
||||
*/
|
||||
.oc-invisible-sr {
|
||||
border: 0 !important;
|
||||
clip: rect(1px, 1px, 1px, 1px) !important;
|
||||
height: 1px !important;
|
||||
overflow: hidden !important;
|
||||
padding: 0 !important;
|
||||
/* Need to make sure we override any existing styles. */
|
||||
position: absolute !important;
|
||||
top: 0;
|
||||
white-space: nowrap;
|
||||
width: 1px !important;
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
import React from 'react';
|
||||
import ReactDOM from 'react-dom';
|
||||
import Loadable from 'react-loadable';
|
||||
import { Provider } from 'react-redux';
|
||||
|
||||
import { MuiThemeProvider } from '@material-ui/core/styles';
|
||||
|
||||
import { defaultTheme as theme } from 'kpop/es/theme';
|
||||
import { IntlProvider } from 'react-intl';
|
||||
import Loading from 'kpop/es/Loading';
|
||||
import { unregister } from 'kpop/es/serviceWorker';
|
||||
|
||||
import store from './store';
|
||||
import translations from './locales';
|
||||
|
||||
// NOTE(longsleep): Load async with loader, this enables code splitting via Webpack.
|
||||
const LoadableApp = Loadable({
|
||||
loader: () => import(/* webpackChunkName: "identifier-main" */ './Main'),
|
||||
loading: Loading,
|
||||
timeout: 20000
|
||||
});
|
||||
|
||||
ReactDOM.render(
|
||||
<Provider store={store}>
|
||||
<MuiThemeProvider theme={theme}>
|
||||
<IntlProvider messages={translations} locale="en" defaultLocale="en">
|
||||
<LoadableApp />
|
||||
</IntlProvider>
|
||||
</MuiThemeProvider>
|
||||
</Provider>,
|
||||
document.getElementById('root')
|
||||
);
|
||||
|
||||
unregister();
|
||||
@@ -1,63 +0,0 @@
|
||||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { connect } from 'react-redux';
|
||||
|
||||
import { FormattedMessage } from 'react-intl';
|
||||
|
||||
import LinearProgress from '@material-ui/core/LinearProgress';
|
||||
import Grid from '@material-ui/core/Grid';
|
||||
import Typography from '@material-ui/core/Typography';
|
||||
import Button from '@material-ui/core/Button';
|
||||
import renderIf from 'render-if';
|
||||
|
||||
import { retryHello } from '../actions/common';
|
||||
import { ErrorMessage } from '../errors';
|
||||
|
||||
function Loading({ error, dispatch }) {
|
||||
const retry = (event) => {
|
||||
event.preventDefault();
|
||||
dispatch(retryHello());
|
||||
}
|
||||
|
||||
return (
|
||||
<Grid item align="center">
|
||||
{renderIf(error === null)(() => (
|
||||
<LinearProgress className="oc-progress" />
|
||||
))}
|
||||
{renderIf(error !== null)(() => (
|
||||
<div>
|
||||
<Typography className="oc-light" variant="h5" gutterBottom align="center">
|
||||
<FormattedMessage id="konnect.loading.error.headline" defaultMessage="Failed to connect to server" />
|
||||
</Typography>
|
||||
<Typography align="center" color="error">
|
||||
<ErrorMessage error={error} />
|
||||
</Typography>
|
||||
<Button
|
||||
autoFocus
|
||||
color="primary"
|
||||
variant="contained"
|
||||
className="oc-button-primary oc-mt-l"
|
||||
onClick={(event) => retry(event)}
|
||||
>
|
||||
<FormattedMessage id="konnect.login.retryButton.label" defaultMessage="Retry" />
|
||||
</Button>
|
||||
</div>
|
||||
))}
|
||||
</Grid>
|
||||
);
|
||||
}
|
||||
|
||||
Loading.propTypes = {
|
||||
error: PropTypes.object,
|
||||
dispatch: PropTypes.func.isRequired
|
||||
};
|
||||
|
||||
const mapStateToProps = (state) => {
|
||||
const { error } = state.common;
|
||||
|
||||
return {
|
||||
error
|
||||
};
|
||||
};
|
||||
|
||||
export default connect(mapStateToProps)(Loading);
|
||||
@@ -0,0 +1,93 @@
|
||||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { connect } from 'react-redux';
|
||||
|
||||
import { withTranslation } from 'react-i18next';
|
||||
|
||||
import { withStyles } from '@material-ui/core/styles';
|
||||
import LinearProgress from '@material-ui/core/LinearProgress';
|
||||
import Grid from '@material-ui/core/Grid';
|
||||
import Typography from '@material-ui/core/Typography';
|
||||
import Button from '@material-ui/core/Button';
|
||||
import renderIf from 'render-if';
|
||||
|
||||
import { retryHello } from '../actions/common';
|
||||
import { ErrorMessage } from '../errors';
|
||||
|
||||
const styles = theme => ({
|
||||
root: {
|
||||
flexGrow: 1,
|
||||
position: 'absolute',
|
||||
top: 0,
|
||||
bottom: 0,
|
||||
left: 0,
|
||||
right: 0
|
||||
},
|
||||
progress: {
|
||||
height: '4px',
|
||||
width: '100px'
|
||||
},
|
||||
button: {
|
||||
marginTop: theme.spacing(5)
|
||||
}
|
||||
});
|
||||
|
||||
class Loading extends React.PureComponent {
|
||||
render() {
|
||||
const { classes, error, t } = this.props;
|
||||
|
||||
return (
|
||||
<Grid container direction="column" alignItems="center" justifyContent="center" spacing={0} className={classes.root}>
|
||||
<Grid item align="center">
|
||||
{renderIf(error === null)(() => (
|
||||
<LinearProgress className={classes.progress} />
|
||||
))}
|
||||
{renderIf(error !== null)(() => (
|
||||
<div>
|
||||
<Typography variant="h5" gutterBottom align="center">
|
||||
{t("konnect.loading.error.headline", "Failed to connect to server")}
|
||||
</Typography>
|
||||
<Typography gutterBottom align="center" color="error">
|
||||
<ErrorMessage error={error}></ErrorMessage>
|
||||
</Typography>
|
||||
<Button
|
||||
autoFocus
|
||||
color="primary"
|
||||
variant="outlined"
|
||||
className={classes.button}
|
||||
onClick={(event) => this.retry(event)}
|
||||
>
|
||||
{t("konnect.login.retryButton.label", "Retry")}
|
||||
</Button>
|
||||
</div>
|
||||
))}
|
||||
</Grid>
|
||||
</Grid>
|
||||
);
|
||||
}
|
||||
|
||||
retry(event) {
|
||||
event.preventDefault();
|
||||
|
||||
this.props.dispatch(retryHello());
|
||||
}
|
||||
}
|
||||
|
||||
Loading.propTypes = {
|
||||
classes: PropTypes.object.isRequired,
|
||||
t: PropTypes.func.isRequired,
|
||||
|
||||
error: PropTypes.object,
|
||||
|
||||
dispatch: PropTypes.func.isRequired,
|
||||
};
|
||||
|
||||
const mapStateToProps = (state) => {
|
||||
const { error } = state.common;
|
||||
|
||||
return {
|
||||
error
|
||||
};
|
||||
};
|
||||
|
||||
export default connect(mapStateToProps)(withTranslation()(withStyles(styles)(Loading)));
|
||||
@@ -0,0 +1,76 @@
|
||||
import React, { useCallback, useMemo, useEffect } from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
|
||||
import { useTranslation } from 'react-i18next';
|
||||
|
||||
import MenuItem from '@material-ui/core/MenuItem';
|
||||
import Select from '@material-ui/core/Select';
|
||||
|
||||
import allLocales from '../locales';
|
||||
|
||||
function LocaleSelect({ locales: localesProp, ...other } = {}) {
|
||||
const { i18n, ready } = useTranslation();
|
||||
|
||||
const handleChange = useCallback((event) => {
|
||||
i18n.changeLanguage(event.target.value);
|
||||
}, [ i18n ])
|
||||
|
||||
const locales = useMemo(() => {
|
||||
if (!localesProp) {
|
||||
return allLocales;
|
||||
}
|
||||
const supported = allLocales.filter(locale => {
|
||||
return localesProp.includes(locale.locale);
|
||||
});
|
||||
return supported;
|
||||
}, [localesProp]);
|
||||
|
||||
useEffect(() => {
|
||||
if (locales) {
|
||||
const found = locales.find((locale) => {
|
||||
return locale.locale === i18n.language;
|
||||
});
|
||||
if (found) {
|
||||
// Have language -> is supported all good.
|
||||
return;
|
||||
}
|
||||
const wanted = i18n.modules.languageDetector.detectors.navigator.lookup();
|
||||
i18n.modules.languageDetector.services.languageUtils.options.supportedLngs = locales.map(locale => locale.locale);
|
||||
i18n.modules.languageDetector.services.languageUtils.options.fallbackLng = null;
|
||||
|
||||
let best = i18n.modules.languageDetector.services.languageUtils.getBestMatchFromCodes(wanted);
|
||||
if (!best) {
|
||||
best = locales[0].locale;
|
||||
}
|
||||
|
||||
// Auto change language to best one found if the current selected one is not enabled.
|
||||
if (i18n.language !== best) {
|
||||
i18n.changeLanguage(best);
|
||||
}
|
||||
}
|
||||
}, [i18n, locales]);
|
||||
|
||||
if (!ready || !locales || locales.length < 2) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return <Select
|
||||
value={i18n.language}
|
||||
onChange={handleChange}
|
||||
{...other}
|
||||
>
|
||||
{locales.map(language => {
|
||||
return <MenuItem
|
||||
key={language.locale}
|
||||
value={language.locale}>
|
||||
{language.nativeName}
|
||||
</MenuItem>;
|
||||
})}
|
||||
</Select>;
|
||||
}
|
||||
|
||||
LocaleSelect.propTypes = {
|
||||
locales: PropTypes.arrayOf(PropTypes.string),
|
||||
};
|
||||
|
||||
export default LocaleSelect;
|
||||
+1
-1
@@ -15,7 +15,7 @@ const PrivateRoute = ({ component: Target, hello, ...rest }) => (
|
||||
);
|
||||
|
||||
PrivateRoute.propTypes = {
|
||||
component: PropTypes.func.isRequired,
|
||||
component: PropTypes.elementType.isRequired,
|
||||
hello: PropTypes.object
|
||||
};
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
|
||||
import Dialog from '@material-ui/core/Dialog';
|
||||
import withMobileDialog from '@material-ui/core/withMobileDialog';
|
||||
|
||||
const ResponsiveDialog = (props) => {
|
||||
return <Dialog {...props}/>;
|
||||
};
|
||||
|
||||
ResponsiveDialog.propTypes = {
|
||||
fullScreen: PropTypes.bool.isRequired
|
||||
};
|
||||
|
||||
export default withMobileDialog()(ResponsiveDialog);
|
||||
+32
-26
@@ -1,46 +1,52 @@
|
||||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import classNames from 'classnames';
|
||||
import { FormattedMessage } from 'react-intl';
|
||||
|
||||
import { withStyles } from '@material-ui/core/styles';
|
||||
import Grid from '@material-ui/core/Grid';
|
||||
import DialogActions from '@material-ui/core/DialogActions';
|
||||
import DialogContent from '@material-ui/core/DialogContent';
|
||||
|
||||
import ResponsiveDialog from './ResponsiveDialog';
|
||||
import Logo from '../images/app-icon.svg';
|
||||
import Loading from './Loading';
|
||||
import LocaleSelect from './LocaleSelect';
|
||||
|
||||
const styles = theme => ({
|
||||
root: {
|
||||
display: 'flex',
|
||||
flex: 1
|
||||
flex: 1,
|
||||
},
|
||||
content: {
|
||||
position: 'relative',
|
||||
width: '100%'
|
||||
paddingTop: 24,
|
||||
paddingBottom: 12,
|
||||
minHeight: 350,
|
||||
paddingLeft: theme.spacing(2),
|
||||
paddingRight: theme.spacing(2),
|
||||
position: 'relative'
|
||||
},
|
||||
dialog: {
|
||||
maxWidth: 440,
|
||||
},
|
||||
logo: {
|
||||
height: 24,
|
||||
},
|
||||
actions: {
|
||||
marginTop: -40,
|
||||
minHeight: 45,
|
||||
justifyContent: 'flex-start',
|
||||
paddingLeft: theme.spacing(3),
|
||||
paddingRight: theme.spacing(3)
|
||||
},
|
||||
wrapper: {
|
||||
width: '100%',
|
||||
maxWidth: 300,
|
||||
display: 'flex',
|
||||
flex: 1,
|
||||
alignItems: 'center'
|
||||
}
|
||||
});
|
||||
|
||||
const footerProductName = name => <strong>{name}</strong>;
|
||||
|
||||
const ResponsiveScreen = (props) => {
|
||||
const {
|
||||
classes,
|
||||
withoutLogo,
|
||||
withoutPadding,
|
||||
loading,
|
||||
branding,
|
||||
children,
|
||||
className,
|
||||
DialogProps,
|
||||
@@ -48,29 +54,28 @@ const ResponsiveScreen = (props) => {
|
||||
...other
|
||||
} = props;
|
||||
|
||||
const bannerLogoSrc = branding?.bannerLogo ? branding.bannerLogo : Logo;
|
||||
const logo = withoutLogo ? null :
|
||||
<img src={process.env.PUBLIC_URL + '/static/logo.svg'} className="oc-logo" alt="ownCloud Logo"/>;
|
||||
<DialogContent><img src={bannerLogoSrc} className={classes.logo} alt=""/></DialogContent>;
|
||||
|
||||
const content = loading ? <Loading/> : (withoutPadding ? children : <DialogContent>{children}</DialogContent>);
|
||||
|
||||
return (
|
||||
<Grid container justify="center" alignItems="center" direction="column" spacing={0}
|
||||
<Grid container justifyContent="center" alignItems="center" spacing={0}
|
||||
className={classNames(classes.root, className)} {...other}>
|
||||
<div className={classes.wrapper}>
|
||||
<ResponsiveDialog open fullWidth maxWidth="sm" disableEscapeKeyDown hideBackdrop
|
||||
{...DialogProps}
|
||||
PaperProps={{elevation: 4, ...PaperProps}}
|
||||
classes={{
|
||||
paperWidthSm: classes.dialog,
|
||||
}}
|
||||
>
|
||||
<div className={classes.content}>
|
||||
{logo}
|
||||
{content}
|
||||
</div>
|
||||
</div>
|
||||
<footer className="oc-footer-message">
|
||||
<FormattedMessage
|
||||
id="konnect.footer.slogan"
|
||||
defaultMessage="<name>ownCloud</name> - a safe home for all your data"
|
||||
values={{
|
||||
name: chunks => footerProductName(chunks)
|
||||
}}
|
||||
/>
|
||||
</footer>
|
||||
{!loading && <DialogActions className={classes.actions} disableSpacing><LocaleSelect disableUnderline locales={branding?.locales}/></DialogActions>}
|
||||
</ResponsiveDialog>
|
||||
</Grid>
|
||||
);
|
||||
};
|
||||
@@ -86,6 +91,7 @@ ResponsiveScreen.propTypes = {
|
||||
withoutLogo: PropTypes.bool,
|
||||
withoutPadding: PropTypes.bool,
|
||||
loading: PropTypes.bool,
|
||||
branding: PropTypes.object,
|
||||
children: PropTypes.node.isRequired,
|
||||
className: PropTypes.string,
|
||||
PaperProps: PropTypes.object,
|
||||
+15
-27
@@ -6,7 +6,7 @@ import { withStyles } from '@material-ui/core/styles';
|
||||
import PropTypes from 'prop-types';
|
||||
import Checkbox from '@material-ui/core/Checkbox';
|
||||
|
||||
import { injectIntl, useIntl, defineMessages, FormattedMessage } from 'react-intl';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
|
||||
const styles = () => ({
|
||||
row: {
|
||||
@@ -15,20 +15,10 @@ const styles = () => ({
|
||||
}
|
||||
});
|
||||
|
||||
const scopeIDTranslations = defineMessages({
|
||||
'scope_alias_basic': {
|
||||
id: 'konnect.scopeDescription.aliasBasic',
|
||||
defaultMessage: 'Access your basic account information'
|
||||
},
|
||||
'scope_offline_access': {
|
||||
id: 'konnect.scopeDescription.offlineAccess',
|
||||
defaultMessage: 'Keep the allowed access persistently and forever'
|
||||
}
|
||||
});
|
||||
|
||||
const ScopesList = ({scopes, meta, classes, ...rest}) => {
|
||||
const { mapping, definitions } = meta;
|
||||
const intl = useIntl()
|
||||
|
||||
const { t } = useTranslation();
|
||||
|
||||
const rows = [];
|
||||
const known = {};
|
||||
@@ -48,24 +38,23 @@ const ScopesList = ({scopes, meta, classes, ...rest}) => {
|
||||
id = scope;
|
||||
}
|
||||
let definition = definitions[id];
|
||||
let label ;
|
||||
let label;
|
||||
if (definition) {
|
||||
if (definition.id) {
|
||||
const translation = scopeIDTranslations[definition.id];
|
||||
if (translation) {
|
||||
label = intl.formatMessage(translation);
|
||||
}
|
||||
switch (definition.id) {
|
||||
case 'scope_alias_basic':
|
||||
label = t("konnect.scopeDescription.aliasBasic", "Access your basic account information");
|
||||
break;
|
||||
case 'scope_offline_access':
|
||||
label = t("konnect.scopeDescription.offlineAccess", "Keep the allowed access persistently and forever");
|
||||
break;
|
||||
default:
|
||||
}
|
||||
if (!label) {
|
||||
label = definition.description;
|
||||
}
|
||||
}
|
||||
if (!label) {
|
||||
label = <FormattedMessage
|
||||
id="konnect.scopeDescription.scope"
|
||||
defaultMessage="Scope: {scope}"
|
||||
values={{scope}}
|
||||
/>;
|
||||
label = t("konnect.scopeDescription.scope", "Scope: {{scope}}", { scope });
|
||||
}
|
||||
|
||||
rows.push(
|
||||
@@ -78,9 +67,8 @@ const ScopesList = ({scopes, meta, classes, ...rest}) => {
|
||||
checked
|
||||
disableRipple
|
||||
disabled
|
||||
className="oc-checkbox-dark"
|
||||
/>
|
||||
<ListItemText primary={label} className="oc-light" />
|
||||
<ListItemText primary={label} />
|
||||
</ListItem>
|
||||
);
|
||||
}
|
||||
@@ -99,4 +87,4 @@ ScopesList.propTypes = {
|
||||
meta: PropTypes.object.isRequired
|
||||
};
|
||||
|
||||
export default withStyles(styles)(injectIntl(ScopesList));
|
||||
export default withStyles(styles)(ScopesList);
|
||||
@@ -0,0 +1,34 @@
|
||||
import React from 'react';
|
||||
|
||||
import {
|
||||
Fade,
|
||||
CircularProgress,
|
||||
} from '@material-ui/core';
|
||||
import { makeStyles } from '@material-ui/core/styles';
|
||||
|
||||
const useStyles = makeStyles(() => ({
|
||||
root: {
|
||||
position: 'fixed',
|
||||
top: '50%',
|
||||
left: '50%',
|
||||
transform: 'translate(-50%, -50%)',
|
||||
},
|
||||
}));
|
||||
|
||||
const Spinner = () => {
|
||||
const classes = useStyles();
|
||||
|
||||
return <div className={classes.root}>
|
||||
<Fade
|
||||
in
|
||||
style={{
|
||||
transitionDelay: '800ms',
|
||||
}}
|
||||
unmountOnExit
|
||||
>
|
||||
<CircularProgress size={70} thickness={1}/>
|
||||
</Fade>
|
||||
</div>;
|
||||
}
|
||||
|
||||
export default Spinner;
|
||||
@@ -1,30 +0,0 @@
|
||||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
|
||||
import {useIntl} from 'react-intl';
|
||||
|
||||
const TextInput = (props) => {
|
||||
const intl = useIntl();
|
||||
const label = props.label;
|
||||
const extraClassName = props.extraClassName;
|
||||
|
||||
delete props.label;
|
||||
delete props.extraClassName;
|
||||
|
||||
return (
|
||||
<div>
|
||||
<label className="oc-label"
|
||||
htmlFor={props.id}>{intl.formatMessage(label)}</label>
|
||||
<input className={`oc-input ${extraClassName ? extraClassName : ''}`} {...props}
|
||||
placeholder={props.placeholder ? intl.formatMessage(props.placeholder) : null}/>
|
||||
</div>);
|
||||
};
|
||||
|
||||
TextInput.propTypes = {
|
||||
placeholder: PropTypes.object,
|
||||
label: PropTypes.object,
|
||||
id: PropTypes.string,
|
||||
extraClassName: props.string,
|
||||
}
|
||||
|
||||
export default TextInput;
|
||||
+17
-25
@@ -2,8 +2,9 @@ import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { connect } from 'react-redux';
|
||||
|
||||
import { withTranslation } from 'react-i18next';
|
||||
|
||||
import renderIf from 'render-if';
|
||||
import { FormattedMessage } from 'react-intl';
|
||||
|
||||
import { withStyles } from '@material-ui/core/styles';
|
||||
import Button from '@material-ui/core/Button';
|
||||
@@ -30,58 +31,46 @@ class Goodbyescreen extends React.PureComponent {
|
||||
}
|
||||
|
||||
render() {
|
||||
const { classes, hello } = this.props;
|
||||
const { classes, branding, hello, t } = this.props;
|
||||
|
||||
const loading = hello === null;
|
||||
return (
|
||||
<ResponsiveScreen loading={loading}>
|
||||
<ResponsiveScreen loading={loading} branding={branding}>
|
||||
{renderIf(hello !== null && !hello.state)(() => (
|
||||
<div>
|
||||
<Typography variant="h5" component="h3">
|
||||
<FormattedMessage id="konnect.goodbye.headline" defaultMessage="Goodbye"></FormattedMessage>
|
||||
{t("konnect.goodbye.headline", "Goodbye")}
|
||||
</Typography>
|
||||
<Typography variant="subtitle1" className={classes.subHeader}>
|
||||
<FormattedMessage id="konnect.goodbye.subHeader"
|
||||
defaultMessage="you have been signed out from your Kopano account">
|
||||
</FormattedMessage>
|
||||
{t("konnect.goodbye.subHeader", "you have been signed out from your account")}
|
||||
</Typography>
|
||||
<Typography gutterBottom>
|
||||
<FormattedMessage id="konnect.goodbye.message.close"
|
||||
defaultMessage="You can close this window now.">
|
||||
</FormattedMessage>
|
||||
{t("konnect.goodbye.message.close", "You can close this window now.")}
|
||||
</Typography>
|
||||
</div>
|
||||
))}
|
||||
{renderIf(hello !== null && hello.state === true)(() => (
|
||||
<div>
|
||||
<Typography variant="h5" component="h3">
|
||||
<FormattedMessage
|
||||
id="konnect.goodbye.confirm.headline"
|
||||
defaultMessage="Hello {displayName}"
|
||||
values={{displayName: hello.displayName}}>
|
||||
</FormattedMessage>
|
||||
{t("konnect.goodbye.confirm.headline", "Hello {{displayName}}", { displayName: hello.displayName })}
|
||||
</Typography>
|
||||
<Typography variant="subtitle1" className={classes.subHeader}>
|
||||
<FormattedMessage id="konnect.goodbye.confirm.subHeader"
|
||||
defaultMessage="please confirm sign out">
|
||||
</FormattedMessage>
|
||||
{t("konnect.goodbye.confirm.subHeader", "please confirm sign out")}
|
||||
</Typography>
|
||||
|
||||
<Typography gutterBottom>
|
||||
<FormattedMessage id="konnect.goodbye.message.confirm"
|
||||
defaultMessage="Press the button below, to sign out from your Kopano account now.">
|
||||
</FormattedMessage>
|
||||
{t("konnect.goodbye.message.confirm", "Press the button below, to sign out from your account now.")}
|
||||
</Typography>
|
||||
|
||||
<DialogActions>
|
||||
<div className={classes.wrapper}>
|
||||
<Button
|
||||
color="secondary"
|
||||
variant="outlined"
|
||||
className={classes.button}
|
||||
onClick={(event) => this.logoff(event)}
|
||||
>
|
||||
<FormattedMessage id="konnect.goodbye.signoutButton.label"
|
||||
defaultMessage="Sign out"></FormattedMessage>
|
||||
{t("konnect.goodbye.signoutButton.label", "Sign out")}
|
||||
</Button>
|
||||
</div>
|
||||
</DialogActions>
|
||||
@@ -107,7 +96,9 @@ class Goodbyescreen extends React.PureComponent {
|
||||
|
||||
Goodbyescreen.propTypes = {
|
||||
classes: PropTypes.object.isRequired,
|
||||
t: PropTypes.func.isRequired,
|
||||
|
||||
branding: PropTypes.object,
|
||||
hello: PropTypes.object,
|
||||
|
||||
dispatch: PropTypes.func.isRequired,
|
||||
@@ -115,11 +106,12 @@ Goodbyescreen.propTypes = {
|
||||
};
|
||||
|
||||
const mapStateToProps = (state) => {
|
||||
const { hello } = state.common;
|
||||
const { branding, hello } = state.common;
|
||||
|
||||
return {
|
||||
branding,
|
||||
hello
|
||||
};
|
||||
};
|
||||
|
||||
export default connect(mapStateToProps)(withStyles(styles)(Goodbyescreen));
|
||||
export default connect(mapStateToProps)(withStyles(styles)(withTranslation()(Goodbyescreen)));
|
||||
@@ -1,144 +0,0 @@
|
||||
import React, { useEffect } from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { connect } from 'react-redux';
|
||||
|
||||
import { FormattedMessage } from 'react-intl';
|
||||
|
||||
import { withStyles } from '@material-ui/core/styles';
|
||||
import List from '@material-ui/core/List';
|
||||
import ListItem from '@material-ui/core/ListItem';
|
||||
import ListItemText from '@material-ui/core/ListItemText';
|
||||
import ListItemAvatar from '@material-ui/core/ListItemAvatar';
|
||||
import Avatar from '@material-ui/core/Avatar';
|
||||
import Typography from '@material-ui/core/Typography';
|
||||
|
||||
import { executeLogonIfFormValid, advanceLogonFlow } from '../../actions/login';
|
||||
import { ErrorMessage } from '../../errors';
|
||||
|
||||
const styles = theme => ({
|
||||
subHeader: {
|
||||
marginBottom: theme.spacing(2)
|
||||
},
|
||||
message: {
|
||||
marginTop: theme.spacing(2)
|
||||
},
|
||||
accountList: {
|
||||
marginLeft: theme.spacing(-3),
|
||||
marginRight: theme.spacing(-3)
|
||||
},
|
||||
accountListItem: {
|
||||
paddingLeft: theme.spacing(3),
|
||||
paddingRight: theme.spacing(3)
|
||||
}
|
||||
});
|
||||
|
||||
function Chooseaccount({ loading, errors, classes, hello, history, dispatch }) {
|
||||
useEffect(() => {
|
||||
if ((!hello || !hello.state) && history.action !== 'PUSH') {
|
||||
history.replace(`/identifier${history.location.search}${history.location.hash}`);
|
||||
}
|
||||
});
|
||||
|
||||
let errorMessage = null;
|
||||
|
||||
if (errors.http) {
|
||||
errorMessage = <Typography color="error" className={classes.message}>
|
||||
<ErrorMessage error={errors.http}></ErrorMessage>
|
||||
</Typography>;
|
||||
}
|
||||
|
||||
let username = '';
|
||||
|
||||
if (hello && hello.state) {
|
||||
username = hello.username;
|
||||
}
|
||||
|
||||
const logon = (event) => {
|
||||
event.preventDefault();
|
||||
dispatch(executeLogonIfFormValid(hello.username, '', true)).then((response) => {
|
||||
if (response.success) {
|
||||
dispatch(advanceLogonFlow(response.success, history));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
const logoff = (event) => {
|
||||
event.preventDefault();
|
||||
history.push(`/identifier${history.location.search}${history.location.hash}`);
|
||||
}
|
||||
|
||||
return (
|
||||
<div>
|
||||
<Typography variant="h5" component="h3" className="oc-light">
|
||||
<FormattedMessage id="konnect.chooseaccount.headline" defaultMessage="Choose an account"></FormattedMessage>
|
||||
</Typography>
|
||||
<Typography variant="subtitle1" className={classes.subHeader + " oc-light"}>
|
||||
<FormattedMessage id="konnect.chooseaccount.subHeader" defaultMessage="to sign in to Kopano">
|
||||
</FormattedMessage>
|
||||
</Typography>
|
||||
|
||||
<form action="" onSubmit={(event) => logon(event)}>
|
||||
<List disablePadding className={classes.accountList}>
|
||||
<ListItem
|
||||
button
|
||||
disableGutters
|
||||
className={classes.accountListItem}
|
||||
disabled={!!loading}
|
||||
onClick={(event) => logon(event)}
|
||||
><ListItemAvatar><Avatar>{username.slice(0, 1)}</Avatar></ListItemAvatar>
|
||||
<ListItemText className="oc-light" primary={username} />
|
||||
</ListItem>
|
||||
<ListItem
|
||||
button
|
||||
disableGutters
|
||||
className={classes.accountListItem}
|
||||
disabled={!!loading}
|
||||
onClick={(event) => logoff(event)}
|
||||
>
|
||||
<ListItemAvatar>
|
||||
<Avatar>
|
||||
<FormattedMessage id="konnect.chooseaccount.useOther.persona.label" defaultMessage="?">
|
||||
</FormattedMessage>
|
||||
</Avatar>
|
||||
</ListItemAvatar>
|
||||
<ListItemText
|
||||
className="oc-light"
|
||||
primary={
|
||||
<FormattedMessage
|
||||
id="konnect.chooseaccount.useOther.label"
|
||||
defaultMessage="Use another account">
|
||||
</FormattedMessage>
|
||||
}
|
||||
/>
|
||||
</ListItem>
|
||||
</List>
|
||||
|
||||
{errorMessage}
|
||||
</form>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
Chooseaccount.propTypes = {
|
||||
classes: PropTypes.object.isRequired,
|
||||
|
||||
loading: PropTypes.string.isRequired,
|
||||
errors: PropTypes.object.isRequired,
|
||||
hello: PropTypes.object,
|
||||
|
||||
dispatch: PropTypes.func.isRequired,
|
||||
history: PropTypes.object.isRequired
|
||||
};
|
||||
|
||||
const mapStateToProps = (state) => {
|
||||
const { loading, errors } = state.login;
|
||||
const { hello } = state.common;
|
||||
|
||||
return {
|
||||
loading,
|
||||
errors,
|
||||
hello
|
||||
};
|
||||
};
|
||||
|
||||
export default connect(mapStateToProps)(withStyles(styles)(Chooseaccount));
|
||||
@@ -0,0 +1,150 @@
|
||||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { connect } from 'react-redux';
|
||||
|
||||
import { withTranslation } from 'react-i18next';
|
||||
|
||||
import { withStyles } from '@material-ui/core/styles';
|
||||
import List from '@material-ui/core/List';
|
||||
import ListItem from '@material-ui/core/ListItem';
|
||||
import ListItemText from '@material-ui/core/ListItemText';
|
||||
import ListItemAvatar from '@material-ui/core/ListItemAvatar';
|
||||
import Avatar from '@material-ui/core/Avatar';
|
||||
import Typography from '@material-ui/core/Typography';
|
||||
import DialogContent from '@material-ui/core/DialogContent';
|
||||
|
||||
import { executeLogonIfFormValid, advanceLogonFlow } from '../../actions/login';
|
||||
import { ErrorMessage } from '../../errors';
|
||||
|
||||
const styles = theme => ({
|
||||
content: {
|
||||
overflowY: 'visible',
|
||||
},
|
||||
subHeader: {
|
||||
marginBottom: theme.spacing(2)
|
||||
},
|
||||
message: {
|
||||
marginTop: theme.spacing(2)
|
||||
},
|
||||
accountList: {
|
||||
marginLeft: theme.spacing(-5),
|
||||
marginRight: theme.spacing(-5)
|
||||
},
|
||||
accountListItem: {
|
||||
paddingLeft: theme.spacing(5),
|
||||
paddingRight: theme.spacing(5)
|
||||
}
|
||||
});
|
||||
|
||||
class Chooseaccount extends React.PureComponent {
|
||||
componentDidMount() {
|
||||
const { hello, history } = this.props;
|
||||
if ((!hello || !hello.state) && history.action !== 'PUSH') {
|
||||
history.replace(`/identifier${history.location.search}${history.location.hash}`);
|
||||
}
|
||||
}
|
||||
|
||||
render() {
|
||||
const { loading, errors, classes, hello, t } = this.props;
|
||||
|
||||
let errorMessage = null;
|
||||
if (errors.http) {
|
||||
errorMessage = <Typography color="error" className={classes.message}>
|
||||
<ErrorMessage error={errors.http}></ErrorMessage>
|
||||
</Typography>;
|
||||
}
|
||||
|
||||
let username = '';
|
||||
if (hello && hello.state) {
|
||||
username = hello.username;
|
||||
}
|
||||
|
||||
return (
|
||||
<DialogContent className={classes.content}>
|
||||
<Typography variant="h5" component="h3">
|
||||
{t("konnect.chooseaccount.headline", "Choose an account")}
|
||||
</Typography>
|
||||
<Typography variant="subtitle1" className={classes.subHeader}>
|
||||
{t("konnect.chooseaccount.subHeader", "to sign in")}
|
||||
</Typography>
|
||||
|
||||
<form action="" onSubmit={(event) => this.logon(event)}>
|
||||
<List disablePadding className={classes.accountList}>
|
||||
<ListItem
|
||||
button
|
||||
disableGutters
|
||||
className={classes.accountListItem}
|
||||
disabled={!!loading}
|
||||
onClick={(event) => this.logon(event)}
|
||||
><ListItemAvatar><Avatar>{username.substr(0, 1)}</Avatar></ListItemAvatar>
|
||||
<ListItemText primary={username} />
|
||||
</ListItem>
|
||||
<ListItem
|
||||
button
|
||||
disableGutters
|
||||
className={classes.accountListItem}
|
||||
disabled={!!loading}
|
||||
onClick={(event) => this.logoff(event)}
|
||||
>
|
||||
<ListItemAvatar>
|
||||
<Avatar>
|
||||
{t("konnect.chooseaccount.useOther.persona.label", "?")}
|
||||
</Avatar>
|
||||
</ListItemAvatar>
|
||||
<ListItemText
|
||||
primary={
|
||||
t("konnect.chooseaccount.useOther.label", "Use another account")
|
||||
}
|
||||
/>
|
||||
</ListItem>
|
||||
</List>
|
||||
|
||||
{errorMessage}
|
||||
</form>
|
||||
</DialogContent>
|
||||
);
|
||||
}
|
||||
|
||||
logon(event) {
|
||||
event.preventDefault();
|
||||
|
||||
const { hello, dispatch, history } = this.props;
|
||||
dispatch(executeLogonIfFormValid(hello.username, '', true)).then((response) => {
|
||||
if (response.success) {
|
||||
dispatch(advanceLogonFlow(response.success, history));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
logoff(event) {
|
||||
event.preventDefault();
|
||||
|
||||
const { history} = this.props;
|
||||
history.push(`/identifier${history.location.search}${history.location.hash}`);
|
||||
}
|
||||
}
|
||||
|
||||
Chooseaccount.propTypes = {
|
||||
classes: PropTypes.object.isRequired,
|
||||
t: PropTypes.func.isRequired,
|
||||
|
||||
loading: PropTypes.string.isRequired,
|
||||
errors: PropTypes.object.isRequired,
|
||||
hello: PropTypes.object,
|
||||
|
||||
dispatch: PropTypes.func.isRequired,
|
||||
history: PropTypes.object.isRequired
|
||||
};
|
||||
|
||||
const mapStateToProps = (state) => {
|
||||
const { loading, errors } = state.login;
|
||||
const { hello } = state.common;
|
||||
|
||||
return {
|
||||
loading,
|
||||
errors,
|
||||
hello
|
||||
};
|
||||
};
|
||||
|
||||
export default connect(mapStateToProps)(withStyles(styles)(withTranslation()(Chooseaccount)));
|
||||
+45
-40
@@ -2,16 +2,18 @@ import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { connect } from 'react-redux';
|
||||
|
||||
import { withTranslation, Trans } from 'react-i18next';
|
||||
|
||||
import renderIf from 'render-if';
|
||||
import { FormattedMessage } from 'react-intl';
|
||||
|
||||
import { withStyles } from '@material-ui/core/styles';
|
||||
import Button from '@material-ui/core/Button';
|
||||
import Tooltip from '@material-ui/core/Tooltip';
|
||||
import BaseTooltip from '@material-ui/core/Tooltip';
|
||||
import CircularProgress from '@material-ui/core/CircularProgress';
|
||||
import green from '@material-ui/core/colors/green';
|
||||
import Typography from '@material-ui/core/Typography';
|
||||
import DialogActions from '@material-ui/core/DialogActions';
|
||||
import DialogContent from '@material-ui/core/DialogContent';
|
||||
|
||||
import { executeConsent, advanceLogonFlow, receiveValidateLogon } from '../../actions/login';
|
||||
import { ErrorMessage } from '../../errors';
|
||||
@@ -20,6 +22,10 @@ import ClientDisplayName from '../../components/ClientDisplayName';
|
||||
import ScopesList from '../../components/ScopesList';
|
||||
|
||||
const styles = theme => ({
|
||||
button: {
|
||||
margin: theme.spacing(1),
|
||||
minWidth: 100
|
||||
},
|
||||
buttonProgress: {
|
||||
color: green[500],
|
||||
position: 'absolute',
|
||||
@@ -28,6 +34,9 @@ const styles = theme => ({
|
||||
marginTop: -12,
|
||||
marginLeft: -12
|
||||
},
|
||||
subHeader: {
|
||||
marginBottom: theme.spacing(2)
|
||||
},
|
||||
scopesList: {
|
||||
marginBottom: theme.spacing(2)
|
||||
},
|
||||
@@ -42,6 +51,12 @@ const styles = theme => ({
|
||||
}
|
||||
});
|
||||
|
||||
const Tooltip = ({children, ...other } = {}) => {
|
||||
// Ensures that there is only a single child for the tooltip element to
|
||||
// make it compatible with the Trans component.
|
||||
return <BaseTooltip {...other}><span>{children}</span></BaseTooltip>;
|
||||
}
|
||||
|
||||
class Consent extends React.PureComponent {
|
||||
componentDidMount() {
|
||||
const { dispatch, hello, history, client } = this.props;
|
||||
@@ -73,51 +88,39 @@ class Consent extends React.PureComponent {
|
||||
}
|
||||
|
||||
render() {
|
||||
const { classes, loading, hello, errors, client } = this.props;
|
||||
const { classes, loading, hello, errors, client, t } = this.props;
|
||||
|
||||
const scopes = hello.details.scopes || {};
|
||||
const meta = hello.details.meta || {};
|
||||
|
||||
return (
|
||||
<div>
|
||||
<Typography variant="h5" component="h3" className="oc-light">
|
||||
<FormattedMessage
|
||||
id="konnect.consent.headline"
|
||||
defaultMessage="Hi {displayName}"
|
||||
values={{displayName: hello.displayName}}
|
||||
/>
|
||||
<DialogContent>
|
||||
<Typography variant="h5" component="h3">
|
||||
{t("konnect.consent.headline", "Hi {{displayName}}", { displayName: hello.displayName })}
|
||||
</Typography>
|
||||
<Typography variant="subtitle1" className="oc-light oc-mb-m">
|
||||
<Typography variant="subtitle1" className={classes.subHeader}>
|
||||
{hello.username}
|
||||
</Typography>
|
||||
|
||||
<Typography variant="subtitle1" gutterBottom className="oc-light">
|
||||
<FormattedMessage
|
||||
id="konnect.consent.message"
|
||||
defaultMessage="{clientDisplayName} wants to"
|
||||
values={{clientDisplayName:
|
||||
<Tooltip
|
||||
placement="bottom"
|
||||
title={<FormattedMessage
|
||||
id="konnect.consent.tooltip.client"
|
||||
defaultMessage='Clicking "Allow" will redirect you to: {redirectURI}'
|
||||
values={{
|
||||
redirectURI: client.redirect_uri
|
||||
}}
|
||||
></FormattedMessage>}
|
||||
>
|
||||
<em><ClientDisplayName client={client}/></em>
|
||||
</Tooltip>
|
||||
}}
|
||||
></FormattedMessage>
|
||||
<Typography variant="subtitle1" gutterBottom>
|
||||
<Trans t={t} i18nKey="konnect.consent.message">
|
||||
<Tooltip
|
||||
placement="bottom"
|
||||
title={t("konnect.consent.tooltip.client", 'Clicking "Allow" will redirect you to: {{redirectURI}}', { redirectURI: client.redirect_uri })}
|
||||
>
|
||||
<em><ClientDisplayName client={client}/></em>
|
||||
</Tooltip> wants to
|
||||
</Trans>
|
||||
</Typography>
|
||||
<ScopesList dense disablePadding className={classes.scopesList} scopes={scopes} meta={meta.scopes}></ScopesList>
|
||||
|
||||
<Typography className="oc-light">
|
||||
<FormattedMessage
|
||||
id="konnect.consent.consequence"
|
||||
defaultMessage="By clicking Allow, you allow this app to use your information.">
|
||||
</FormattedMessage>
|
||||
<Typography variant="subtitle1" gutterBottom>
|
||||
<Trans t={t} i18nKey="konnect.consent.question">
|
||||
Allow <em><ClientDisplayName client={client}/></em> to do this?
|
||||
</Trans>
|
||||
</Typography>
|
||||
<Typography color="secondary">
|
||||
{t("konnect.consent.consequence", "By clicking Allow, you allow this app to use your information.")}
|
||||
</Typography>
|
||||
|
||||
<form action="" onSubmit={this.action(undefined, scopes)}>
|
||||
@@ -125,11 +128,12 @@ class Consent extends React.PureComponent {
|
||||
<div className={classes.wrapper}>
|
||||
<Button
|
||||
color="secondary"
|
||||
variant="outlined"
|
||||
className={classes.button}
|
||||
disabled={!!loading}
|
||||
onClick={this.action(false, scopes)}
|
||||
>
|
||||
<FormattedMessage id="konnect.consent.cancelButton.label" defaultMessage="Cancel"></FormattedMessage>
|
||||
{t("konnect.consent.cancelButton.label", "Cancel")}
|
||||
</Button>
|
||||
{(loading && loading !== REQUEST_CONSENT_ALLOW) &&
|
||||
<CircularProgress size={24} className={classes.buttonProgress} />}
|
||||
@@ -139,11 +143,11 @@ class Consent extends React.PureComponent {
|
||||
type="submit"
|
||||
color="primary"
|
||||
variant="contained"
|
||||
className="oc-button-primary"
|
||||
className={classes.button}
|
||||
disabled={!!loading}
|
||||
onClick={this.action(true, scopes)}
|
||||
>
|
||||
<FormattedMessage id="konnect.consent.allowButton.label" defaultMessage="Allow"></FormattedMessage>
|
||||
{t("konnect.consent.allowButton.label", "Allow")}
|
||||
</Button>
|
||||
{loading === REQUEST_CONSENT_ALLOW && <CircularProgress size={24} className={classes.buttonProgress} />}
|
||||
</div>
|
||||
@@ -155,13 +159,14 @@ class Consent extends React.PureComponent {
|
||||
</Typography>
|
||||
))}
|
||||
</form>
|
||||
</div>
|
||||
</DialogContent>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Consent.propTypes = {
|
||||
classes: PropTypes.object.isRequired,
|
||||
t: PropTypes.func.isRequired,
|
||||
|
||||
loading: PropTypes.string.isRequired,
|
||||
errors: PropTypes.object.isRequired,
|
||||
@@ -184,4 +189,4 @@ const mapStateToProps = (state) => {
|
||||
};
|
||||
};
|
||||
|
||||
export default connect(mapStateToProps)(withStyles(styles)(Consent));
|
||||
export default connect(mapStateToProps)(withStyles(styles)(withTranslation()(Consent)));
|
||||
@@ -1,181 +0,0 @@
|
||||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { connect } from 'react-redux';
|
||||
|
||||
import { FormattedMessage } from 'react-intl';
|
||||
|
||||
import { withStyles } from '@material-ui/core/styles';
|
||||
import Button from '@material-ui/core/Button';
|
||||
import CircularProgress from '@material-ui/core/CircularProgress';
|
||||
import green from '@material-ui/core/colors/green';
|
||||
import Typography from '@material-ui/core/Typography';
|
||||
import Link from '@material-ui/core/Link';
|
||||
|
||||
import TextInput from '../../components/TextInput'
|
||||
|
||||
import { updateInput, executeLogonIfFormValid, advanceLogonFlow } from '../../actions/login';
|
||||
import { ErrorMessage } from '../../errors';
|
||||
|
||||
const styles = theme => ({
|
||||
buttonProgress: {
|
||||
color: green[500],
|
||||
position: 'absolute',
|
||||
top: '50%',
|
||||
left: '50%',
|
||||
marginTop: -12,
|
||||
marginLeft: -12
|
||||
},
|
||||
subHeader: {
|
||||
marginBottom: theme.spacing(3)
|
||||
},
|
||||
wrapper: {
|
||||
position: 'relative',
|
||||
width: '100%',
|
||||
textAlign: 'center'
|
||||
},
|
||||
message: {
|
||||
marginTop: 5,
|
||||
marginBottom: 5
|
||||
}
|
||||
});
|
||||
|
||||
class Login extends React.PureComponent {
|
||||
state = {};
|
||||
|
||||
componentDidMount() {
|
||||
const { hello, query, dispatch, history } = this.props;
|
||||
if (hello && hello.state && history.action !== 'PUSH') {
|
||||
if (!query.prompt || query.prompt.indexOf('select_account') == -1) {
|
||||
dispatch(advanceLogonFlow(true, history));
|
||||
return;
|
||||
}
|
||||
|
||||
history.replace(`/chooseaccount${history.location.search}${history.location.hash}`);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
render() {
|
||||
const { loading, errors, classes, username, passwordResetLink } = this.props;
|
||||
const loginFailed = errors.http;
|
||||
const hasError = errors.http || errors.username || errors.password;
|
||||
const errorMessage = errors.http
|
||||
? <ErrorMessage error={errors.http}></ErrorMessage>
|
||||
: (errors.username
|
||||
? <ErrorMessage error={errors.username}></ErrorMessage>
|
||||
: <ErrorMessage error={errors.password}></ErrorMessage>);
|
||||
const extraPropsUsername = {
|
||||
"aria-invalid" : (errors.username || errors.http) ? 'true' : 'false'
|
||||
};
|
||||
const extraPropsPassword = {
|
||||
"aria-invalid" : (errors.password || errors.http) ? 'true' : 'false',
|
||||
};
|
||||
|
||||
if(errors.username || errors.http){
|
||||
extraPropsUsername['extraClassName'] = 'error';
|
||||
extraPropsUsername['aria-describedby'] = 'oc-login-error-message';
|
||||
}
|
||||
|
||||
if(errors.password || errors.http){
|
||||
extraPropsPassword['extraClassName'] = 'error';
|
||||
extraPropsPassword['aria-describedby'] = 'oc-login-error-message';
|
||||
}
|
||||
|
||||
return (
|
||||
<div>
|
||||
{/* eslint-disable-next-line react-intl-format/missing-formatted-message */}
|
||||
<h1 className="oc-invisible-sr"> Login </h1>
|
||||
<form action="" className="oc-login-form" onSubmit={(event) => this.logon(event)}>
|
||||
<TextInput
|
||||
autoFocus
|
||||
autoCapitalize="off"
|
||||
spellCheck="false"
|
||||
value={username}
|
||||
onChange={this.handleChange('username')}
|
||||
autoComplete="kopano-account username"
|
||||
placeholder={({id: "konnect.login.usernameField.label", defaultMessage: "Username"})}
|
||||
label={({id: "konnect.login.usernameField.label", defaultMessage: "Username"})}
|
||||
id="oc-login-username"
|
||||
{...extraPropsUsername}
|
||||
/>
|
||||
<TextInput
|
||||
type="password"
|
||||
margin="normal"
|
||||
onChange={this.handleChange('password')}
|
||||
autoComplete="kopano-account current-password"
|
||||
placeholder={({id: "konnect.login.usernameField.label", defaultMessage: "Password"})}
|
||||
label={({id: "konnect.login.usernameField.label", defaultMessage: "Password"})}
|
||||
id="oc-login-password"
|
||||
{...extraPropsPassword}
|
||||
/>
|
||||
{hasError && <Typography id="oc-login-error-message" variant="subtitle2" component="span" color="error"
|
||||
className={classes.message}>{errorMessage}</Typography>}
|
||||
<div className={classes.wrapper}>
|
||||
{loginFailed && passwordResetLink && <Link id="oc-login-password-reset" href={passwordResetLink} variant="subtitle2">{"Reset password?"}</Link>}
|
||||
<br />
|
||||
<Button
|
||||
type="submit"
|
||||
color="primary"
|
||||
variant="contained"
|
||||
className="oc-button-primary oc-mt-l"
|
||||
disabled={!!loading}
|
||||
onClick={(event) => this.logon(event)}
|
||||
>
|
||||
<FormattedMessage id="konnect.login.nextButton.label" defaultMessage="Log in"></FormattedMessage>
|
||||
</Button>
|
||||
{loading && <CircularProgress size={24} className={classes.buttonProgress}/>}
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
handleChange(name) {
|
||||
return event => {
|
||||
this.props.dispatch(updateInput(name, event.target.value));
|
||||
};
|
||||
}
|
||||
|
||||
logon(event) {
|
||||
event.preventDefault();
|
||||
|
||||
const { username, password, dispatch, history } = this.props;
|
||||
dispatch(executeLogonIfFormValid(username, password, false)).then((response) => {
|
||||
if (response.success) {
|
||||
dispatch(advanceLogonFlow(response.success, history));
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Login.propTypes = {
|
||||
classes: PropTypes.object.isRequired,
|
||||
|
||||
loading: PropTypes.string.isRequired,
|
||||
username: PropTypes.string.isRequired,
|
||||
password: PropTypes.string.isRequired,
|
||||
passwordResetLink: PropTypes.string.isRequired,
|
||||
errors: PropTypes.object.isRequired,
|
||||
hello: PropTypes.object,
|
||||
query: PropTypes.object.isRequired,
|
||||
|
||||
dispatch: PropTypes.func.isRequired,
|
||||
history: PropTypes.object.isRequired
|
||||
};
|
||||
|
||||
const mapStateToProps = (state) => {
|
||||
const { loading, username, password, errors} = state.login;
|
||||
const { hello, query, passwordResetLink } = state.common;
|
||||
|
||||
return {
|
||||
loading,
|
||||
username,
|
||||
password,
|
||||
errors,
|
||||
hello,
|
||||
query,
|
||||
passwordResetLink
|
||||
};
|
||||
};
|
||||
|
||||
export default connect(mapStateToProps)(withStyles(styles)(Login));
|
||||
@@ -0,0 +1,198 @@
|
||||
import React, { useEffect, useMemo } from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { connect } from 'react-redux';
|
||||
|
||||
import { useTranslation } from 'react-i18next';
|
||||
|
||||
import renderIf from 'render-if';
|
||||
|
||||
import { withStyles } from '@material-ui/core/styles';
|
||||
import Button from '@material-ui/core/Button';
|
||||
import CircularProgress from '@material-ui/core/CircularProgress';
|
||||
import green from '@material-ui/core/colors/green';
|
||||
import TextField from '@material-ui/core/TextField';
|
||||
import Typography from '@material-ui/core/Typography';
|
||||
import DialogActions from '@material-ui/core/DialogActions';
|
||||
import DialogContent from '@material-ui/core/DialogContent';
|
||||
|
||||
import { updateInput, executeLogonIfFormValid, advanceLogonFlow } from '../../actions/login';
|
||||
import { ErrorMessage } from '../../errors';
|
||||
|
||||
const styles = theme => ({
|
||||
button: {
|
||||
margin: theme.spacing(1),
|
||||
minWidth: 100
|
||||
},
|
||||
buttonProgress: {
|
||||
color: green[500],
|
||||
position: 'absolute',
|
||||
top: '50%',
|
||||
left: '50%',
|
||||
marginTop: -12,
|
||||
marginLeft: -12
|
||||
},
|
||||
subHeader: {
|
||||
marginBottom: theme.spacing(3)
|
||||
},
|
||||
wrapper: {
|
||||
position: 'relative',
|
||||
display: 'inline-block'
|
||||
},
|
||||
slideContainer: {
|
||||
overflowX: 'hidden',
|
||||
},
|
||||
message: {
|
||||
marginTop: theme.spacing(2),
|
||||
marginBottom: theme.spacing(2)
|
||||
}
|
||||
});
|
||||
|
||||
function Login(props) {
|
||||
const {
|
||||
hello,
|
||||
query,
|
||||
dispatch,
|
||||
history,
|
||||
loading,
|
||||
errors,
|
||||
classes,
|
||||
username,
|
||||
password,
|
||||
} = props;
|
||||
|
||||
const { t } = useTranslation();
|
||||
|
||||
useEffect(() => {
|
||||
if (hello && hello.state && history.action !== 'PUSH') {
|
||||
if (!query.prompt || query.prompt.indexOf('select_account') === -1) {
|
||||
dispatch(advanceLogonFlow(true, history));
|
||||
return;
|
||||
}
|
||||
|
||||
history.replace(`/chooseaccount${history.location.search}${history.location.hash}`);
|
||||
return;
|
||||
}
|
||||
}, [ /* no dependencies */ ]);
|
||||
|
||||
const handleChange = (name) => (event) => {
|
||||
dispatch(updateInput(name, event.target.value));
|
||||
};
|
||||
|
||||
const handleNextClick = (event) => {
|
||||
event.preventDefault();
|
||||
|
||||
dispatch(executeLogonIfFormValid(username, password, false)).then((response) => {
|
||||
if (response.success) {
|
||||
dispatch(advanceLogonFlow(response.success, history));
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
const usernamePlaceHolder = useMemo(() => {
|
||||
if (hello?.details?.branding?.usernameHintText ) {
|
||||
switch (hello.details.branding.usernameHintText) {
|
||||
case "Username":
|
||||
break;
|
||||
case "Email":
|
||||
return t("konnect.login.usernameField.placeholder.email", "Email");
|
||||
case "Identity":
|
||||
return t("konnect.login.usernameField.placeholder.identity", "Identity");
|
||||
default:
|
||||
return hello.details.branding.usernameHintText;
|
||||
}
|
||||
}
|
||||
|
||||
return t("konnect.login.usernameField.placeholder.username", "Username");
|
||||
}, [hello, t]);
|
||||
|
||||
return (
|
||||
<DialogContent>
|
||||
<Typography variant="h5" component="h3" gutterBottom>
|
||||
{t("konnect.login.headline", "Sign in")}
|
||||
</Typography>
|
||||
|
||||
<form action="" onSubmit={(event) => this.logon(event)}>
|
||||
<TextField
|
||||
placeholder={usernamePlaceHolder}
|
||||
error={!!errors.username}
|
||||
helperText={<ErrorMessage error={errors.username} values={{what: usernamePlaceHolder}}></ErrorMessage>}
|
||||
fullWidth
|
||||
margin="dense"
|
||||
autoFocus
|
||||
inputProps={{
|
||||
autoCapitalize: 'off',
|
||||
spellCheck: 'false'
|
||||
}}
|
||||
value={username}
|
||||
onChange={handleChange('username')}
|
||||
autoComplete="kopano-account username"
|
||||
/>
|
||||
<TextField
|
||||
type="password"
|
||||
placeholder={t("konnect.login.passwordField.label", "Password")}
|
||||
error={!!errors.password}
|
||||
helperText={<ErrorMessage error={errors.password}></ErrorMessage>}
|
||||
fullWidth
|
||||
margin="dense"
|
||||
onChange={handleChange('password')}
|
||||
autoComplete="kopano-account current-password"
|
||||
/>
|
||||
<DialogActions>
|
||||
<div className={classes.wrapper}>
|
||||
<Button
|
||||
type="submit"
|
||||
color="primary"
|
||||
variant="contained"
|
||||
className={classes.button}
|
||||
disabled={!!loading}
|
||||
onClick={handleNextClick}
|
||||
>
|
||||
{t("konnect.login.nextButton.label", "Next")}
|
||||
</Button>
|
||||
{loading && <CircularProgress size={24} className={classes.buttonProgress} />}
|
||||
</div>
|
||||
</DialogActions>
|
||||
|
||||
{renderIf(errors.http)(() => (
|
||||
<Typography variant="subtitle2" color="error" className={classes.message}>
|
||||
<ErrorMessage error={errors.http}></ErrorMessage>
|
||||
</Typography>
|
||||
))}
|
||||
|
||||
{hello?.details?.branding?.signinPageText && <Typography variant="body2">{hello.details.branding.signinPageText}</Typography>}
|
||||
</form>
|
||||
</DialogContent>
|
||||
);
|
||||
}
|
||||
|
||||
Login.propTypes = {
|
||||
classes: PropTypes.object.isRequired,
|
||||
|
||||
loading: PropTypes.string.isRequired,
|
||||
username: PropTypes.string.isRequired,
|
||||
password: PropTypes.string.isRequired,
|
||||
errors: PropTypes.object.isRequired,
|
||||
branding: PropTypes.object,
|
||||
hello: PropTypes.object,
|
||||
query: PropTypes.object.isRequired,
|
||||
|
||||
dispatch: PropTypes.func.isRequired,
|
||||
history: PropTypes.object.isRequired
|
||||
};
|
||||
|
||||
const mapStateToProps = (state) => {
|
||||
const { loading, username, password, errors} = state.login;
|
||||
const { branding, hello, query } = state.common;
|
||||
|
||||
return {
|
||||
loading,
|
||||
username,
|
||||
password,
|
||||
errors,
|
||||
branding,
|
||||
hello,
|
||||
query
|
||||
};
|
||||
};
|
||||
|
||||
export default connect(mapStateToProps)(withStyles(styles)(Login));
|
||||
+5
-3
@@ -23,11 +23,11 @@ class Loginscreen extends React.PureComponent {
|
||||
}
|
||||
|
||||
render() {
|
||||
const { hello } = this.props;
|
||||
const { branding, hello } = this.props;
|
||||
|
||||
const loading = hello === null;
|
||||
return (
|
||||
<ResponsiveScreen loading={loading} withoutPadding={true} >
|
||||
<ResponsiveScreen loading={loading} branding={branding} withoutPadding>
|
||||
<Switch>
|
||||
<Route path="/identifier" exact component={Login}></Route>
|
||||
<Route path="/chooseaccount" exact component={Chooseaccount}></Route>
|
||||
@@ -42,15 +42,17 @@ class Loginscreen extends React.PureComponent {
|
||||
Loginscreen.propTypes = {
|
||||
classes: PropTypes.object.isRequired,
|
||||
|
||||
branding: PropTypes.object,
|
||||
hello: PropTypes.object,
|
||||
|
||||
dispatch: PropTypes.func.isRequired
|
||||
};
|
||||
|
||||
const mapStateToProps = (state) => {
|
||||
const { hello } = state.common;
|
||||
const { branding, hello } = state.common;
|
||||
|
||||
return {
|
||||
branding,
|
||||
hello
|
||||
};
|
||||
};
|
||||
+14
-16
@@ -2,7 +2,7 @@ import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { connect } from 'react-redux';
|
||||
|
||||
import { FormattedMessage } from 'react-intl';
|
||||
import { withTranslation } from 'react-i18next';
|
||||
|
||||
import { withStyles } from '@material-ui/core/styles';
|
||||
import Button from '@material-ui/core/Button';
|
||||
@@ -24,25 +24,20 @@ const styles = theme => ({
|
||||
|
||||
class Welcomescreen extends React.PureComponent {
|
||||
render() {
|
||||
const { classes, hello } = this.props;
|
||||
const { classes, branding, hello, t } = this.props;
|
||||
|
||||
const loading = hello === null;
|
||||
return (
|
||||
<ResponsiveScreen loading={loading}>
|
||||
<Typography variant="h5" component="h3" className="oc-light">
|
||||
<FormattedMessage
|
||||
id="konnect.welcome.headline"
|
||||
defaultMessage="Welcome {displayName}"
|
||||
values={{displayName: hello.displayName}}>
|
||||
</FormattedMessage>
|
||||
<ResponsiveScreen loading={loading} branding={branding}>
|
||||
<Typography variant="h5" component="h3">
|
||||
{t("konnect.welcome.headline", "Welcome {{displayName}}", {displayName: hello.displayName})}
|
||||
</Typography>
|
||||
<Typography variant="subtitle1" className={classes.subHeader + " oc-light"}>
|
||||
<Typography variant="subtitle1" className={classes.subHeader}>
|
||||
{hello.username}
|
||||
</Typography>
|
||||
|
||||
<Typography gutterBottom className="oc-light">
|
||||
<FormattedMessage id="konnect.welcome.message"
|
||||
defaultMessage="You are signed in - awesome!"></FormattedMessage>
|
||||
<Typography gutterBottom>
|
||||
{t("konnect.welcome.message", "You are signed in - awesome!")}
|
||||
</Typography>
|
||||
|
||||
<DialogActions>
|
||||
@@ -52,7 +47,7 @@ class Welcomescreen extends React.PureComponent {
|
||||
variant="contained"
|
||||
onClick={(event) => this.logoff(event)}
|
||||
>
|
||||
<FormattedMessage id="konnect.welcome.signoutButton.label" defaultMessage="Sign out"></FormattedMessage>
|
||||
{t("konnect.welcome.signoutButton.label", "Sign out")}
|
||||
</Button>
|
||||
</DialogActions>
|
||||
</ResponsiveScreen>
|
||||
@@ -74,7 +69,9 @@ class Welcomescreen extends React.PureComponent {
|
||||
|
||||
Welcomescreen.propTypes = {
|
||||
classes: PropTypes.object.isRequired,
|
||||
t: PropTypes.func.isRequired,
|
||||
|
||||
branding: PropTypes.object,
|
||||
hello: PropTypes.object,
|
||||
|
||||
dispatch: PropTypes.func.isRequired,
|
||||
@@ -82,11 +79,12 @@ Welcomescreen.propTypes = {
|
||||
};
|
||||
|
||||
const mapStateToProps = (state) => {
|
||||
const { hello } = state.common;
|
||||
const { branding, hello } = state.common;
|
||||
|
||||
return {
|
||||
branding,
|
||||
hello
|
||||
};
|
||||
};
|
||||
|
||||
export default connect(mapStateToProps)(withStyles(styles)(Welcomescreen));
|
||||
export default connect(mapStateToProps)(withStyles(styles)(withTranslation()(Welcomescreen)));
|
||||
@@ -1,4 +1,4 @@
|
||||
import { injectIntl, defineMessages } from 'react-intl';
|
||||
import { withTranslation } from 'react-i18next';
|
||||
|
||||
export const ERROR_LOGIN_VALIDATE_MISSINGUSERNAME = 'konnect.error.login.validate.missingUsername';
|
||||
export const ERROR_LOGIN_VALIDATE_MISSINGPASSWORD = 'konnect.error.login.validate.missingPassword';
|
||||
@@ -7,34 +7,6 @@ export const ERROR_HTTP_NETWORK_ERROR = 'konnect.error.http.networkError';
|
||||
export const ERROR_HTTP_UNEXPECTED_RESPONSE_STATUS = 'konnect.error.http.unexpectedResponseStatus';
|
||||
export const ERROR_HTTP_UNEXPECTED_RESPONSE_STATE = 'konnect.error.http.unexpectedResponseState';
|
||||
|
||||
// Translatable error messages.
|
||||
const translations = defineMessages({
|
||||
[ERROR_LOGIN_VALIDATE_MISSINGUSERNAME]: {
|
||||
id: ERROR_LOGIN_VALIDATE_MISSINGUSERNAME,
|
||||
defaultMessage: 'Please enter a valid username'
|
||||
},
|
||||
[ERROR_LOGIN_VALIDATE_MISSINGPASSWORD]: {
|
||||
id: ERROR_LOGIN_VALIDATE_MISSINGPASSWORD,
|
||||
defaultMessage: 'Please enter a valid password'
|
||||
},
|
||||
[ERROR_LOGIN_FAILED]: {
|
||||
id: ERROR_LOGIN_FAILED,
|
||||
defaultMessage: 'Logon failed. Please verify your credentials and try again.'
|
||||
},
|
||||
[ERROR_HTTP_NETWORK_ERROR]: {
|
||||
id: ERROR_HTTP_NETWORK_ERROR,
|
||||
defaultMessage: 'Network error. Please check your connection and try again.'
|
||||
},
|
||||
[ERROR_HTTP_UNEXPECTED_RESPONSE_STATUS]: {
|
||||
id: ERROR_HTTP_UNEXPECTED_RESPONSE_STATUS,
|
||||
defaultMessage: 'Unexpected HTTP response: {status}. Please check your connection and try again.'
|
||||
},
|
||||
[ERROR_HTTP_UNEXPECTED_RESPONSE_STATE]: {
|
||||
id: ERROR_HTTP_UNEXPECTED_RESPONSE_STATE,
|
||||
defaultMessage: 'Unexpected response state: {state}'
|
||||
}
|
||||
});
|
||||
|
||||
// Error with values.
|
||||
export class ExtendedError extends Error {
|
||||
values = undefined;
|
||||
@@ -50,7 +22,7 @@ export class ExtendedError extends Error {
|
||||
|
||||
// Component to translate error text with values.
|
||||
function ErrorMessageComponent(props) {
|
||||
const { error, intl } = props;
|
||||
const { error, t, values } = props;
|
||||
|
||||
if (!error) {
|
||||
return null;
|
||||
@@ -59,10 +31,31 @@ function ErrorMessageComponent(props) {
|
||||
const id = error.id ? error.id : error.message;
|
||||
const messageDescriptor = Object.assign({}, {
|
||||
id,
|
||||
defaultMessage: error.id ? error.message : undefined
|
||||
}, translations[id]);
|
||||
defaultMessage: error.id ? error.message : undefined,
|
||||
values: {
|
||||
...error.values,
|
||||
...values,
|
||||
},
|
||||
});
|
||||
|
||||
return intl.formatMessage(messageDescriptor, error.values);
|
||||
switch (messageDescriptor.id) {
|
||||
case ERROR_LOGIN_VALIDATE_MISSINGUSERNAME:
|
||||
return t("konnect.error.login.validate.missingUsername", "Enter a valid value.", messageDescriptor.values);
|
||||
case ERROR_LOGIN_VALIDATE_MISSINGPASSWORD:
|
||||
return t("konnect.error.login.validate.missingPassword", "Enter your password.");
|
||||
case ERROR_LOGIN_FAILED:
|
||||
return t("konnect.error.login.failed", "Logon failed. Please verify your credentials and try again.");
|
||||
case ERROR_HTTP_NETWORK_ERROR:
|
||||
return t("konnect.error.http.networkError", "Network error. Please check your connection and try again.");
|
||||
case ERROR_HTTP_UNEXPECTED_RESPONSE_STATUS:
|
||||
return t("konnect.error.http.unexpectedResponseStatus", "Unexpected HTTP response: {{status}}. Please check your connection and try again.", messageDescriptor.values);
|
||||
case ERROR_HTTP_UNEXPECTED_RESPONSE_STATE:
|
||||
return t("konnect.error.http.unexpectedResponseState", "Unexpected response state: {{state}}", messageDescriptor.values);
|
||||
default:
|
||||
}
|
||||
|
||||
const f = t;
|
||||
return f(messageDescriptor.defaultMessage, messageDescriptor.values);
|
||||
}
|
||||
|
||||
export const ErrorMessage = injectIntl(ErrorMessageComponent);
|
||||
export const ErrorMessage = withTranslation()(ErrorMessageComponent);
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
/* not so fancy background */
|
||||
|
||||
#bg {
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
#bg > div {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-size: cover;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
background-image: url(./images/loginscreen-bg.svg);
|
||||
z-index: 0;
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
import i18n from 'i18next';
|
||||
import { initReactI18next } from 'react-i18next';
|
||||
|
||||
import resourcesToBackend from 'i18next-resources-to-backend';
|
||||
import LanguageDetector, { CustomDetector } from 'i18next-browser-languagedetector';
|
||||
|
||||
import queryString from 'query-string';
|
||||
|
||||
import locales from './locales';
|
||||
|
||||
const config = {
|
||||
uiLocalesQueryName: 'ui_locales', // Same as OIDC uses.
|
||||
uiLocaleCookieName: 'ui_locale', // For domain wide syncing, not set here.
|
||||
uiLocaleLocalStorageName: 'lico.identifier_ui_locale', // Sufficiently unique, set here.
|
||||
}
|
||||
|
||||
const supportedLanguages = locales.map((locale) => {
|
||||
return locale.locale;
|
||||
});
|
||||
|
||||
const queryUiLocalesDetector: CustomDetector = {
|
||||
name: 'queryUiLocales',
|
||||
lookup: (options): string | string[] | undefined => {
|
||||
const query = queryString.parse(document.location.search);
|
||||
const ui_locales = query[config.uiLocalesQueryName];
|
||||
if (!ui_locales) {
|
||||
return;
|
||||
}
|
||||
if (Array.isArray(ui_locales)) {
|
||||
return ui_locales as string[];
|
||||
} else {
|
||||
return ui_locales.split(' ');
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
const languageDetector = new LanguageDetector();
|
||||
languageDetector.addDetector(queryUiLocalesDetector);
|
||||
|
||||
i18n
|
||||
.use(resourcesToBackend((language, namespace, callback) => {
|
||||
import(
|
||||
/* webpackMode: "lazy-once" */
|
||||
/* webpackInclude: /\.json$/ */
|
||||
/* webpackChunkName: "all-i18n-data" */
|
||||
/* webpackPrefetch: true */
|
||||
`./locales/${language}/${namespace}.json`
|
||||
)
|
||||
.then((resources) => {
|
||||
callback(null, resources)
|
||||
})
|
||||
.catch((error) => {
|
||||
callback(error, null)
|
||||
})
|
||||
}))
|
||||
.use(languageDetector)
|
||||
.use(initReactI18next)
|
||||
// init i18next
|
||||
// for all options read: https://www.i18next.com/overview/configuration-options
|
||||
.init({
|
||||
fallbackLng: 'en-GB',
|
||||
supportedLngs: [...supportedLanguages],
|
||||
cleanCode: true,
|
||||
returnEmptyString: false,
|
||||
debug: false,
|
||||
|
||||
detection: {
|
||||
/* https://github.com/i18next/i18next-browser-languageDetector */
|
||||
order: [queryUiLocalesDetector.name, 'cookie', 'localStorage', 'navigator'],
|
||||
lookupCookie: config.uiLocaleCookieName,
|
||||
lookupLocalStorage: config.uiLocaleLocalStorageName,
|
||||
caches: ['localStorage'],
|
||||
},
|
||||
|
||||
interpolation: {
|
||||
escapeValue: false,
|
||||
},
|
||||
});
|
||||
|
||||
export default i18n;
|
||||
@@ -0,0 +1,2 @@
|
||||
app-icon.svg
|
||||
app-icon-*.png
|
||||
@@ -0,0 +1,42 @@
|
||||
# Tools
|
||||
|
||||
CONVERT ?= convert
|
||||
IDENTIFY ?= identify
|
||||
BASE64 ?= base64
|
||||
ENVSUBST ?= envsubst
|
||||
SCOUR ?= scour
|
||||
INKSCAPE ?= inkscape
|
||||
|
||||
# Variables
|
||||
|
||||
STATIC ?= ../../public/static
|
||||
ICON ?= lico-icon.svg
|
||||
|
||||
# Build
|
||||
|
||||
all: app-icon.svg
|
||||
|
||||
.PHONY: icons
|
||||
icons: $(STATIC)/favicon.ico
|
||||
|
||||
.PHONY: $(STATIC)/favicon.ico
|
||||
$(STATIC)/favicon.ico: app-icon-rounded-256x256.png
|
||||
$(CONVERT) -background transparent $< -define icon:auto-resize=16,32,48,64,128,256 $@
|
||||
|
||||
app-icon.svg: $(ICON)
|
||||
cp -vaf $< $@
|
||||
|
||||
app-icon-whitebox-256x256.png: app-icon.svg
|
||||
$(INKSCAPE) -z -e $@.tmp -w 204.8 -h 204.8 -b white -y 1.0 $<
|
||||
$(CONVERT) $@.tmp -background white -gravity center -extent 256x256 $@
|
||||
@$(RM) $@.tmp
|
||||
|
||||
app-icon-rounded-256x256.png: app-icon-whitebox-256x256.png
|
||||
$(CONVERT) -size 256x256 xc:none -draw "roundrectangle 2,2,252,252,126,126" $@.tmp.png
|
||||
$(CONVERT) $< -matte $@.tmp.png -compose DstIn -composite $@
|
||||
@$(RM) $@.tmp.png
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
$(RM) app-icon-*.png || true
|
||||
$(RM) app-icon.svg || true
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 86 KiB |
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
|
||||
<g>
|
||||
<path style="fill:#414141;" d="M14.3,2.3c-3.9-0.9-7.5,0.5-9.7,3.1l7.5,0v0c0,0,0,0,0,0c3.7,0,6.7,3,6.7,6.6c0,3.7-3,6.6-6.7,6.6
|
||||
c0,0,0,0,0,0l-7.5,0C6.4,20.7,9,22,12,22c6.1,0,11-5.5,9.8-11.9C21.1,6.3,18.1,3.1,14.3,2.3z"/>
|
||||
<polygon style="fill:#0072BC;" points="15.8,12 10.8,7 10.8,10.3 2,10.3 2,13.7 10.8,13.7 10.8,17 "/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 685 B |
@@ -0,0 +1,32 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="1920" height="1080" preserveAspectRatio="none" viewBox="0 0 1920 1080">
|
||||
<g clip-path="url("#SvgjsClipPath1039")" fill="none">
|
||||
<circle r="180" cx="129.17" cy="133.37" stroke="#0d51d9" stroke-opacity="0.25" stroke-width="2"></circle>
|
||||
<circle r="180" cx="866.4" cy="819.73" stroke="#0d51d9" stroke-opacity="0.25" stroke-width="2"></circle>
|
||||
<circle r="166.485" cx="1209.08" cy="856.22" stroke="#0d51d9" stroke-opacity="0.25" stroke-width="2"></circle>
|
||||
<circle r="319.96" cx="1455.14" cy="182.11" stroke="#0d51d9" stroke-opacity="0.25" stroke-width="2"></circle>
|
||||
<circle r="359.475" cx="746.69" cy="499.07" stroke="#0d51d9" stroke-opacity="0.25" stroke-width="2"></circle>
|
||||
<circle r="176.48" cx="1393.64" cy="84.76" stroke="#0d51d9" stroke-opacity="0.25" stroke-width="2"></circle>
|
||||
<circle r="100.755" cx="1851.69" cy="183.43" stroke="#0d51d9" stroke-opacity="0.25" stroke-width="2"></circle>
|
||||
<circle r="330.61" cx="1758.65" cy="829.71" stroke="#0d51d9" stroke-opacity="0.25" stroke-width="2"></circle>
|
||||
<circle r="221.495" cx="604.37" cy="31.19" stroke="#0d51d9" stroke-opacity="0.25" stroke-width="2"></circle>
|
||||
<circle r="127.345" cx="1110" cy="866.11" stroke="#0d51d9" stroke-opacity="0.25" stroke-width="2"></circle>
|
||||
<circle r="143.26" cx="1209.08" cy="714.12" stroke="#0d51d9" stroke-opacity="0.25" stroke-width="2"></circle>
|
||||
<circle r="109.325" cx="1687.2" cy="396.48" stroke="#0d51d9" stroke-opacity="0.25" stroke-width="2"></circle>
|
||||
<circle r="229.51" cx="1469.76" cy="840.69" stroke="#0d51d9" stroke-opacity="0.25" stroke-width="2"></circle>
|
||||
<circle r="162.63" cx="1090.59" cy="577.16" stroke="#0d51d9" stroke-opacity="0.25" stroke-width="2"></circle>
|
||||
<circle r="222.61" cx="66.93" cy="481.38" stroke="#0d51d9" stroke-opacity="0.25" stroke-width="2"></circle>
|
||||
<circle r="192.95" cx="228.28" cy="23.36" stroke="#0d51d9" stroke-opacity="0.25" stroke-width="2"></circle>
|
||||
<circle r="304.245" cx="1453.03" cy="791.48" stroke="#0d51d9" stroke-opacity="0.25" stroke-width="2"></circle>
|
||||
<circle r="100.16" cx="298.58" cy="1026.17" stroke="#0d51d9" stroke-opacity="0.25" stroke-width="2"></circle>
|
||||
<circle r="98.92" cx="540.42" cy="1003.91" stroke="#0d51d9" stroke-opacity="0.25" stroke-width="2"></circle>
|
||||
<circle r="94.615" cx="1046.82" cy="438.03" stroke="#0d51d9" stroke-opacity="0.25" stroke-width="2"></circle>
|
||||
<circle r="159.25" cx="106.75" cy="163.79" stroke="#0d51d9" stroke-opacity="0.25" stroke-width="2"></circle>
|
||||
<circle r="245.675" cx="769.03" cy="319.36" stroke="#0d51d9" stroke-opacity="0.25" stroke-width="2"></circle>
|
||||
<circle r="178.39" cx="690.45" cy="874.83" stroke="#0d51d9" stroke-opacity="0.25" stroke-width="2"></circle>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="SvgjsClipPath1039">
|
||||
<rect width="1920" height="1080" x="0" y="0"></rect>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.0 KiB |
@@ -1,13 +0,0 @@
|
||||
import 'kpop/static/css/base.css';
|
||||
import 'kpop/static/css/scrollbar.css';
|
||||
import './app.css';
|
||||
|
||||
import * as kpop from 'kpop/es/version';
|
||||
|
||||
import * as version from './version';
|
||||
|
||||
console.info(`Kopano Identifier build version: ${version.build}`); // eslint-disable-line no-console
|
||||
console.info(`Kopano Kpop build version: ${kpop.build}`); // eslint-disable-line no-console
|
||||
|
||||
// NOTE(longsleep): Load async, this enables code splitting via Webpack.
|
||||
import(/* webpackChunkName: "identifier-app" */ './app');
|
||||
@@ -0,0 +1,22 @@
|
||||
import React from 'react';
|
||||
import ReactDOM from 'react-dom';
|
||||
import { Provider } from 'react-redux';
|
||||
|
||||
import '@fontsource/roboto/300.css';
|
||||
import '@fontsource/roboto/400.css';
|
||||
import '@fontsource/roboto/500.css';
|
||||
import '@fontsource/roboto/700.css';
|
||||
|
||||
import './i18n';
|
||||
|
||||
import App from './App';
|
||||
import store from './store';
|
||||
|
||||
ReactDOM.render(
|
||||
<React.StrictMode>
|
||||
<Provider store={store as any}>
|
||||
<App/>
|
||||
</Provider>
|
||||
</React.StrictMode>,
|
||||
document.getElementById('root')
|
||||
);
|
||||
@@ -1,39 +0,0 @@
|
||||
{
|
||||
"konnect.loading.error.headline": "Verbindung zum Server fehlgeschlagen",
|
||||
"konnect.login.retryButton.label": "Wiederholen",
|
||||
"konnect.scopeDescription.aliasBasic": "Zugriff auf Ihre grundlegenden Benutzerinformationen",
|
||||
"konnect.scopeDescription.offlineAccess": "Dauerhaften Zugriff (läuft nicht ab)",
|
||||
"konnect.scopeDescription.scope": "Geltungsbereich: {scope}",
|
||||
"konnect.goodbye.headline": "Bis bald",
|
||||
"konnect.goodbye.subHeader": "sie sind jetzt von Ihrem Kopano Konto abgemeldet",
|
||||
"konnect.goodbye.message.close": "Sie können dieses Fenster jetzt schließen.",
|
||||
"konnect.goodbye.confirm.headline": "Hallo {displayName}",
|
||||
"konnect.goodbye.confirm.subHeader": "Bitte bestätigen Sie, dass Sie sich abmelden möchten",
|
||||
"konnect.goodbye.message.confirm": "Klicken Sie auf die Schaltfläche unten um sich aus Ihrem Kopano Konto abzumelden.",
|
||||
"konnect.goodbye.signoutButton.label": "Abmelden",
|
||||
"konnect.welcome.signoutButton.label": "Abmelden",
|
||||
"konnect.chooseaccount.headline": "Konto auswählen",
|
||||
"konnect.chooseaccount.subHeader": "um sich bei Kopano anzumelden",
|
||||
"konnect.chooseaccount.useOther.persona.label": "?",
|
||||
"konnect.chooseaccount.useOther.label": "Anderes Konto",
|
||||
"konnect.consent.headline": "Hi {displayName}",
|
||||
"konnect.consent.message": "{clientDisplayName} möchte",
|
||||
"konnect.consent.tooltip.client": "Wenn Sie \"Einverstanden\" klicken werden Sie zu {redirectURI} weitergeleitet",
|
||||
"konnect.consent.question": "{clientDisplayName} den Zugriff gestatten?",
|
||||
"konnect.consent.consequence": "Wenn Sie Einverstanden klicken, erhält die App Zugriff auf Ihre Informationen.",
|
||||
"konnect.consent.cancelButton.label": "Abbrechen",
|
||||
"konnect.consent.allowButton.label": "Einverstanden",
|
||||
"konnect.login.headline": "Anmelden",
|
||||
"konnect.login.subHeader": "mit Ihrem Kopano Konto",
|
||||
"konnect.login.usernameField.label": "Benutzername",
|
||||
"konnect.login.passwordField.label": "Passwort",
|
||||
"konnect.login.nextButton.label": "Weiter",
|
||||
"konnect.welcome.headline": "Willkommen {displayName}",
|
||||
"konnect.welcome.message": "Sie sind angemeldet - super!",
|
||||
"konnect.error.login.validate.missingUsername": "Geben Sie einen Benutzername ein",
|
||||
"konnect.error.login.validate.missingPassword": "Geben Sie ein Passwort ein",
|
||||
"konnect.error.login.failed": "Anmeldung fehlgeschlagen. Bitte überprüfen Sie Ihre Eingabe und versuchen Sie es noch einmal.",
|
||||
"konnet.error.http.networkError": "Netzwerkfehler. Bitte prüfen Sie Ihre Verbindung und versuchen Sie es noch einmal.",
|
||||
"konnect.error.http.unexpectedResponseStatus": "Unerwartete HTTP-Antwort: {status}. Bitte prüfen Sie Ihre Verbindung und versuchen Sie es noch einmal.",
|
||||
"konnect.error.http.unexpectedResponseState": "Unerwarteter Antwort-Status: {state}"
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
{
|
||||
"konnect": {
|
||||
"consent": {
|
||||
"message": "<0><0><0></0></0></0> möchte",
|
||||
"allowButton": {
|
||||
"label": "Einverstanden"
|
||||
},
|
||||
"question": "<1><0></0></1> den Zugriff gestatten?",
|
||||
"consequence": "Wenn Sie Einverstanden klicken, erhält die App Zugriff auf Ihre Informationen.",
|
||||
"cancelButton": {
|
||||
"label": "Abbrechen"
|
||||
},
|
||||
"tooltip": {
|
||||
"client": "Wenn Sie \"Einverstanden\" klicken werden Sie zu {{redirectURI}} weitergeleitet"
|
||||
},
|
||||
"headline": "Hallo {{displayName}}"
|
||||
},
|
||||
"chooseaccount": {
|
||||
"useOther": {
|
||||
"persona": {
|
||||
"label": "?"
|
||||
},
|
||||
"label": "Anderes Konto"
|
||||
},
|
||||
"headline": "Konto auswählen",
|
||||
"subHeader": "das angemeldet werden soll"
|
||||
},
|
||||
"scopeDescription": {
|
||||
"aliasBasic": "Zugriff auf Ihre grundlegenden Benutzerinformationen",
|
||||
"offlineAccess": "Dauerhaften Zugriff (läuft nicht ab)",
|
||||
"scope": "Geltungsbereich: {{scope}}"
|
||||
},
|
||||
"login": {
|
||||
"usernameField": {
|
||||
"placeholder": {
|
||||
"email": "E-Mail",
|
||||
"identity": "Identität",
|
||||
"username": "Benutzername"
|
||||
}
|
||||
},
|
||||
"nextButton": {
|
||||
"label": "Weiter"
|
||||
},
|
||||
"passwordField": {
|
||||
"label": "Passwort"
|
||||
},
|
||||
"retryButton": {
|
||||
"label": "Wiederholen"
|
||||
},
|
||||
"headline": "Anmelden"
|
||||
},
|
||||
"error": {
|
||||
"login": {
|
||||
"validate": {
|
||||
"missingUsername": "Geben Sie einen gültigen Wert ein.",
|
||||
"missingPassword": "Geben Sie ein Passwort ein."
|
||||
},
|
||||
"failed": "Anmeldung fehlgeschlagen. Bitte überprüfen Sie Ihre Eingabe und versuchen Sie es noch einmal."
|
||||
},
|
||||
"http": {
|
||||
"networkError": "Netzwerkfehler. Bitte prüfen Sie Ihre Verbindung und versuchen Sie es noch einmal.",
|
||||
"unexpectedResponseStatus": "Unerwartete HTTP-Antwort: {{status}}. Bitte prüfen Sie Ihre Verbindung und versuchen Sie es noch einmal.",
|
||||
"unexpectedResponseState": "Unerwarteter Antwort-Status: {{state}}"
|
||||
}
|
||||
},
|
||||
"loading": {
|
||||
"error": {
|
||||
"headline": "Verbindung zum Server fehlgeschlagen"
|
||||
}
|
||||
},
|
||||
"goodbye": {
|
||||
"headline": "Bis bald",
|
||||
"confirm": {
|
||||
"headline": "Hallo {{displayName}}",
|
||||
"subHeader": "Bitte bestätigen Sie, dass Sie sich abmelden möchten"
|
||||
},
|
||||
"message": {
|
||||
"confirm": "Klicken Sie auf die Schaltfläche unten um sich aus Ihrem Konto abzumelden.",
|
||||
"close": "Sie können dieses Fenster jetzt schließen."
|
||||
},
|
||||
"signoutButton": {
|
||||
"label": "Abmelden"
|
||||
},
|
||||
"subHeader": "sie sind jetzt abgemeldet"
|
||||
},
|
||||
"welcome": {
|
||||
"signoutButton": {
|
||||
"label": "Abmelden"
|
||||
},
|
||||
"headline": "Willkommen {{displayName}}",
|
||||
"message": "Sie sind angemeldet - super!"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
{
|
||||
"konnect.loading.error.headline": "",
|
||||
"konnect.login.retryButton.label": "",
|
||||
"konnect.scopeDescription.aliasBasic": "",
|
||||
"konnect.scopeDescription.offlineAccess": "",
|
||||
"konnect.scopeDescription.scope": "",
|
||||
"konnect.goodbye.headline": "",
|
||||
"konnect.goodbye.subHeader": "",
|
||||
"konnect.goodbye.message.close": "",
|
||||
"konnect.goodbye.confirm.headline": "",
|
||||
"konnect.goodbye.confirm.subHeader": "",
|
||||
"konnect.goodbye.message.confirm": "",
|
||||
"konnect.goodbye.signoutButton.label": "",
|
||||
"konnect.welcome.signoutButton.label": "",
|
||||
"konnect.chooseaccount.headline": "",
|
||||
"konnect.chooseaccount.subHeader": "",
|
||||
"konnect.chooseaccount.useOther.persona.label": "",
|
||||
"konnect.chooseaccount.useOther.label": "",
|
||||
"konnect.consent.headline": "",
|
||||
"konnect.consent.message": "",
|
||||
"konnect.consent.tooltip.client": "",
|
||||
"konnect.consent.question": "",
|
||||
"konnect.consent.consequence": "",
|
||||
"konnect.consent.cancelButton.label": "",
|
||||
"konnect.consent.allowButton.label": "",
|
||||
"konnect.login.headline": "",
|
||||
"konnect.login.subHeader": "",
|
||||
"konnect.login.usernameField.label": "",
|
||||
"konnect.login.passwordField.label": "",
|
||||
"konnect.login.nextButton.label": "",
|
||||
"konnect.welcome.headline": "",
|
||||
"konnect.welcome.message": "",
|
||||
"konnect.error.login.validate.missingUsername": "",
|
||||
"konnect.error.login.validate.missingPassword": "",
|
||||
"konnect.error.login.failed": "",
|
||||
"konnet.error.http.networkError": "",
|
||||
"konnect.error.http.unexpectedResponseStatus": "",
|
||||
"konnect.error.http.unexpectedResponseState": ""
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"konnect": {
|
||||
"consent": {
|
||||
"allowButton": {},
|
||||
"cancelButton": {},
|
||||
"tooltip": {}
|
||||
},
|
||||
"chooseaccount": {
|
||||
"useOther": {
|
||||
"persona": {}
|
||||
}
|
||||
},
|
||||
"scopeDescription": {},
|
||||
"login": {
|
||||
"usernameField": {
|
||||
"placeholder": {}
|
||||
},
|
||||
"nextButton": {},
|
||||
"passwordField": {},
|
||||
"retryButton": {}
|
||||
},
|
||||
"error": {
|
||||
"login": {
|
||||
"validate": {}
|
||||
},
|
||||
"http": {}
|
||||
},
|
||||
"loading": {
|
||||
"error": {}
|
||||
},
|
||||
"goodbye": {
|
||||
"confirm": {},
|
||||
"message": {},
|
||||
"signoutButton": {}
|
||||
},
|
||||
"welcome": {
|
||||
"signoutButton": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
{
|
||||
"konnect.loading.error.headline": "La connexion au serveur a échoué",
|
||||
"konnect.login.retryButton.label": "Réessayer",
|
||||
"konnect.scopeDescription.aliasBasic": "Consulter les informations de base de votre compte",
|
||||
"konnect.scopeDescription.offlineAccess": "Conserver les autorisations d'accès à l'avenir",
|
||||
"konnect.scopeDescription.scope": "Portée : {scope}",
|
||||
"konnect.goodbye.headline": "Au revoir",
|
||||
"konnect.goodbye.subHeader": "vous avez été déconnecté de Kopano",
|
||||
"konnect.goodbye.message.close": "Vous pouvez fermer cette fenêtre à présent.",
|
||||
"konnect.goodbye.confirm.headline": "Bonjour {displayName}",
|
||||
"konnect.goodbye.confirm.subHeader": "Confirmer votre déconnexion",
|
||||
"konnect.goodbye.message.confirm": "Cliquer le bouton ci-dessous, pour quitter Kopano.",
|
||||
"konnect.goodbye.signoutButton.label": "Quitter",
|
||||
"konnect.welcome.signoutButton.label": "Quitter",
|
||||
"konnect.chooseaccount.headline": "Choisir un compte",
|
||||
"konnect.chooseaccount.subHeader": "pour vous authentifier dans Kopano",
|
||||
"konnect.chooseaccount.useOther.persona.label": "?",
|
||||
"konnect.chooseaccount.useOther.label": "Utiliser un autre compte",
|
||||
"konnect.consent.headline": "Bonjour {displayName}",
|
||||
"konnect.consent.message": "{clientDisplayName} souhaite",
|
||||
"konnect.consent.tooltip.client": "En cliquant \"Autoriser\" vous serez redirigé vers : {redirectURI}",
|
||||
"konnect.consent.question": "Autoriser {clientDisplayName} à faire cela ?",
|
||||
"konnect.consent.consequence": "En cliquant, vous autoriser l'app à accéder à vos informations.",
|
||||
"konnect.consent.cancelButton.label": "Annuler",
|
||||
"konnect.consent.allowButton.label": "Autoriser",
|
||||
"konnect.login.headline": "Identification",
|
||||
"konnect.login.subHeader": "avec vos identifiants Kopano",
|
||||
"konnect.login.usernameField.label": "Utilisateur",
|
||||
"konnect.login.passwordField.label": "Mot de passe",
|
||||
"konnect.login.nextButton.label": "Suivant",
|
||||
"konnect.welcome.headline": "Bienvenue {displayName}",
|
||||
"konnect.welcome.message": "Magnifique - Vous êtes connecté !",
|
||||
"konnect.error.login.validate.missingUsername": "Saisir un identifiant",
|
||||
"konnect.error.login.validate.missingPassword": "Saisir un mot de passe",
|
||||
"konnect.error.login.failed": "Echec de connexion. Vérifier vos identifiants et essayer à nouveau.",
|
||||
"konnet.error.http.networkError": "Erreur réseau. Vérifier votre connexion, et réessayer.",
|
||||
"konnect.error.http.unexpectedResponseStatus": "Erreur HTTP inattendue : {status}. Vérifier votre connexion et réessayer.",
|
||||
"konnect.error.http.unexpectedResponseState": "Erreur d'état inattendue : {state}"
|
||||
}
|
||||
@@ -0,0 +1,91 @@
|
||||
{
|
||||
"konnect": {
|
||||
"consent": {
|
||||
"message": "<0><0><0></0></0></0> souhaite",
|
||||
"allowButton": {
|
||||
"label": "Autoriser"
|
||||
},
|
||||
"question": "Autoriser <1><0></0></1> à faire cela?",
|
||||
"consequence": "En cliquant, vous autoriser l'app à accéder à vos informations.",
|
||||
"cancelButton": {
|
||||
"label": "Annuler"
|
||||
},
|
||||
"tooltip": {
|
||||
"client": "En cliquant \"Autoriser\" vous serez redirigé vers: {{redirectURI}}"
|
||||
},
|
||||
"headline": "Bonjour {{displayName}}"
|
||||
},
|
||||
"chooseaccount": {
|
||||
"useOther": {
|
||||
"persona": {
|
||||
"label": "?"
|
||||
},
|
||||
"label": "Utiliser un autre compte"
|
||||
},
|
||||
"headline": "Choisir un compte",
|
||||
"subHeader": "identification"
|
||||
},
|
||||
"scopeDescription": {
|
||||
"aliasBasic": "Consulter les informations de base de votre compte",
|
||||
"offlineAccess": "Conserver les autorisations d'accès à l'avenir",
|
||||
"scope": "Portée : {{scope}}"
|
||||
},
|
||||
"login": {
|
||||
"usernameField": {
|
||||
"placeholder": {
|
||||
"username": "Utilisateur"
|
||||
}
|
||||
},
|
||||
"nextButton": {
|
||||
"label": "Suivant"
|
||||
},
|
||||
"passwordField": {
|
||||
"label": "Mot de passe"
|
||||
},
|
||||
"retryButton": {
|
||||
"label": "Réessayer"
|
||||
},
|
||||
"headline": "Identification"
|
||||
},
|
||||
"error": {
|
||||
"login": {
|
||||
"validate": {
|
||||
"missingPassword": "Saisir un mot de passe."
|
||||
},
|
||||
"failed": "Echec de connexion. Vérifier vos identifiants et essayer à nouveau."
|
||||
},
|
||||
"http": {
|
||||
"networkError": "Erreur réseau. Vérifier votre connexion, et réessayer.",
|
||||
"unexpectedResponseStatus": "Erreur HTTP inattendue : {{status}}. Vérifier votre connexion et réessayer.",
|
||||
"unexpectedResponseState": "Erreur d'état inattendue : {{state}}"
|
||||
}
|
||||
},
|
||||
"loading": {
|
||||
"error": {
|
||||
"headline": "La connexion au serveur a échoué"
|
||||
}
|
||||
},
|
||||
"goodbye": {
|
||||
"headline": "Au revoir",
|
||||
"confirm": {
|
||||
"headline": "Bonjour {{displayName}}",
|
||||
"subHeader": "confirmer votre déconnexion"
|
||||
},
|
||||
"message": {
|
||||
"confirm": "Cliquer le bouton ci-dessous, pour quitter.",
|
||||
"close": "Vous pouvez fermer cette fenêtre à présent."
|
||||
},
|
||||
"signoutButton": {
|
||||
"label": "Quitter"
|
||||
},
|
||||
"subHeader": "vous avez été déconnecté"
|
||||
},
|
||||
"welcome": {
|
||||
"signoutButton": {
|
||||
"label": "Quitter"
|
||||
},
|
||||
"headline": "Bienvenue {{displayName}}",
|
||||
"message": "Magnifique - Vous êtes connecté!"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
{
|
||||
"konnect.loading.error.headline": "सर्वर से कनेक्ट करने में विफल",
|
||||
"konnect.login.retryButton.label": "पुन: प्रयास करें",
|
||||
"konnect.scopeDescription.aliasBasic": "अपनी मूल खाता जानकारी देखे",
|
||||
"konnect.scopeDescription.offlineAccess": "अनुमत पहुंच को लगातार और हमेशा बनाए रखें",
|
||||
"konnect.scopeDescription.scope": "क्षेत्र: {scope}",
|
||||
"konnect.goodbye.headline": "अलविदा",
|
||||
"konnect.goodbye.subHeader": "आपको अपने Kopano खाते से साइन आउट कर दिया गया है",
|
||||
"konnect.goodbye.message.close": "अब आप इस विंडो को बंद कर सकते हैं.",
|
||||
"konnect.goodbye.confirm.headline": "नमस्ते {displayName}",
|
||||
"konnect.goodbye.confirm.subHeader": "कृपया साइन आउट की पुष्टि करें",
|
||||
"konnect.goodbye.message.confirm": "अपने Kopano खाते से साइन आउट करने के लिए नीचे दिए गए बटन को दबाएं.",
|
||||
"konnect.goodbye.signoutButton.label": "साइन आउट",
|
||||
"konnect.welcome.signoutButton.label": "साइन आउट",
|
||||
"konnect.chooseaccount.headline": "खाता चुनें",
|
||||
"konnect.chooseaccount.subHeader": "Kopano में साइन इन करने के लिए",
|
||||
"konnect.chooseaccount.useOther.persona.label": "?",
|
||||
"konnect.chooseaccount.useOther.label": "दूसरे खाते का उपयोग करें",
|
||||
"konnect.consent.headline": "नमस्ते {displayName}",
|
||||
"konnect.consent.message": "{clientDisplayName} चाहते है की",
|
||||
"konnect.consent.tooltip.client": "\"अनुमति\" पर क्लिक करने से आपको {redirecturI} पे पुनर्निर्देशित किया जायेगा",
|
||||
"konnect.consent.question": "क्या {clientDisplayName} को ये करने की अनुमति देना चाहते है?",
|
||||
"konnect.consent.consequence": "अनुमति पर क्लिक करके, आप इस एप्लिकेशन को आपकी जानकारी का उपयोग करने की अनुमति देते हैं.",
|
||||
"konnect.consent.cancelButton.label": "रद्द करें",
|
||||
"konnect.consent.allowButton.label": "अनुमति दीजिये",
|
||||
"konnect.login.headline": "साइन इन",
|
||||
"konnect.login.subHeader": "अपने Kopano खाते के साथ",
|
||||
"konnect.login.usernameField.label": "उपयोगकर्ता नाम",
|
||||
"konnect.login.passwordField.label": "पासवर्ड",
|
||||
"konnect.login.nextButton.label": "अगला",
|
||||
"konnect.welcome.headline": "स्वागत हे {displayName}",
|
||||
"konnect.welcome.message": "आप साइंड इन हैं - अद्भुत!",
|
||||
"konnect.error.login.validate.missingUsername": "उपयोगकर्ता नाम डालिये",
|
||||
"konnect.error.login.validate.missingPassword": "पासवर्ड डालिए",
|
||||
"konnect.error.login.failed": "लोगऑन नाकाम रहा. कृपया अपने क्रेडेंशियल्स जांचे और पुनः प्रयास करें.",
|
||||
"konnet.error.http.networkError": "नेटवर्क त्रुटि। कृपया अपने संपर्क की जांच करे और फिर से प्रयास करें.",
|
||||
"konnect.error.http.unexpectedResponseStatus": "अनपेक्षित HTTP प्रतिक्रिया: {status}. कृपया अपने संपर्क की जांच करे और फिर से प्रयास करें.",
|
||||
"konnect.error.http.unexpectedResponseState": "अनपेक्षित प्रतिक्रिया अवस्था: {state}"
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
{
|
||||
"konnect.loading.error.headline": "",
|
||||
"konnect.login.retryButton.label": "",
|
||||
"konnect.scopeDescription.aliasBasic": "",
|
||||
"konnect.scopeDescription.offlineAccess": "",
|
||||
"konnect.scopeDescription.scope": "",
|
||||
"konnect.goodbye.headline": "",
|
||||
"konnect.goodbye.subHeader": "",
|
||||
"konnect.goodbye.message.close": "",
|
||||
"konnect.goodbye.confirm.headline": "",
|
||||
"konnect.goodbye.confirm.subHeader": "",
|
||||
"konnect.goodbye.message.confirm": "",
|
||||
"konnect.goodbye.signoutButton.label": "",
|
||||
"konnect.welcome.signoutButton.label": "",
|
||||
"konnect.chooseaccount.headline": "",
|
||||
"konnect.chooseaccount.subHeader": "",
|
||||
"konnect.chooseaccount.useOther.persona.label": "",
|
||||
"konnect.chooseaccount.useOther.label": "",
|
||||
"konnect.consent.headline": "",
|
||||
"konnect.consent.message": "",
|
||||
"konnect.consent.tooltip.client": "",
|
||||
"konnect.consent.question": "",
|
||||
"konnect.consent.consequence": "",
|
||||
"konnect.consent.cancelButton.label": "",
|
||||
"konnect.consent.allowButton.label": "",
|
||||
"konnect.login.headline": "",
|
||||
"konnect.login.subHeader": "",
|
||||
"konnect.login.usernameField.label": "",
|
||||
"konnect.login.passwordField.label": "",
|
||||
"konnect.login.nextButton.label": "",
|
||||
"konnect.welcome.headline": "",
|
||||
"konnect.welcome.message": "",
|
||||
"konnect.error.login.validate.missingUsername": "",
|
||||
"konnect.error.login.validate.missingPassword": "",
|
||||
"konnect.error.login.failed": "",
|
||||
"konnet.error.http.networkError": "",
|
||||
"konnect.error.http.unexpectedResponseStatus": "",
|
||||
"konnect.error.http.unexpectedResponseState": ""
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
{
|
||||
"konnect.loading.error.headline": "",
|
||||
"konnect.login.retryButton.label": "",
|
||||
"konnect.scopeDescription.aliasBasic": "",
|
||||
"konnect.scopeDescription.offlineAccess": "",
|
||||
"konnect.scopeDescription.scope": "",
|
||||
"konnect.goodbye.headline": "",
|
||||
"konnect.goodbye.subHeader": "",
|
||||
"konnect.goodbye.message.close": "",
|
||||
"konnect.goodbye.confirm.headline": "",
|
||||
"konnect.goodbye.confirm.subHeader": "",
|
||||
"konnect.goodbye.message.confirm": "",
|
||||
"konnect.goodbye.signoutButton.label": "",
|
||||
"konnect.welcome.signoutButton.label": "",
|
||||
"konnect.chooseaccount.headline": "",
|
||||
"konnect.chooseaccount.subHeader": "",
|
||||
"konnect.chooseaccount.useOther.persona.label": "",
|
||||
"konnect.chooseaccount.useOther.label": "",
|
||||
"konnect.consent.headline": "",
|
||||
"konnect.consent.message": "",
|
||||
"konnect.consent.tooltip.client": "",
|
||||
"konnect.consent.question": "",
|
||||
"konnect.consent.consequence": "",
|
||||
"konnect.consent.cancelButton.label": "",
|
||||
"konnect.consent.allowButton.label": "",
|
||||
"konnect.login.headline": "",
|
||||
"konnect.login.subHeader": "",
|
||||
"konnect.login.usernameField.label": "",
|
||||
"konnect.login.passwordField.label": "",
|
||||
"konnect.login.nextButton.label": "",
|
||||
"konnect.welcome.headline": "",
|
||||
"konnect.welcome.message": "",
|
||||
"konnect.error.login.validate.missingUsername": "",
|
||||
"konnect.error.login.validate.missingPassword": "",
|
||||
"konnect.error.login.failed": "",
|
||||
"konnet.error.http.networkError": "",
|
||||
"konnect.error.http.unexpectedResponseStatus": "",
|
||||
"konnect.error.http.unexpectedResponseState": ""
|
||||
}
|
||||
@@ -1,50 +0,0 @@
|
||||
// NOTE(longsleep): This loads all translation files to be included in the
|
||||
// app bundle. They are not that large.
|
||||
|
||||
// Please keep imports and exports alphabetically sorted.
|
||||
import de from './de.json';
|
||||
import fr from './fr.json';
|
||||
import hi from './hi.json';
|
||||
import is from './is.json';
|
||||
import nb from './nb.json';
|
||||
import nl from './nl.json';
|
||||
import ptPT from './pt_PT.json';
|
||||
import ru from './ru.json';
|
||||
|
||||
function enableLocales(locales, enabled) {
|
||||
if (process.env.NODE_ENV !== 'production') { // eslint-disable-line no-undef
|
||||
return locales;
|
||||
}
|
||||
return enabled.reduce(function(value, locale) {
|
||||
value[locale] = locales[locale];
|
||||
return value;
|
||||
}, {});
|
||||
}
|
||||
|
||||
// Locales must follow BCP 47 format (https://tools.ietf.org/html/rfc5646).
|
||||
const locales = enableLocales({
|
||||
de,
|
||||
'en-GB': {},
|
||||
'en-US': {},
|
||||
fr,
|
||||
hi,
|
||||
is,
|
||||
nb,
|
||||
nl,
|
||||
'pt-PT': ptPT,
|
||||
ru
|
||||
}, [
|
||||
// List of enabled languages in production builds.
|
||||
'de',
|
||||
'en-GB',
|
||||
'en-US',
|
||||
'fr',
|
||||
'hi',
|
||||
'is',
|
||||
'nb',
|
||||
'nl',
|
||||
'pt-PT',
|
||||
'ru'
|
||||
]);
|
||||
|
||||
export default locales;
|
||||
@@ -0,0 +1,15 @@
|
||||
import allLocales from './locales.json';
|
||||
|
||||
interface Locale {
|
||||
locale: string,
|
||||
name: string,
|
||||
nativeName: string,
|
||||
}
|
||||
|
||||
function enableLocales(locales: Locale[]): Locale[] {
|
||||
return locales;
|
||||
}
|
||||
|
||||
export const locales = enableLocales(allLocales);
|
||||
|
||||
export default locales;
|
||||
@@ -1,39 +0,0 @@
|
||||
{
|
||||
"konnect.loading.error.headline": "Mistókst að tengjast netþjóni",
|
||||
"konnect.login.retryButton.label": "Reyna aftur",
|
||||
"konnect.scopeDescription.aliasBasic": "Komast í grunnupplýsingar um þig",
|
||||
"konnect.scopeDescription.offlineAccess": "Viðhalda heimildunum alltaf og að eilífu (mundu mig)",
|
||||
"konnect.scopeDescription.scope": "Gildissvið: {scope}",
|
||||
"konnect.goodbye.headline": "Bless",
|
||||
"konnect.goodbye.subHeader": "útskráning Kopano-aðgangsins þíns tókst",
|
||||
"konnect.goodbye.message.close": "Þú getur lokað þessum glugga núna.",
|
||||
"konnect.goodbye.confirm.headline": "Halló {displayName}",
|
||||
"konnect.goodbye.confirm.subHeader": "vinsamlegast staðfestu útskráningu",
|
||||
"konnect.goodbye.message.confirm": "Smelltu á takkann fyrir neðan til að skrá þig út af Kopano aðganginum núna.",
|
||||
"konnect.goodbye.signoutButton.label": "Útskrá",
|
||||
"konnect.welcome.signoutButton.label": "Útskrá",
|
||||
"konnect.chooseaccount.headline": "Veldu aðgang",
|
||||
"konnect.chooseaccount.subHeader": "til að skrá þig inn í Kopano",
|
||||
"konnect.chooseaccount.useOther.persona.label": "?",
|
||||
"konnect.chooseaccount.useOther.label": "Nota annan aðgang",
|
||||
"konnect.consent.headline": "Hæ {displayName}",
|
||||
"konnect.consent.message": "{clientDisplayName} vill",
|
||||
"konnect.consent.tooltip.client": "Þegar þú smellir á \"Leyfa\" áframsendist þú á: {redirectURI}",
|
||||
"konnect.consent.question": "Leyfa {clientDisplayName} að gera þetta?",
|
||||
"konnect.consent.consequence": "Með því að smella á \"Leyfa\", leyfir þú þessu forriti að nota upplýsingarnar um þig.",
|
||||
"konnect.consent.cancelButton.label": "Hætta við",
|
||||
"konnect.consent.allowButton.label": "Leyfa",
|
||||
"konnect.login.headline": "Innskrá",
|
||||
"konnect.login.subHeader": "með Kopano-aðganginum þínum",
|
||||
"konnect.login.usernameField.label": "Notandanafn",
|
||||
"konnect.login.passwordField.label": "Lykilorð",
|
||||
"konnect.login.nextButton.label": "Næsta",
|
||||
"konnect.welcome.headline": "Halló {displayName}",
|
||||
"konnect.welcome.message": "Innskráningin tókst - frábært!",
|
||||
"konnect.error.login.validate.missingUsername": "Sláðu inn notandanafn",
|
||||
"konnect.error.login.validate.missingPassword": "Sláðu inn lykilorð",
|
||||
"konnect.error.login.failed": "Innskráning mistókst. Vinsamlegast staðfestu notandaupplýsingarnar og reyndu aftur.",
|
||||
"konnet.error.http.networkError": "Netvilla. Vinsamlegast athugaðu tenginguna þína og reyndu aftur.",
|
||||
"konnect.error.http.unexpectedResponseStatus": "Ófyrirsjáanlegt HTTP svar: {status}. Vinsamlegast athugaðu tenginguna þína og reyndu aftur.",
|
||||
"konnect.error.http.unexpectedResponseState": "Ófyrirsjáanleg svarstaða: {state}"
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
{
|
||||
"konnect.loading.error.headline": "",
|
||||
"konnect.login.retryButton.label": "",
|
||||
"konnect.scopeDescription.aliasBasic": "",
|
||||
"konnect.scopeDescription.offlineAccess": "",
|
||||
"konnect.scopeDescription.scope": "",
|
||||
"konnect.goodbye.headline": "",
|
||||
"konnect.goodbye.subHeader": "",
|
||||
"konnect.goodbye.message.close": "",
|
||||
"konnect.goodbye.confirm.headline": "",
|
||||
"konnect.goodbye.confirm.subHeader": "",
|
||||
"konnect.goodbye.message.confirm": "",
|
||||
"konnect.goodbye.signoutButton.label": "",
|
||||
"konnect.welcome.signoutButton.label": "",
|
||||
"konnect.chooseaccount.headline": "",
|
||||
"konnect.chooseaccount.subHeader": "",
|
||||
"konnect.chooseaccount.useOther.persona.label": "",
|
||||
"konnect.chooseaccount.useOther.label": "",
|
||||
"konnect.consent.headline": "",
|
||||
"konnect.consent.message": "",
|
||||
"konnect.consent.tooltip.client": "",
|
||||
"konnect.consent.question": "",
|
||||
"konnect.consent.consequence": "",
|
||||
"konnect.consent.cancelButton.label": "",
|
||||
"konnect.consent.allowButton.label": "",
|
||||
"konnect.login.headline": "",
|
||||
"konnect.login.subHeader": "",
|
||||
"konnect.login.usernameField.label": "",
|
||||
"konnect.login.passwordField.label": "",
|
||||
"konnect.login.nextButton.label": "",
|
||||
"konnect.welcome.headline": "",
|
||||
"konnect.welcome.message": "",
|
||||
"konnect.error.login.validate.missingUsername": "",
|
||||
"konnect.error.login.validate.missingPassword": "",
|
||||
"konnect.error.login.failed": "",
|
||||
"konnet.error.http.networkError": "",
|
||||
"konnect.error.http.unexpectedResponseStatus": "",
|
||||
"konnect.error.http.unexpectedResponseState": ""
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"konnect": {
|
||||
"consent": {
|
||||
"allowButton": {},
|
||||
"cancelButton": {},
|
||||
"tooltip": {}
|
||||
},
|
||||
"chooseaccount": {
|
||||
"useOther": {
|
||||
"persona": {}
|
||||
}
|
||||
},
|
||||
"scopeDescription": {},
|
||||
"login": {
|
||||
"usernameField": {
|
||||
"placeholder": {}
|
||||
},
|
||||
"nextButton": {},
|
||||
"passwordField": {},
|
||||
"retryButton": {}
|
||||
},
|
||||
"error": {
|
||||
"login": {
|
||||
"validate": {}
|
||||
},
|
||||
"http": {}
|
||||
},
|
||||
"loading": {
|
||||
"error": {}
|
||||
},
|
||||
"goodbye": {
|
||||
"confirm": {},
|
||||
"message": {},
|
||||
"signoutButton": {}
|
||||
},
|
||||
"welcome": {
|
||||
"signoutButton": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
{
|
||||
"konnect.loading.error.headline": "",
|
||||
"konnect.login.retryButton.label": "",
|
||||
"konnect.scopeDescription.aliasBasic": "",
|
||||
"konnect.scopeDescription.offlineAccess": "",
|
||||
"konnect.scopeDescription.scope": "",
|
||||
"konnect.goodbye.headline": "",
|
||||
"konnect.goodbye.subHeader": "",
|
||||
"konnect.goodbye.message.close": "",
|
||||
"konnect.goodbye.confirm.headline": "",
|
||||
"konnect.goodbye.confirm.subHeader": "",
|
||||
"konnect.goodbye.message.confirm": "",
|
||||
"konnect.goodbye.signoutButton.label": "",
|
||||
"konnect.welcome.signoutButton.label": "",
|
||||
"konnect.chooseaccount.headline": "",
|
||||
"konnect.chooseaccount.subHeader": "",
|
||||
"konnect.chooseaccount.useOther.persona.label": "",
|
||||
"konnect.chooseaccount.useOther.label": "",
|
||||
"konnect.consent.headline": "",
|
||||
"konnect.consent.message": "",
|
||||
"konnect.consent.tooltip.client": "",
|
||||
"konnect.consent.question": "",
|
||||
"konnect.consent.consequence": "",
|
||||
"konnect.consent.cancelButton.label": "",
|
||||
"konnect.consent.allowButton.label": "",
|
||||
"konnect.login.headline": "",
|
||||
"konnect.login.subHeader": "",
|
||||
"konnect.login.usernameField.label": "",
|
||||
"konnect.login.passwordField.label": "",
|
||||
"konnect.login.nextButton.label": "",
|
||||
"konnect.welcome.headline": "",
|
||||
"konnect.welcome.message": "",
|
||||
"konnect.error.login.validate.missingUsername": "",
|
||||
"konnect.error.login.validate.missingPassword": "",
|
||||
"konnect.error.login.failed": "",
|
||||
"konnet.error.http.networkError": "",
|
||||
"konnect.error.http.unexpectedResponseStatus": "",
|
||||
"konnect.error.http.unexpectedResponseState": ""
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
[
|
||||
{
|
||||
"locale": "de",
|
||||
"name": "German",
|
||||
"nativeName": "Deutsch",
|
||||
"orientation": {
|
||||
"characterOrder": "left-to-right",
|
||||
"lineOrder": "top-to-bottom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"locale": "en-GB",
|
||||
"name": "English",
|
||||
"nativeName": "English",
|
||||
"orientation": {
|
||||
"characterOrder": "left-to-right",
|
||||
"lineOrder": "top-to-bottom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"locale": "es",
|
||||
"name": "Spanish",
|
||||
"nativeName": "Español",
|
||||
"orientation": {
|
||||
"characterOrder": "left-to-right",
|
||||
"lineOrder": "top-to-bottom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"locale": "fr",
|
||||
"name": "French",
|
||||
"nativeName": "Français",
|
||||
"orientation": {
|
||||
"characterOrder": "left-to-right",
|
||||
"lineOrder": "top-to-bottom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"locale": "it",
|
||||
"name": "Italian",
|
||||
"nativeName": "Italiano",
|
||||
"orientation": {
|
||||
"characterOrder": "left-to-right",
|
||||
"lineOrder": "top-to-bottom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"locale": "nl",
|
||||
"name": "Dutch",
|
||||
"nativeName": "Nederlands",
|
||||
"orientation": {
|
||||
"characterOrder": "left-to-right",
|
||||
"lineOrder": "top-to-bottom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"locale": "zh-CN",
|
||||
"name": "Simplified Chinese",
|
||||
"nativeName": "简体中文",
|
||||
"orientation": {
|
||||
"characterOrder": "left-to-right",
|
||||
"lineOrder": "top-to-bottom"
|
||||
},
|
||||
"ietf": "zh_hans"
|
||||
}
|
||||
]
|
||||
@@ -1,39 +0,0 @@
|
||||
{
|
||||
"konnect.loading.error.headline": "Klarte ikke å forbinde med server",
|
||||
"konnect.login.retryButton.label": "Prøv igjen",
|
||||
"konnect.scopeDescription.aliasBasic": "Tilgang til informasjon om basiskonto",
|
||||
"konnect.scopeDescription.offlineAccess": "Behold den tillate tilgangen for alltid",
|
||||
"konnect.scopeDescription.scope": "Omfang: {scope}",
|
||||
"konnect.goodbye.headline": "Farvel",
|
||||
"konnect.goodbye.subHeader": "du har blitt logget ut fra din Kopano konto",
|
||||
"konnect.goodbye.message.close": "Du kan lukke dette vinduet nå.",
|
||||
"konnect.goodbye.confirm.headline": "Hallo {displayName}",
|
||||
"konnect.goodbye.confirm.subHeader": "vennligst bekreft utlogging",
|
||||
"konnect.goodbye.message.confirm": "Trykk på knappen under, for å logge ut av din Kopano konto.",
|
||||
"konnect.goodbye.signoutButton.label": "Logg ut",
|
||||
"konnect.welcome.signoutButton.label": "Logg ut",
|
||||
"konnect.chooseaccount.headline": "Velg en konto",
|
||||
"konnect.chooseaccount.subHeader": "for å logge inn i Kopano",
|
||||
"konnect.chooseaccount.useOther.persona.label": "?",
|
||||
"konnect.chooseaccount.useOther.label": "Bruk en annen konto",
|
||||
"konnect.consent.headline": "Hei {displayName}",
|
||||
"konnect.consent.message": "{clientDisplayName} ønsker",
|
||||
"konnect.consent.tooltip.client": "Ved å klikke på \"Tillatt\" så vil du bli ledet til: {redirectURI}",
|
||||
"konnect.consent.question": "Tillatt {clientDisplayName} å gjøre dette?",
|
||||
"konnect.consent.consequence": "Ved å klikke på Aksepter, så tillater du at appen bruker din informasjon.",
|
||||
"konnect.consent.cancelButton.label": "Avbryt",
|
||||
"konnect.consent.allowButton.label": "Tillat",
|
||||
"konnect.login.headline": "Logg inn",
|
||||
"konnect.login.subHeader": "med din Kopano konto",
|
||||
"konnect.login.usernameField.label": "Brukernavn",
|
||||
"konnect.login.passwordField.label": "Passord",
|
||||
"konnect.login.nextButton.label": "Neste",
|
||||
"konnect.welcome.headline": "Velkommen {displayName}",
|
||||
"konnect.welcome.message": "Du er logget på!",
|
||||
"konnect.error.login.validate.missingUsername": "Skriv inn et brukernavn",
|
||||
"konnect.error.login.validate.missingPassword": "Skriv inn et passord",
|
||||
"konnect.error.login.failed": "Logg inn feilet. Vennligst sjekk brukernavn/passord, og forsøk igjen.",
|
||||
"konnet.error.http.networkError": "Nettverksfeil. Sjekk din forbindelse, og forsøk igjen.",
|
||||
"konnect.error.http.unexpectedResponseStatus": "Uventet HTTP respons: {status}. Sjekk tilkoblingen din og prøv igjen.",
|
||||
"konnect.error.http.unexpectedResponseState": "Uventet svar-status: {state}"
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
{
|
||||
"konnect.loading.error.headline": "Kon niet met server verbinden",
|
||||
"konnect.login.retryButton.label": "Opnieuw",
|
||||
"konnect.scopeDescription.aliasBasic": "Basis accountgegevens weergeven",
|
||||
"konnect.scopeDescription.offlineAccess": "De toestemming voor altijd onthouden",
|
||||
"konnect.scopeDescription.scope": "Scope: {scope}",
|
||||
"konnect.goodbye.headline": "Tot ziens",
|
||||
"konnect.goodbye.subHeader": "je bent afgemeld van je Kopano account",
|
||||
"konnect.goodbye.message.close": "Dit venster kan nu worden gesloten.",
|
||||
"konnect.goodbye.confirm.headline": "Hallo {displayName}",
|
||||
"konnect.goodbye.confirm.subHeader": "bevestig afmelden",
|
||||
"konnect.goodbye.message.confirm": "Klik op onderstaande knop om af te melden van je Kopano account.",
|
||||
"konnect.goodbye.signoutButton.label": "Afmelden",
|
||||
"konnect.welcome.signoutButton.label": "Afmelden",
|
||||
"konnect.chooseaccount.headline": "Account kiezen",
|
||||
"konnect.chooseaccount.subHeader": "om aan te melden bij Kopano",
|
||||
"konnect.chooseaccount.useOther.persona.label": "?",
|
||||
"konnect.chooseaccount.useOther.label": "Gebruik een ander account",
|
||||
"konnect.consent.headline": "Hoi {displayName}",
|
||||
"konnect.consent.message": "{clientDisplayName} wil",
|
||||
"konnect.consent.tooltip.client": "Door op \"Toestaan\" te klikken word je doorverwezen naar: {redirectURI}",
|
||||
"konnect.consent.question": "{clientDisplayName} toestaan dit te doen?",
|
||||
"konnect.consent.consequence": "Door op Toestaan te klikken, krijgt deze app toestemming je informatie te gebruiken.",
|
||||
"konnect.consent.cancelButton.label": "Annuleren",
|
||||
"konnect.consent.allowButton.label": "Toestaan",
|
||||
"konnect.login.headline": "Aanmelden",
|
||||
"konnect.login.subHeader": "met je Kopano account",
|
||||
"konnect.login.usernameField.label": "Gebruikersnaam",
|
||||
"konnect.login.passwordField.label": "Wachtwoord",
|
||||
"konnect.login.nextButton.label": "Volgende",
|
||||
"konnect.welcome.headline": "Welkom {displayName}",
|
||||
"konnect.welcome.message": "Je bent aangemeld - fantastisch!",
|
||||
"konnect.error.login.validate.missingUsername": "Voer een gebruikersnaam in",
|
||||
"konnect.error.login.validate.missingPassword": "Voer een wachtwoord in",
|
||||
"konnect.error.login.failed": "Inloggen mislukt. Controleer logingegevens en probeer opnieuw.",
|
||||
"konnet.error.http.networkError": "Netwerk probleem. Controleer je verbinding en probeer opnieuw.",
|
||||
"konnect.error.http.unexpectedResponseStatus": "Onverwachte HTTP respons: {status}. Controleer je verbinding en probeer opnieuw.",
|
||||
"konnect.error.http.unexpectedResponseState": "Onverwachte respons status: {state}"
|
||||
}
|
||||
@@ -0,0 +1,91 @@
|
||||
{
|
||||
"konnect": {
|
||||
"consent": {
|
||||
"message": "<0><0><0></0></0></0> wil",
|
||||
"allowButton": {
|
||||
"label": "Toestaan"
|
||||
},
|
||||
"question": "<1><0></0></1> toestaan dit te doen?",
|
||||
"consequence": "Door op Toestaan te klikken, krijgt deze app toestemming je informatie te gebruiken.",
|
||||
"cancelButton": {
|
||||
"label": "Annuleren"
|
||||
},
|
||||
"tooltip": {
|
||||
"client": "Door op \"Toestaan\" te klikken word je doorverwezen naar: {{redirectURI}}"
|
||||
},
|
||||
"headline": "Hoi {{displayName}}"
|
||||
},
|
||||
"chooseaccount": {
|
||||
"useOther": {
|
||||
"persona": {
|
||||
"label": "?"
|
||||
},
|
||||
"label": "Gebruik een ander account"
|
||||
},
|
||||
"headline": "Account kiezen",
|
||||
"subHeader": "aanmelden"
|
||||
},
|
||||
"scopeDescription": {
|
||||
"aliasBasic": "Basis accountgegevens weergeven",
|
||||
"offlineAccess": "De toestemming voor altijd onthouden",
|
||||
"scope": "Scope: {{scope}}"
|
||||
},
|
||||
"login": {
|
||||
"usernameField": {
|
||||
"placeholder": {
|
||||
"username": "Gebruikersnaam"
|
||||
}
|
||||
},
|
||||
"nextButton": {
|
||||
"label": "Volgende"
|
||||
},
|
||||
"passwordField": {
|
||||
"label": "Wachtwoord"
|
||||
},
|
||||
"retryButton": {
|
||||
"label": "Opnieuw"
|
||||
},
|
||||
"headline": "Aanmelden"
|
||||
},
|
||||
"error": {
|
||||
"login": {
|
||||
"validate": {
|
||||
"missingPassword": "Voer een wachtwoord in."
|
||||
},
|
||||
"failed": "Inloggen mislukt. Controleer logingegevens en probeer opnieuw."
|
||||
},
|
||||
"http": {
|
||||
"networkError": "Netwerk probleem. Controleer je verbinding en probeer opnieuw.",
|
||||
"unexpectedResponseStatus": "Onverwachte HTTP respons: {{status}}. Controleer je verbinding en probeer opnieuw.",
|
||||
"unexpectedResponseState": "Onverwachte respons status: {{state}}"
|
||||
}
|
||||
},
|
||||
"loading": {
|
||||
"error": {
|
||||
"headline": "Kon niet met server verbinden"
|
||||
}
|
||||
},
|
||||
"goodbye": {
|
||||
"headline": "Tot ziens",
|
||||
"confirm": {
|
||||
"headline": "Hallo {{displayName}}",
|
||||
"subHeader": "bevestig afmelden"
|
||||
},
|
||||
"message": {
|
||||
"confirm": "Klik op onderstaande knop om af te melden van je account.",
|
||||
"close": "Dit venster kan nu worden gesloten."
|
||||
},
|
||||
"signoutButton": {
|
||||
"label": "Afmelden"
|
||||
},
|
||||
"subHeader": "je bent afgemeld van je account"
|
||||
},
|
||||
"welcome": {
|
||||
"signoutButton": {
|
||||
"label": "Afmelden"
|
||||
},
|
||||
"headline": "Welkom {{displayName}}",
|
||||
"message": "Je bent aangemeld - fantastisch!"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
{
|
||||
"konnect.loading.error.headline": "",
|
||||
"konnect.login.retryButton.label": "",
|
||||
"konnect.scopeDescription.aliasBasic": "",
|
||||
"konnect.scopeDescription.offlineAccess": "",
|
||||
"konnect.scopeDescription.scope": "",
|
||||
"konnect.goodbye.headline": "",
|
||||
"konnect.goodbye.subHeader": "",
|
||||
"konnect.goodbye.message.close": "",
|
||||
"konnect.goodbye.confirm.headline": "",
|
||||
"konnect.goodbye.confirm.subHeader": "",
|
||||
"konnect.goodbye.message.confirm": "",
|
||||
"konnect.goodbye.signoutButton.label": "",
|
||||
"konnect.welcome.signoutButton.label": "",
|
||||
"konnect.chooseaccount.headline": "",
|
||||
"konnect.chooseaccount.subHeader": "",
|
||||
"konnect.chooseaccount.useOther.persona.label": "",
|
||||
"konnect.chooseaccount.useOther.label": "",
|
||||
"konnect.consent.headline": "",
|
||||
"konnect.consent.message": "",
|
||||
"konnect.consent.tooltip.client": "",
|
||||
"konnect.consent.question": "",
|
||||
"konnect.consent.consequence": "",
|
||||
"konnect.consent.cancelButton.label": "",
|
||||
"konnect.consent.allowButton.label": "",
|
||||
"konnect.login.headline": "",
|
||||
"konnect.login.subHeader": "",
|
||||
"konnect.login.usernameField.label": "",
|
||||
"konnect.login.passwordField.label": "",
|
||||
"konnect.login.nextButton.label": "",
|
||||
"konnect.welcome.headline": "",
|
||||
"konnect.welcome.message": "",
|
||||
"konnect.error.login.validate.missingUsername": "",
|
||||
"konnect.error.login.validate.missingPassword": "",
|
||||
"konnect.error.login.failed": "",
|
||||
"konnet.error.http.networkError": "",
|
||||
"konnect.error.http.unexpectedResponseStatus": "",
|
||||
"konnect.error.http.unexpectedResponseState": ""
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
{
|
||||
"konnect.loading.error.headline": "Falhou a ligar ao servidor",
|
||||
"konnect.login.retryButton.label": "Tentar novamente",
|
||||
"konnect.scopeDescription.aliasBasic": "Aceder à sua informação básica da conta",
|
||||
"konnect.scopeDescription.offlineAccess": "Manter o acesso permitido de forma persistente e para sempre",
|
||||
"konnect.scopeDescription.scope": "Contexto: {scope}",
|
||||
"konnect.goodbye.headline": "Adeus",
|
||||
"konnect.goodbye.subHeader": "a sessão da sua conta Kopano foi terminada",
|
||||
"konnect.goodbye.message.close": "Pode fechar esta janela agora.",
|
||||
"konnect.goodbye.confirm.headline": "Olá {displayName}",
|
||||
"konnect.goodbye.confirm.subHeader": "por favor confirme o fim de sessão",
|
||||
"konnect.goodbye.message.confirm": "Carregue no botão abaixo para terminar sessão na sua conta Kopano agora.",
|
||||
"konnect.goodbye.signoutButton.label": "Terminar sessão",
|
||||
"konnect.welcome.signoutButton.label": "Terminar sessão",
|
||||
"konnect.chooseaccount.headline": "Escolher uma conta",
|
||||
"konnect.chooseaccount.subHeader": "para iniciar sessão no Kopano",
|
||||
"konnect.chooseaccount.useOther.persona.label": "?",
|
||||
"konnect.chooseaccount.useOther.label": "Use outra conta",
|
||||
"konnect.consent.headline": "Olá {displayName}",
|
||||
"konnect.consent.message": "{clientDisplayName} quer",
|
||||
"konnect.consent.tooltip.client": "Ao carregar em \"Permitir\" será redirecionado para: {redirectURI}",
|
||||
"konnect.consent.question": "Permitir que {clientDisplayName} faça isto?",
|
||||
"konnect.consent.consequence": "Ao carregar em Permitir, está a permitir que esta app use os seus dados.",
|
||||
"konnect.consent.cancelButton.label": "Cancelar",
|
||||
"konnect.consent.allowButton.label": "Permitir",
|
||||
"konnect.login.headline": "Iniciar sessão",
|
||||
"konnect.login.subHeader": "com a sua conta Kopano",
|
||||
"konnect.login.usernameField.label": "Utilizador",
|
||||
"konnect.login.passwordField.label": "Palavra-passe",
|
||||
"konnect.login.nextButton.label": "Seguinte",
|
||||
"konnect.welcome.headline": "Bem vindo {displayName}",
|
||||
"konnect.welcome.message": "Iniciou sessão - fantástico!",
|
||||
"konnect.error.login.validate.missingUsername": "Insira um utilizador",
|
||||
"konnect.error.login.validate.missingPassword": "Insira uma palavra-passe",
|
||||
"konnect.error.login.failed": "Falhou início de sessão. Por favor verifique as suas credenciais e tente novamente.",
|
||||
"konnet.error.http.networkError": "Erro de rede. Por favor verifique as ligações e tente novamente.",
|
||||
"konnect.error.http.unexpectedResponseStatus": "Resposta HTTP inesperada: {status}. Por favor verifique a sua ligação e tente novamente.",
|
||||
"konnect.error.http.unexpectedResponseState": "Resposta de estado inesperada: {state}"
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
{
|
||||
"konnect.loading.error.headline": "Не удалось подключиться к серверу",
|
||||
"konnect.login.retryButton.label": "Повторить",
|
||||
"konnect.scopeDescription.aliasBasic": "Доступ к вашей основной учетной записи",
|
||||
"konnect.scopeDescription.offlineAccess": "Сохраните разрешение на доступ как постоянное",
|
||||
"konnect.scopeDescription.scope": "Охват: {scope}",
|
||||
"konnect.goodbye.headline": "До свидания",
|
||||
"konnect.goodbye.subHeader": "вы вышли из вашей учетной записи Kopano",
|
||||
"konnect.goodbye.message.close": "Теперь вы можете закрыть окно.",
|
||||
"konnect.goodbye.confirm.headline": "Здравствуйте, {displayName}",
|
||||
"konnect.goodbye.confirm.subHeader": "пожалуйста, подтвердите выход",
|
||||
"konnect.goodbye.message.confirm": "Нажмите кнопку ниже, чтобы выйти из вашей учетной записи Kopano.",
|
||||
"konnect.goodbye.signoutButton.label": "Выход",
|
||||
"konnect.welcome.signoutButton.label": "Выход",
|
||||
"konnect.chooseaccount.headline": "Выберите учётную запись",
|
||||
"konnect.chooseaccount.subHeader": "для входа в Kopano",
|
||||
"konnect.chooseaccount.useOther.persona.label": "?",
|
||||
"konnect.chooseaccount.useOther.label": "Другой пользователь",
|
||||
"konnect.consent.headline": "Привет, {displayName}",
|
||||
"konnect.consent.message": "{clientDisplayName} хочет",
|
||||
"konnect.consent.tooltip.client": "После нажатия \"Разрешить\" вы будете перенаправлена на: {redirectURI}",
|
||||
"konnect.consent.question": "Разрешить {clientDisplayName} сделать это?",
|
||||
"konnect.consent.consequence": "Нажимая Разрешить, ты даёте разрешение этому приложению использовать вашу информацию.",
|
||||
"konnect.consent.cancelButton.label": "Отмена",
|
||||
"konnect.consent.allowButton.label": "Разрешить",
|
||||
"konnect.login.headline": "Вход",
|
||||
"konnect.login.subHeader": "с вашей учётной записью Kopano",
|
||||
"konnect.login.usernameField.label": "Имя пользователя",
|
||||
"konnect.login.passwordField.label": "Пароль",
|
||||
"konnect.login.nextButton.label": "Далее",
|
||||
"konnect.welcome.headline": "Добро пожаловать, {displayName}",
|
||||
"konnect.welcome.message": "Вы вошли - круто!",
|
||||
"konnect.error.login.validate.missingUsername": "Введите имя пользователя",
|
||||
"konnect.error.login.validate.missingPassword": "Введите пароль",
|
||||
"konnect.error.login.failed": "Не удалось войти. Пожалуйста, проверьте ваши учетные данные и попробуйте снова.",
|
||||
"konnet.error.http.networkError": "Сетевая ошибка. Пожалуйста, проверьте ваше соединение и попробуйте снова.",
|
||||
"konnect.error.http.unexpectedResponseStatus": "Неожиданный ответ HTTP: {status}. Проверьте подключение и повторите попытку.",
|
||||
"konnect.error.http.unexpectedResponseState": "Неожиданный ответ: {state}"
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
{
|
||||
"konnect.loading.error.headline": "",
|
||||
"konnect.login.retryButton.label": "",
|
||||
"konnect.scopeDescription.aliasBasic": "",
|
||||
"konnect.scopeDescription.offlineAccess": "",
|
||||
"konnect.scopeDescription.scope": "",
|
||||
"konnect.goodbye.headline": "",
|
||||
"konnect.goodbye.subHeader": "",
|
||||
"konnect.goodbye.message.close": "",
|
||||
"konnect.goodbye.confirm.headline": "",
|
||||
"konnect.goodbye.confirm.subHeader": "",
|
||||
"konnect.goodbye.message.confirm": "",
|
||||
"konnect.goodbye.signoutButton.label": "",
|
||||
"konnect.welcome.signoutButton.label": "",
|
||||
"konnect.chooseaccount.headline": "",
|
||||
"konnect.chooseaccount.subHeader": "",
|
||||
"konnect.chooseaccount.useOther.persona.label": "",
|
||||
"konnect.chooseaccount.useOther.label": "",
|
||||
"konnect.consent.headline": "",
|
||||
"konnect.consent.message": "",
|
||||
"konnect.consent.tooltip.client": "",
|
||||
"konnect.consent.question": "",
|
||||
"konnect.consent.consequence": "",
|
||||
"konnect.consent.cancelButton.label": "",
|
||||
"konnect.consent.allowButton.label": "",
|
||||
"konnect.login.headline": "",
|
||||
"konnect.login.subHeader": "",
|
||||
"konnect.login.usernameField.label": "",
|
||||
"konnect.login.passwordField.label": "",
|
||||
"konnect.login.nextButton.label": "",
|
||||
"konnect.welcome.headline": "",
|
||||
"konnect.welcome.message": "",
|
||||
"konnect.error.login.validate.missingUsername": "",
|
||||
"konnect.error.login.validate.missingPassword": "",
|
||||
"konnect.error.login.failed": "",
|
||||
"konnet.error.http.networkError": "",
|
||||
"konnect.error.http.unexpectedResponseStatus": "",
|
||||
"konnect.error.http.unexpectedResponseState": ""
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"konnect": {
|
||||
"consent": {
|
||||
"allowButton": {},
|
||||
"cancelButton": {},
|
||||
"tooltip": {}
|
||||
},
|
||||
"chooseaccount": {
|
||||
"useOther": {
|
||||
"persona": {}
|
||||
}
|
||||
},
|
||||
"scopeDescription": {},
|
||||
"login": {
|
||||
"usernameField": {
|
||||
"placeholder": {}
|
||||
},
|
||||
"nextButton": {},
|
||||
"passwordField": {},
|
||||
"retryButton": {}
|
||||
},
|
||||
"error": {
|
||||
"login": {
|
||||
"validate": {}
|
||||
},
|
||||
"http": {}
|
||||
},
|
||||
"loading": {
|
||||
"error": {}
|
||||
},
|
||||
"goodbye": {
|
||||
"confirm": {},
|
||||
"message": {},
|
||||
"signoutButton": {}
|
||||
},
|
||||
"welcome": {
|
||||
"signoutButton": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
/// <reference types="react-scripts" />
|
||||
@@ -20,24 +20,14 @@ const defaultPathPrefix = (() => {
|
||||
return pathPrefix;
|
||||
})();
|
||||
|
||||
const defaultPasswordResetLink = (() => {
|
||||
const root = document.getElementById('root');
|
||||
let link = root ? root.getAttribute('passwort-reset-link') : null;
|
||||
if (!link || link === '__PASSWORD_RESET_LINK__') {
|
||||
// Not replaced, probably we are running in debug mode or whatever. Use sane default.
|
||||
link = '';
|
||||
}
|
||||
return link;
|
||||
})();
|
||||
|
||||
const defaultState = {
|
||||
hello: null,
|
||||
branding: null,
|
||||
error: null,
|
||||
flow: flow,
|
||||
query: query,
|
||||
updateAvailable: false,
|
||||
pathPrefix: defaultPathPrefix,
|
||||
passwordResetLink: defaultPasswordResetLink
|
||||
pathPrefix: defaultPathPrefix
|
||||
};
|
||||
|
||||
function commonReducer(state = defaultState, action) {
|
||||
@@ -49,7 +39,8 @@ function commonReducer(state = defaultState, action) {
|
||||
|
||||
case RESET_HELLO:
|
||||
return Object.assign({}, state, {
|
||||
hello: null
|
||||
hello: null,
|
||||
branding: null
|
||||
});
|
||||
|
||||
case RECEIVE_HELLO:
|
||||
@@ -59,7 +50,8 @@ function commonReducer(state = defaultState, action) {
|
||||
username: action.username,
|
||||
displayName: action.displayName,
|
||||
details: action.hello
|
||||
}
|
||||
},
|
||||
branding: action.hello.branding ? action.hello.branding : state.branding
|
||||
});
|
||||
|
||||
case SERVICE_WORKER_NEW_CONTENT:
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
import { unstable_createMuiStrictModeTheme as createMuiTheme } from '@material-ui/core';
|
||||
|
||||
import blueGrey from '@material-ui/core/colors/blueGrey';
|
||||
import blue from '@material-ui/core/colors/blue';
|
||||
import red from '@material-ui/core/colors/red';
|
||||
|
||||
const primaryColor = blue;
|
||||
const secondaryColor = blueGrey;
|
||||
const errorColor = red;
|
||||
|
||||
// All the following keys are optional.
|
||||
// We try our best to provide a great default value.
|
||||
const theme = createMuiTheme({
|
||||
palette: {
|
||||
primary: primaryColor,
|
||||
secondary: secondaryColor,
|
||||
error: errorColor,
|
||||
// Used by `getContrastText()` to maximize the contrast between the background and
|
||||
// the text.
|
||||
// NOTE(longsleep): KopanoBlue is too light and thus needs 2.4 contrastThreshold
|
||||
// to make sure the default 500 color is still using white text. It will
|
||||
// show warnings in development mode that the contrast is too low as W3C
|
||||
// recommends the threshold to be 3 or more. This cannot be helped.
|
||||
contrastThreshold: 2.4,
|
||||
// Used to shift a color's luminance by approximately
|
||||
// two indexes within its tonal palette.
|
||||
// E.g., shift from Red 500 to Red 300 or Red 700.
|
||||
tonalOffset: 0.2,
|
||||
},
|
||||
typography: {
|
||||
fontSize: 12,
|
||||
useNextVariants: true,
|
||||
button: {
|
||||
textTransform: 'none',
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
export default theme;
|
||||
@@ -1,87 +1,5 @@
|
||||
export function withClientRequestState(obj) {
|
||||
// Generate a 16 byte random token
|
||||
const values = new Uint8Array(16);
|
||||
crypto.getRandomValues(values);
|
||||
// Convert the 16 byte to a hex string and assign to the state attribute
|
||||
obj.state = Array.prototype.map.call(values, x => x.toString(16)).join('');
|
||||
obj.state = Math.random().toString(36).substring(7);
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
||||
export function dirname(s) {
|
||||
return s.replace(/\\/g,'/').replace(/\/[^/]*$/, '');
|
||||
}
|
||||
|
||||
export function propertyFromStylesheet(selector, attribute, asURL=false) {
|
||||
let value;
|
||||
let sheetHref;
|
||||
|
||||
Array.prototype.some.call(document.styleSheets, function(sheet) {
|
||||
try {
|
||||
return Array.prototype.some.call(sheet.cssRules, function(rule) {
|
||||
sheetHref = sheet.href;
|
||||
if (selector === rule.selectorText) {
|
||||
return Array.prototype.some.call(rule.style, function(style) {
|
||||
if (attribute === style) {
|
||||
value = rule.style.getPropertyValue(attribute);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
} catch(e) {
|
||||
// Ignore sheets which caused errors. This for example can happen if an
|
||||
// extension injected styles from an other origin.
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
if (value && asURL) {
|
||||
// This removes url() shit if there.
|
||||
value = value.match(/(?:\(['|"]?)(.*?)(?:['|"]?\))/)[1];
|
||||
if (!value) {
|
||||
return null;
|
||||
}
|
||||
if (sheetHref) {
|
||||
// URLs in CSS are relative to the CSS - so lets add stuff.
|
||||
const baseHref = dirname(sheetHref);
|
||||
value = baseHref + '/' + value;
|
||||
}
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
export function enhanceBodyBackground() {
|
||||
const bg = propertyFromStylesheet('#bg-enhanced.enhanced', 'background-image', true);
|
||||
const overlay = propertyFromStylesheet('#bg-enhanced.enhanced::after', 'background-image', true);
|
||||
|
||||
const promises = [];
|
||||
if (bg) {
|
||||
promises.push(new Promise(resolve => {
|
||||
const img = new Image();
|
||||
img.onload = () => {
|
||||
resolve();
|
||||
};
|
||||
// Set image source to whatever the url from css holds.
|
||||
img.src = bg;
|
||||
}));
|
||||
}
|
||||
if (overlay) {
|
||||
promises.push(new Promise(resolve => {
|
||||
const img = new Image();
|
||||
img.onload = () => {
|
||||
resolve();
|
||||
};
|
||||
// Set image source to whatever the url from css holds.
|
||||
img.src = overlay;
|
||||
}));
|
||||
}
|
||||
Promise.all(promises).then(() => {
|
||||
window.document.getElementById('bg-enhanced').className += ' enhanced';
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
/*global process: true*/
|
||||
|
||||
const build = process.env.REACT_APP_KOPANO_BUILD || '0.0.0-no-proper-build';
|
||||
|
||||
export {
|
||||
|
||||
@@ -342,7 +342,7 @@ module.exports = function(webpackEnv) {
|
||||
formatter: require.resolve('react-dev-utils/eslintFormatter'),
|
||||
eslintPath: require.resolve('eslint'),
|
||||
resolvePluginsRelativeTo: __dirname,
|
||||
|
||||
|
||||
},
|
||||
loader: require.resolve('eslint-loader'),
|
||||
},
|
||||
@@ -375,7 +375,7 @@ module.exports = function(webpackEnv) {
|
||||
customize: require.resolve(
|
||||
'babel-preset-react-app/webpack-overrides'
|
||||
),
|
||||
|
||||
|
||||
plugins: [
|
||||
[
|
||||
require.resolve('babel-plugin-named-asset-import'),
|
||||
@@ -417,7 +417,7 @@ module.exports = function(webpackEnv) {
|
||||
cacheDirectory: true,
|
||||
// See #6846 for context on why cacheCompression is disabled
|
||||
cacheCompression: false,
|
||||
|
||||
|
||||
// Babel sourcemaps are needed for debugging into node_modules
|
||||
// code. Without the options below, debuggers like VSCode
|
||||
// show incorrect code and set breakpoints on the wrong lines.
|
||||
@@ -617,9 +617,8 @@ module.exports = function(webpackEnv) {
|
||||
new WorkboxWebpackPlugin.GenerateSW({
|
||||
clientsClaim: true,
|
||||
exclude: [/\.map$/, /asset-manifest\.json$/],
|
||||
importWorkboxFrom: 'cdn',
|
||||
navigateFallback: publicUrl + '/index.html',
|
||||
navigateFallbackBlacklist: [
|
||||
navigateFallbackDenylist: [
|
||||
// Exclude URLs starting with /_, as they're likely an API call
|
||||
new RegExp('^/_'),
|
||||
// Exclude any URLs whose last part seems to be a file extension
|
||||
|
||||
+4426
-3349
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user