From 7d5978bdc0189b485a7a59d46d8035c48ba3c08e Mon Sep 17 00:00:00 2001 From: Niklas Schmitt Date: Mon, 1 May 2023 16:41:25 +0200 Subject: [PATCH 01/16] Added label for username in search-result. Signed-off-by: Niklas Schmitt --- html/browser_action/views/search.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/html/browser_action/views/search.html b/html/browser_action/views/search.html index 7e7c5b7d..ce59cb4c 100644 --- a/html/browser_action/views/search.html +++ b/html/browser_action/views/search.html @@ -21,8 +21,8 @@
{{credential.label}}
-
- {{credential.username}} +
+ {{'username' | translate}}: {{credential.username}}
{{'password' | translate}}: ******** From 9ba96a637f90b2b6bfd95afc74aed0ec9a85f371 Mon Sep 17 00:00:00 2001 From: Niklas Schmitt Date: Sat, 15 Jul 2023 20:00:40 +0200 Subject: [PATCH 02/16] Removed unexpected properties from manifest.json. Signed-off-by: Niklas Schmitt --- manifest.json | 4 ---- 1 file changed, 4 deletions(-) diff --git a/manifest.json b/manifest.json index 9a541aec..e27da6bc 100644 --- a/manifest.json +++ b/manifest.json @@ -14,9 +14,6 @@ "64": "icons/icon64.png", "128": "icons/icon128.png" }, - "externally_connectable": { - "ids": [] - }, "background": { "scripts": [ "/js/vendor/jquery/jquery.js", @@ -77,7 +74,6 @@ "https://*/*" ], "all_frames": true, - "jsBuild": [], "js": [ "/js/lib/promise.js", "/js/vendor/sjcl/sjcl.js", From b48ad88d559fab2a99db32b782f8dba2b69c6a8c Mon Sep 17 00:00:00 2001 From: Niklas Schmitt Date: Thu, 3 Aug 2023 20:37:30 +0200 Subject: [PATCH 03/16] Added externally_connectable again. Signed-off-by: Niklas Schmitt --- manifest.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/manifest.json b/manifest.json index e27da6bc..13140237 100644 --- a/manifest.json +++ b/manifest.json @@ -14,6 +14,9 @@ "64": "icons/icon64.png", "128": "icons/icon128.png" }, + "externally_connectable": { + "ids": [""] + }, "background": { "scripts": [ "/js/vendor/jquery/jquery.js", From 887dcd6020346bdfeee4c54e48af494c3863008d Mon Sep 17 00:00:00 2001 From: Niklas Schmitt Date: Sun, 6 Aug 2023 19:05:55 +0200 Subject: [PATCH 04/16] #321 - Another ty to fix Master Password bypasses. Signed-off-by: Niklas Schmitt --- .../browser_action/views/password_prompt.html | 4 +- js/ui/popup/controllers/password_prompt.js | 49 ++++++++++--------- 2 files changed, 29 insertions(+), 24 deletions(-) diff --git a/html/browser_action/views/password_prompt.html b/html/browser_action/views/password_prompt.html index d80207c3..79a03ae4 100644 --- a/html/browser_action/views/password_prompt.html +++ b/html/browser_action/views/password_prompt.html @@ -4,7 +4,7 @@
{{'extension_locked'| translate}}:
- @@ -22,7 +22,7 @@ {{'master_pw_warning' | translate}}
-
+
{{'invalid_master_password' | translate}}
-
+ +
diff --git a/js/ui/password_picker/password_picker.js b/js/ui/password_picker/password_picker.js index 7a7623ef..2c882757 100644 --- a/js/ui/password_picker/password_picker.js +++ b/js/ui/password_picker/password_picker.js @@ -2,6 +2,15 @@ $(document).ready(function () { var _this = this; var storage = new API.Storage(); var runtimeSettings = {}; + var IsMasterPasswordSet = true; + + API.runtime.sendMessage(API.runtime.id, {method: 'getMasterPasswordSet'}).then(function (MasterPasswordSet) { + if (!MasterPasswordSet) { + IsMasterPasswordSet = false; + $('.tabs > .tab').not('.close').hide(); + makeTabActive('unlock'); + } + }); API.runtime.sendMessage(API.runtime.id, {'method': 'getRuntimeSettings'}).then(function (settings) { var accounts = settings.accounts; @@ -281,10 +290,15 @@ $(document).ready(function () { disablePassman('url', tab.url); }); + if (IsMasterPasswordSet === false) { + makeTabActive('unlock'); + } + API.runtime.sendMessage(API.runtime.id, { method: "getCredentialsByUrl", args: [tab.url] }).then(function (logins) { + if (IsMasterPasswordSet === true) { if (logins.length === 0) { API.runtime.sendMessage(API.runtime.id, { 'method': 'getSetting', @@ -318,6 +332,7 @@ $(document).ready(function () { picker.find('.tab-list-content').append(div); } + } }); } diff --git a/js/ui/popup/controllers/list.js b/js/ui/popup/controllers/list.js index 595dc5a7..59e247c1 100644 --- a/js/ui/popup/controllers/list.js +++ b/js/ui/popup/controllers/list.js @@ -44,6 +44,7 @@ API.runtime.sendMessage(API.runtime.id, {method: "getMasterPasswordSet"}).then(function (isPasswordSet) { //First check attributes if (!isPasswordSet) { + window.location = '#!/locked'; return; } diff --git a/js/ui/popup/controllers/main.js b/js/ui/popup/controllers/main.js index 5011f5d5..19e05a01 100644 --- a/js/ui/popup/controllers/main.js +++ b/js/ui/popup/controllers/main.js @@ -57,8 +57,8 @@ var initApp = function () { port.onMessage.addListener(messageParser); API.runtime.sendMessage(API.runtime.id, {method: "getMasterPasswordSet"}).then(function (isPasswordSet) { - //First check attributes if (!isPasswordSet) { + window.location = '#!/locked'; return; } $scope.refreshing_credentials = true; diff --git a/js/ui/popup/controllers/password_prompt.js b/js/ui/popup/controllers/password_prompt.js index f6cd8481..24454135 100644 --- a/js/ui/popup/controllers/password_prompt.js +++ b/js/ui/popup/controllers/password_prompt.js @@ -43,6 +43,7 @@ $rootScope.$broadcast('hideHeader'); $scope.master_password_remember = false; $scope.master_password = ''; + $scope.apply_settings = function () { $scope.saving = true; $scope.inValidPassword = false; diff --git a/js/ui/popup/controllers/search.js b/js/ui/popup/controllers/search.js index 0dd2807b..55870ab9 100644 --- a/js/ui/popup/controllers/search.js +++ b/js/ui/popup/controllers/search.js @@ -34,6 +34,12 @@ */ angular.module('passmanExtension') .controller('SearchCtrl', ['$scope', function ($scope) { + API.runtime.sendMessage(API.runtime.id, {method: 'getMasterPasswordSet'}).then(function (MasterPasswordSet) { + if (!MasterPasswordSet) { + window.location = '#!/locked'; + } + $scope.$apply(); + }); $scope.found_credentials = false; $scope.searchText = ''; $scope.search = function () { From 21f55bebba43aa3286ddf61f4e7ad0cca9127887 Mon Sep 17 00:00:00 2001 From: Niklas Schmitt Date: Sun, 6 Aug 2023 20:03:04 +0200 Subject: [PATCH 07/16] Removed id from master_password again. Signed-off-by: Niklas Schmitt --- html/browser_action/views/password_prompt.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html/browser_action/views/password_prompt.html b/html/browser_action/views/password_prompt.html index b278ff9e..d80207c3 100644 --- a/html/browser_action/views/password_prompt.html +++ b/html/browser_action/views/password_prompt.html @@ -5,7 +5,7 @@
{{'extension_locked'| translate}}:
+ ng-model="master_password">
From c2cdd89b3d67fb6c28363ca68eb4b2ec9cb5c650 Mon Sep 17 00:00:00 2001 From: Niklas Schmitt Date: Thu, 10 Aug 2023 20:50:36 +0200 Subject: [PATCH 08/16] Moved sendMessage in else-block. Signed-off-by: Niklas Schmitt --- js/ui/password_picker/password_picker.js | 79 ++++++++++++------------ 1 file changed, 38 insertions(+), 41 deletions(-) diff --git a/js/ui/password_picker/password_picker.js b/js/ui/password_picker/password_picker.js index 2c882757..03d4bf6e 100644 --- a/js/ui/password_picker/password_picker.js +++ b/js/ui/password_picker/password_picker.js @@ -292,53 +292,50 @@ $(document).ready(function () { if (IsMasterPasswordSet === false) { makeTabActive('unlock'); - } - - API.runtime.sendMessage(API.runtime.id, { - method: "getCredentialsByUrl", - args: [tab.url] - }).then(function (logins) { - if (IsMasterPasswordSet === true) { - if (logins.length === 0) { - API.runtime.sendMessage(API.runtime.id, { - 'method': 'getSetting', - args: 'no_results_found_tab' - }).then(function (value) { - makeTabActive(value); - }); - return; - } - if (logins.length !== 0) { - picker.find('.tab-list-content').html(''); - if(runtimeSettings.passwordPickerGotoList){ - makeTabActive('list'); + } else { + API.runtime.sendMessage(API.runtime.id, { + method: "getCredentialsByUrl", + args: [tab.url] + }).then(function (logins) { + if (logins.length === 0) { + API.runtime.sendMessage(API.runtime.id, { + 'method': 'getSetting', + args: 'no_results_found_tab' + }).then(function (value) { + makeTabActive(value); + }); + return; } - } - for (var i = 0; i < logins.length; i++) { - var login = logins[i]; - var div = $('
', {class: 'account', text: login.label}); - $('
').appendTo(div); - var username = (login.username !== '' ) ? login.username : login.email; - $('').text(username).appendTo(div); - /* jshint ignore:start */ - div.click((function (login) { - return function () { - //enterLoginDetails(login); - //API.runtime.sendMessage(API.runtime.id, {method: 'getMasterPasswordSet'}) - fillLogin(login) - }; - })(login)); - /* jshint ignore:end*/ - - picker.find('.tab-list-content').append(div); - } + if (logins.length !== 0) { + picker.find('.tab-list-content').html(''); + if(runtimeSettings.passwordPickerGotoList){ + makeTabActive('list'); + } + } + for (var i = 0; i < logins.length; i++) { + var login = logins[i]; + var div = $('
', {class: 'account', text: login.label}); + $('
').appendTo(div); + var username = (login.username !== '' ) ? login.username : login.email; + $('').text(username).appendTo(div); + /* jshint ignore:start */ + div.click((function (login) { + return function () { + //enterLoginDetails(login); + //API.runtime.sendMessage(API.runtime.id, {method: 'getMasterPasswordSet'}) + fillLogin(login) + }; + })(login)); + /* jshint ignore:end*/ + + picker.find('.tab-list-content').append(div); + } + }); } - }); } _this.returnActiveTab = returnActiveTab; - $('.no-credentials .save').on('click', function () { $('.tab.add').click(); }); From dc8084dea4cde43982617b11efb58c4b13a86663 Mon Sep 17 00:00:00 2001 From: Niklas Schmitt Date: Sun, 16 Jul 2023 13:27:18 +0200 Subject: [PATCH 09/16] Added tag to icons. Signed-off-by: Niklas Schmitt <niklas.schmitt@mailbox.org> --- html/browser_action/browser_action.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/html/browser_action/browser_action.html b/html/browser_action/browser_action.html index 05724644..651fafc4 100644 --- a/html/browser_action/browser_action.html +++ b/html/browser_action/browser_action.html @@ -77,7 +77,7 @@ </span> </li> <li> - <a ng-click="goto('list')"><i class="mdi mdi-format-list-bulleted"></i> {{'list' | translate}}</a> + <a ng-click="goto('list')" title="{{'list' | translate}}"><i class="mdi mdi-format-list-bulleted"></i> {{'list' | translate}}</a> </li> <li> <a ng-click="goto('search')" title="{{'search' | translate}}"><i class="mdi mdi-magnify"></i> {{'search' | translate}}</a> @@ -99,13 +99,13 @@ <div class="menu-icon" ng-click="toggleMenu()"> <i class="mdi mdi-menu"></i> </div> - <div class="menu-icon pull-right" ng-click="lockExtension()"> + <div class="menu-icon pull-right" ng-click="lockExtension()" title="{{'lock_extension' | translate}}"> <i class="mdi mdi-lock"></i> </div> - <div class="menu-icon pull-right" ng-click="refresh()"> + <div class="menu-icon pull-right" ng-click="refresh()" title="{{'refresh_credential_list' | translate}}"> <i class="mdi mdi-refresh" ng-class="{'fa fa-spin': refreshing_credentials}"></i> </div> - <div class="menu-icon pull-right" ng-click="goto('search')"> + <div class="menu-icon pull-right" ng-click="goto('search')" title="{{'search' | translate}}"> <i class="mdi mdi-magnify"></i> </div> </header> From f3c164dae589220514c2a881773bb7ec9bb9acf2 Mon Sep 17 00:00:00 2001 From: Niklas Schmitt <niklas.schmitt@mailbox.org> Date: Sun, 16 Jul 2023 13:32:20 +0200 Subject: [PATCH 10/16] Fixed Done-button on setup view. Signed-off-by: Niklas Schmitt <niklas.schmitt@mailbox.org> --- html/browser_action/views/setup.html | 2 +- js/ui/popup/controllers/setup.js | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/html/browser_action/views/setup.html b/html/browser_action/views/setup.html index c763c21f..ac2e1a22 100644 --- a/html/browser_action/views/setup.html +++ b/html/browser_action/views/setup.html @@ -133,7 +133,7 @@ <h3>{{'done' | translate}}!</h3> <div style="padding-left: 5px; margin-bottom: 20px;">{{'done_donate' | translate}}</div> - <button step-finish class="md-btn default margin5" ng-disabled="saving"> + <button step-finish class="md-btn default margin5" ng-click="closeWindow()" ng-disabled="saving"> <span> <i ng-show="saving" ng-class="{'fa-spinner fa-spin': saving}" diff --git a/js/ui/popup/controllers/setup.js b/js/ui/popup/controllers/setup.js index a7ab4d33..732c906e 100644 --- a/js/ui/popup/controllers/setup.js +++ b/js/ui/popup/controllers/setup.js @@ -202,6 +202,11 @@ }; + $scope.closeWindow = function () { + setTimeout(function () { + window.close(); + }, 500); + }; }]); }()); From 4f4e8fcb83e58bc5612ae6110e40dd20693f1235 Mon Sep 17 00:00:00 2001 From: Niklas Schmitt <niklas.schmitt@mailbox.org> Date: Tue, 12 Sep 2023 15:48:32 +0200 Subject: [PATCH 11/16] Translated select options. Signed-off-by: Niklas Schmitt <niklas.schmitt@mailbox.org> --- html/browser_action/views/settings.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/html/browser_action/views/settings.html b/html/browser_action/views/settings.html index 4468e328..42f8ec56 100644 --- a/html/browser_action/views/settings.html +++ b/html/browser_action/views/settings.html @@ -28,10 +28,10 @@ </div> <div class="group"> <select id="firstTab" class="input-md" ng-model="settings.no_results_found_tab"> - <option value="list">List</option> - <option value="search">Search</option> - <option value="add">Add</option> - <option value="generate">Generate</option> + <option value="list">{{'list' | translate}}</option> + <option value="search">{{'search' | translate}}</option> + <option value="add">{{'add' | translate}}</option> + <option value="generate">{{'password_generator' | translate}}</option> </select> <span class="highlight"></span> <span class="bar"></span> From dd91a007bec4c198f4ebb95238e74acdf8e98712 Mon Sep 17 00:00:00 2001 From: Niklas Schmitt <niklas.schmitt@mailbox.org> Date: Tue, 12 Sep 2023 16:59:44 +0200 Subject: [PATCH 12/16] Fixed variables & descriptions in translations Signed-off-by: Niklas Schmitt <niklas.schmitt@mailbox.org> --- _locales/af/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/ar/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/bg/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/ca/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/cs/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/da/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/de/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/de_DE/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/el/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/en_GB/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/es/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/es_419/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/es_AR/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/es_CL/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/es_CO/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/es_CR/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/es_DO/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/es_EC/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/es_GT/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/es_HN/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/es_MX/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/es_NI/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/es_PA/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/es_PE/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/es_PR/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/es_PY/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/es_SV/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/es_UY/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/eu/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/fa/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/fi/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/fr/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/gl/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/he/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/hr/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/hu/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/is/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/it/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/ja/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/ka_GE/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/ko/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/lt_LT/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/nb/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/nl/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/pl/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/pt_BR/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/ro/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/ru/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/sc/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/sk/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/sl/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/sq/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/sr/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/sv/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/ta/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/tr/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/zh_CN/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/zh_HK/messages.json | 72 +++++++++++++++++++++++++++++------ _locales/zh_TW/messages.json | 72 +++++++++++++++++++++++++++++------ 59 files changed, 3599 insertions(+), 649 deletions(-) diff --git a/_locales/af/messages.json b/_locales/af/messages.json index fa03b940..bc53989b 100644 --- a/_locales/af/messages.json +++ b/_locales/af/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - Die wagwoordbestuurder vir NextCloud / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Ongeldige respons van bediener: [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Please enter your Nextcloud / ownCloud credentials", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ found for this page", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Vergrendeld", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "We've found $AMOUNT$ credentials for this site", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Save to $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Saving to $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ credentials in the database", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman is logging you in as $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Vault", @@ -534,9 +588,5 @@ "text": { "message": "text", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index 75952a74..7b6f388f 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "تطبيق إدارة كلمات المرور Passman", + "description": "Extension name" + }, "extDescription": { "message": "تطبيق Passman - مدير كلمات المرور لخادم نكست كلود/ أون كلود ", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "استجابة غير صالحة من الخادم: [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "الرجاء إدخال بيانات اعتماد المرور لخادم نكست كلود/ أون كلود الخاصة بك", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "تطبيق إدارة كلمات المرور باس مان \"Passman\"- تم العثور على $CREDENTIAL_AMOUNT$ $PLURAL$لهذه الصفحة", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "تطبيق إدارة كلمات المرور Passman - مغلق", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "لقد وجدنا $AMOUNT$بيانات اعتماد لهذا الموقع", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "حفظ في $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "حفظ في $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "بيانات اعتماد $AMOUNT$ في قاعدة البيانات", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "يقوم تطبيق إدارة كلمات المرور Passman بتسجيل دخولك كـ $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "خزينة", @@ -534,9 +588,5 @@ "text": { "message": "نص", "description": "To describe a textual input field" - }, - "extName": { - "message": "تطبيق إدارة كلمات المرور Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/bg/messages.json b/_locales/bg/messages.json index 50b7c839..95eb411b 100644 --- a/_locales/bg/messages.json +++ b/_locales/bg/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - Диспечерът на пароли за NextCloud / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Невалиден отговор от сървъра: [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Въведете потребител и парола за Nextcloud / ownCloud", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ регистраци за страницата", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Заключено", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Открити са $AMOUNT$ регистрации за страницата", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Запазване в $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Запазване в $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "Налични са $AMOUNT$ регистрации", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman ви вписва като $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Хранилище", @@ -534,9 +588,5 @@ "text": { "message": "текст", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/ca/messages.json b/_locales/ca/messages.json index 21f17a0e..b1869cf8 100644 --- a/_locales/ca/messages.json +++ b/_locales/ca/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - El gestor de contrasenyes per a NextCloud / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Resposta no vàlida del servidor: [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Introduïu les vostres credencials de Nextcloud / ownCloud", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ trobats per a aquesta pàgina", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Blocat", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Hem trobat $AMOUNT$ credencials per a aquest lloc", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Desa a $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "S'està desant a $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ credencials a la base de dades", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman us està iniciant la sessió com a $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Cripta", @@ -534,9 +588,5 @@ "text": { "message": "text", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/cs/messages.json b/_locales/cs/messages.json index 47bb9f47..720c9632 100644 --- a/_locales/cs/messages.json +++ b/_locales/cs/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman – správce hesel pro Nextcloud/ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Neplatná odpověď serveru: [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Zadejte své přístupové údaje k Nextcloud / ownCloud", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passsman – pro tuto stránku bylo nalezeno $CREDENTIAL_AMOUNT$ $PLURAL$ ", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman ‒ uzamčeno", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Pro tuto stránku bylo nalezeno $AMOUNT$ přihlašovacích údajů", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Uložit do $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Ukládá se do $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ přihlašovacích údajů v databázi", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman vás přihlašuje jako $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Trezor", @@ -534,9 +588,5 @@ "text": { "message": "text", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/da/messages.json b/_locales/da/messages.json index 6e252508..affafc46 100644 --- a/_locales/da/messages.json +++ b/_locales/da/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - The password manager for NextCloud / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Invalid response from server: [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Please enter your Nextcloud / ownCloud credentials", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ fundet for denne side", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Låst", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "We've found $AMOUNT$ credentials for this site", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Save to $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Saving to $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ credentials in the database", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman is logging you in as $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Vault", @@ -534,9 +588,5 @@ "text": { "message": "tekst", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/de/messages.json b/_locales/de/messages.json index e5eedc93..a2b9c75f 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - Der Passwortmanager für NextCloud / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Ungültige Antwort des Servers: [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Bitte Nextcloud / ownCloud-Zugangsdaten eingeben", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ Zugangsdaten für diese Seite gefunden", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Gesperrt", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Wir haben $AMOUNT$ Zugangsdaten für diese Seite gefunde", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Speichern in $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Speichere in $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ Zugangsdaten in der Datenbank", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman protokolliert dich als $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Tresor", @@ -534,9 +588,5 @@ "text": { "message": "Text", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/de_DE/messages.json b/_locales/de_DE/messages.json index 1035044e..ac270fd1 100644 --- a/_locales/de_DE/messages.json +++ b/_locales/de_DE/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - Der Passwort-Manager für NextCloud / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Ungültige Antwort des Servers: [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Bitte geben Sie Ihre Anmeldeinformationen für Nextcloud / ownCloud ein", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ für diese Seite gefunden", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Gesperrt", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Es wurden $AMOUNT$ Anmeldeinformationen für diese Seite gefunden", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Speichern in $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Speichere in $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ Anmeldeinformationen in der Datenbank", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman meldet Sie an als $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Tresor", @@ -534,9 +588,5 @@ "text": { "message": "Text", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/el/messages.json b/_locales/el/messages.json index 40c1bde8..9cc11a2f 100644 --- a/_locales/el/messages.json +++ b/_locales/el/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - Ο διαχειριστής συνθηματικών για το NextCloud / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Μη έγκυρη απάντηση διακομιστή: [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Παρακαλούμε εισάγετε τα διαπιστευτήριά σας για το Nextcloud / ownCloud", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ βρέθηκαν για αυτή τη σελίδα", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Κλειδώθηκε", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Βρήκαμε $AMOUNT$ διαπιστευτήρια για αυτόν τον ιστότοπο", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Αποθήκευση στο $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Αποθήκευση στο $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ διαπιστευτήρια στην βάση δεδομένων", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Το Passman σας συνδέει ώς $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Κρύπτη", @@ -534,9 +588,5 @@ "text": { "message": "κείμενο", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/en_GB/messages.json b/_locales/en_GB/messages.json index d65743ea..1c574d7b 100644 --- a/_locales/en_GB/messages.json +++ b/_locales/en_GB/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - The password manager for NextCloud / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Invalid response from server: [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Please enter your Nextcloud / ownCloud credentials", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ found for this page", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Locked", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "We've found $AMOUNT$ credentials for this site", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Save to $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Saving to $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ credentials in the database", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman is logging you in as $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Vault", @@ -534,9 +588,5 @@ "text": { "message": "text", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/es/messages.json b/_locales/es/messages.json index 15dc82fd..85a36c1c 100644 --- a/_locales/es/messages.json +++ b/_locales/es/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - El gestor de contraseñas para Nextcloud / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Respuesta no válida del servidor: [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Por favor, introduce tus credenciales de Nextcloud / ownCloud", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ encontradas para esta página", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Bloqueada", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Hemos encontrado $AMOUNT$ credenciales para este sitio", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Guardar en $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Guardando en $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ credenciales en la base de datos", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman te está iniciando sesión como $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Caja fuerte", @@ -534,9 +588,5 @@ "text": { "message": "texto", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/es_419/messages.json b/_locales/es_419/messages.json index 8f8a1b2b..5cd1ee21 100644 --- a/_locales/es_419/messages.json +++ b/_locales/es_419/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - El adminsitrador de contraseñas para NextCloud / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Respuesta inválida del servidor : [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Por favor ingresa tus credenciales de Nextcloud / ownCloud", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ encontrado para esta página", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Bloqueado", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Se han encontrado $AMOUNT$ credenciales para este sitio", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Guardar en $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Guardando en $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ credenciales en la base de datos", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman te está registrando como $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Bóveda", @@ -534,9 +588,5 @@ "text": { "message": "texto", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/es_AR/messages.json b/_locales/es_AR/messages.json index f78e039d..d64c2227 100644 --- a/_locales/es_AR/messages.json +++ b/_locales/es_AR/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - El adminsitrador de contraseñas para NextCloud / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Respuesta del servidor inválida :[$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Favor de ingresas sus credenciales de Nextcloud / ownCloud", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ encontrado para esta página", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Bloqueado", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Se han encontrado $AMOUNT$ credenciales para este sitio", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Save to $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Saving to $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ credenciales en la base de datos", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman is logging you in as $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Vault", @@ -534,9 +588,5 @@ "text": { "message": "text", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/es_CL/messages.json b/_locales/es_CL/messages.json index 8f8a1b2b..5cd1ee21 100644 --- a/_locales/es_CL/messages.json +++ b/_locales/es_CL/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - El adminsitrador de contraseñas para NextCloud / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Respuesta inválida del servidor : [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Por favor ingresa tus credenciales de Nextcloud / ownCloud", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ encontrado para esta página", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Bloqueado", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Se han encontrado $AMOUNT$ credenciales para este sitio", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Guardar en $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Guardando en $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ credenciales en la base de datos", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman te está registrando como $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Bóveda", @@ -534,9 +588,5 @@ "text": { "message": "texto", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/es_CO/messages.json b/_locales/es_CO/messages.json index 8f8a1b2b..5cd1ee21 100644 --- a/_locales/es_CO/messages.json +++ b/_locales/es_CO/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - El adminsitrador de contraseñas para NextCloud / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Respuesta inválida del servidor : [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Por favor ingresa tus credenciales de Nextcloud / ownCloud", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ encontrado para esta página", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Bloqueado", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Se han encontrado $AMOUNT$ credenciales para este sitio", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Guardar en $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Guardando en $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ credenciales en la base de datos", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman te está registrando como $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Bóveda", @@ -534,9 +588,5 @@ "text": { "message": "texto", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/es_CR/messages.json b/_locales/es_CR/messages.json index 8f8a1b2b..5cd1ee21 100644 --- a/_locales/es_CR/messages.json +++ b/_locales/es_CR/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - El adminsitrador de contraseñas para NextCloud / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Respuesta inválida del servidor : [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Por favor ingresa tus credenciales de Nextcloud / ownCloud", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ encontrado para esta página", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Bloqueado", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Se han encontrado $AMOUNT$ credenciales para este sitio", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Guardar en $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Guardando en $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ credenciales en la base de datos", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman te está registrando como $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Bóveda", @@ -534,9 +588,5 @@ "text": { "message": "texto", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/es_DO/messages.json b/_locales/es_DO/messages.json index 8f8a1b2b..5cd1ee21 100644 --- a/_locales/es_DO/messages.json +++ b/_locales/es_DO/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - El adminsitrador de contraseñas para NextCloud / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Respuesta inválida del servidor : [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Por favor ingresa tus credenciales de Nextcloud / ownCloud", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ encontrado para esta página", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Bloqueado", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Se han encontrado $AMOUNT$ credenciales para este sitio", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Guardar en $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Guardando en $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ credenciales en la base de datos", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman te está registrando como $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Bóveda", @@ -534,9 +588,5 @@ "text": { "message": "texto", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/es_EC/messages.json b/_locales/es_EC/messages.json index 8f8a1b2b..5cd1ee21 100644 --- a/_locales/es_EC/messages.json +++ b/_locales/es_EC/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - El adminsitrador de contraseñas para NextCloud / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Respuesta inválida del servidor : [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Por favor ingresa tus credenciales de Nextcloud / ownCloud", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ encontrado para esta página", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Bloqueado", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Se han encontrado $AMOUNT$ credenciales para este sitio", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Guardar en $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Guardando en $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ credenciales en la base de datos", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman te está registrando como $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Bóveda", @@ -534,9 +588,5 @@ "text": { "message": "texto", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/es_GT/messages.json b/_locales/es_GT/messages.json index 8f8a1b2b..5cd1ee21 100644 --- a/_locales/es_GT/messages.json +++ b/_locales/es_GT/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - El adminsitrador de contraseñas para NextCloud / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Respuesta inválida del servidor : [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Por favor ingresa tus credenciales de Nextcloud / ownCloud", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ encontrado para esta página", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Bloqueado", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Se han encontrado $AMOUNT$ credenciales para este sitio", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Guardar en $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Guardando en $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ credenciales en la base de datos", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman te está registrando como $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Bóveda", @@ -534,9 +588,5 @@ "text": { "message": "texto", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/es_HN/messages.json b/_locales/es_HN/messages.json index 4b7aedff..a47c8b18 100644 --- a/_locales/es_HN/messages.json +++ b/_locales/es_HN/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - El adminsitrador de contraseñas para NextCloud / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Respuesta inválida del servidor : [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Por favor ingresa tus credenciales de Nextcloud / ownCloud", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ encontrado para esta página", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Bloqueado", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Se han encontrado $AMOUNT$ credenciales para este sitio", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Guardar en $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Guardando en $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ credenciales en la base de datos", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman te está registrando como $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Bóveda", @@ -534,9 +588,5 @@ "text": { "message": "texto", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/es_MX/messages.json b/_locales/es_MX/messages.json index 8f8a1b2b..5cd1ee21 100644 --- a/_locales/es_MX/messages.json +++ b/_locales/es_MX/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - El adminsitrador de contraseñas para NextCloud / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Respuesta inválida del servidor : [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Por favor ingresa tus credenciales de Nextcloud / ownCloud", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ encontrado para esta página", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Bloqueado", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Se han encontrado $AMOUNT$ credenciales para este sitio", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Guardar en $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Guardando en $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ credenciales en la base de datos", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman te está registrando como $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Bóveda", @@ -534,9 +588,5 @@ "text": { "message": "texto", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/es_NI/messages.json b/_locales/es_NI/messages.json index 4b7aedff..a47c8b18 100644 --- a/_locales/es_NI/messages.json +++ b/_locales/es_NI/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - El adminsitrador de contraseñas para NextCloud / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Respuesta inválida del servidor : [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Por favor ingresa tus credenciales de Nextcloud / ownCloud", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ encontrado para esta página", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Bloqueado", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Se han encontrado $AMOUNT$ credenciales para este sitio", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Guardar en $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Guardando en $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ credenciales en la base de datos", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman te está registrando como $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Bóveda", @@ -534,9 +588,5 @@ "text": { "message": "texto", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/es_PA/messages.json b/_locales/es_PA/messages.json index 4b7aedff..a47c8b18 100644 --- a/_locales/es_PA/messages.json +++ b/_locales/es_PA/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - El adminsitrador de contraseñas para NextCloud / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Respuesta inválida del servidor : [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Por favor ingresa tus credenciales de Nextcloud / ownCloud", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ encontrado para esta página", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Bloqueado", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Se han encontrado $AMOUNT$ credenciales para este sitio", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Guardar en $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Guardando en $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ credenciales en la base de datos", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman te está registrando como $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Bóveda", @@ -534,9 +588,5 @@ "text": { "message": "texto", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/es_PE/messages.json b/_locales/es_PE/messages.json index 4b7aedff..a47c8b18 100644 --- a/_locales/es_PE/messages.json +++ b/_locales/es_PE/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - El adminsitrador de contraseñas para NextCloud / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Respuesta inválida del servidor : [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Por favor ingresa tus credenciales de Nextcloud / ownCloud", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ encontrado para esta página", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Bloqueado", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Se han encontrado $AMOUNT$ credenciales para este sitio", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Guardar en $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Guardando en $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ credenciales en la base de datos", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman te está registrando como $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Bóveda", @@ -534,9 +588,5 @@ "text": { "message": "texto", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/es_PR/messages.json b/_locales/es_PR/messages.json index 4b7aedff..a47c8b18 100644 --- a/_locales/es_PR/messages.json +++ b/_locales/es_PR/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - El adminsitrador de contraseñas para NextCloud / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Respuesta inválida del servidor : [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Por favor ingresa tus credenciales de Nextcloud / ownCloud", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ encontrado para esta página", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Bloqueado", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Se han encontrado $AMOUNT$ credenciales para este sitio", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Guardar en $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Guardando en $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ credenciales en la base de datos", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman te está registrando como $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Bóveda", @@ -534,9 +588,5 @@ "text": { "message": "texto", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/es_PY/messages.json b/_locales/es_PY/messages.json index 4b7aedff..a47c8b18 100644 --- a/_locales/es_PY/messages.json +++ b/_locales/es_PY/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - El adminsitrador de contraseñas para NextCloud / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Respuesta inválida del servidor : [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Por favor ingresa tus credenciales de Nextcloud / ownCloud", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ encontrado para esta página", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Bloqueado", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Se han encontrado $AMOUNT$ credenciales para este sitio", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Guardar en $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Guardando en $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ credenciales en la base de datos", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman te está registrando como $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Bóveda", @@ -534,9 +588,5 @@ "text": { "message": "texto", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/es_SV/messages.json b/_locales/es_SV/messages.json index 8f8a1b2b..5cd1ee21 100644 --- a/_locales/es_SV/messages.json +++ b/_locales/es_SV/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - El adminsitrador de contraseñas para NextCloud / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Respuesta inválida del servidor : [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Por favor ingresa tus credenciales de Nextcloud / ownCloud", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ encontrado para esta página", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Bloqueado", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Se han encontrado $AMOUNT$ credenciales para este sitio", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Guardar en $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Guardando en $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ credenciales en la base de datos", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman te está registrando como $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Bóveda", @@ -534,9 +588,5 @@ "text": { "message": "texto", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/es_UY/messages.json b/_locales/es_UY/messages.json index 4b7aedff..a47c8b18 100644 --- a/_locales/es_UY/messages.json +++ b/_locales/es_UY/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - El adminsitrador de contraseñas para NextCloud / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Respuesta inválida del servidor : [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Por favor ingresa tus credenciales de Nextcloud / ownCloud", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ encontrado para esta página", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Bloqueado", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Se han encontrado $AMOUNT$ credenciales para este sitio", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Guardar en $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Guardando en $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ credenciales en la base de datos", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman te está registrando como $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Bóveda", @@ -534,9 +588,5 @@ "text": { "message": "texto", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/eu/messages.json b/_locales/eu/messages.json index ac96f300..f77a230f 100644 --- a/_locales/eu/messages.json +++ b/_locales/eu/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - NextCloud / ownCloud-entzako pasahitz-kudeatzailea", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Zerbitzariaren erantzun baliogabea: [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Sartu zure Nextcloud /ownCloud kredentzialak", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ aurkitu dira orri honentzat", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Blokeatuta", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": " $AMOUNT$ kredentzial aurkitu ditugu gune honentzat", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Gorde $VAULT_NAME$ gordailura", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": " $VAULT_NAME$ gordailura gordetzen", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ kredentzial datu-basean", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman-ek zu $USERNAME$gisa hasi du saioa", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Gordailua", @@ -534,9 +588,5 @@ "text": { "message": "testua", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/fa/messages.json b/_locales/fa/messages.json index 24ffc30d..fe6476d6 100644 --- a/_locales/fa/messages.json +++ b/_locales/fa/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "رهگذر", + "description": "Extension name" + }, "extDescription": { "message": "Passman - مدیر رمز عبور برای نکست کلود / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "پاسخ نامعتبر از سرور:[$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "لطفاً اعتبارنامه نکست کلود / ownCloud خود را وارد کنید", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ برای این صفحه یافت شد", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - قفل شده است", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "ما پیدا کرده ایم $AMOUNT$ اعتبار این سایت", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "ذخیره در $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "صرفه جویی در $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ اعتبارنامه در پایگاه داده", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman شما را به عنوان ورود به سیستم وارد می کند $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "طاق", @@ -534,9 +588,5 @@ "text": { "message": "متن", "description": "To describe a textual input field" - }, - "extName": { - "message": "رهگذر", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/fi/messages.json b/_locales/fi/messages.json index 5bd6c239..05f6845a 100644 --- a/_locales/fi/messages.json +++ b/_locales/fi/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - Salasanojen hallinta NextCloudille / ownCloudille", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Virheellinen vastaus palvelimelta: [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Anna Nextcloudin / ownCloudin tilitietosi", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ found for this page", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Lukittu", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Tälle sivustolle löytyi $AMOUNT$ kirjautumistieto(a)", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Tallenna holviin $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Tallennetaan holviin $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ kirjautumistietoa tietokannassa", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman kirjaa sinut sisään käyttäjänä $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Holvi", @@ -534,9 +588,5 @@ "text": { "message": "text", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/fr/messages.json b/_locales/fr/messages.json index d22d8732..1c98c142 100644 --- a/_locales/fr/messages.json +++ b/_locales/fr/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - Le gestionnaire de mot de passe pour NextCloud / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Réponse du serveur invalide : [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Veuillez saisir votre information d'identification Nextcloud / ownCloud", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ trouvé pour cette page", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Verrouillé", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Il y a $AMOUNT$ informations d'identification pour ce site", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Sauvegarder dans $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Sauvegarder dans $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ informations d'identification dans la base", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman vous connecte en tant que $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Coffre-fort", @@ -534,9 +588,5 @@ "text": { "message": "texte", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/gl/messages.json b/_locales/gl/messages.json index caa56366..11eaf89b 100644 --- a/_locales/gl/messages.json +++ b/_locales/gl/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - O xestor de contrasinais para NextCloud / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Resposta incorrecta do servidor: [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Introduza os seus credenciais de Nextcloud / ownCloud", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ atopado para esta páxina", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Bloqueado", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Atopáronse $AMOUNT$ credenciais para este sitio", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Gardar en $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Gardando en $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ credenciais nla base de datos", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman estalle a acceder como $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Bóveda", @@ -534,9 +588,5 @@ "text": { "message": "texto", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/he/messages.json b/_locales/he/messages.json index c987cf0b..4ccb321e 100644 --- a/_locales/he/messages.json +++ b/_locales/he/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - מנהל הססמאות עבור NextCloud / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "תגובה שגויה מהשרת: [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "נא להקליד את פרטי הגישה שלך ל־Nextcloud / ownCloud", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ נמצאו לעמוד זה", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - נעול", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "מצאנו $AMOUNT$ פרטי גישה לאתר הזה", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "שמירה אל $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "נשמר אל $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ פרטי גישה במסד הנתונים", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman מכניס אותך בתור $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "כספת", @@ -534,9 +588,5 @@ "text": { "message": "טקסט", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/hr/messages.json b/_locales/hr/messages.json index a1832857..90c44316 100644 --- a/_locales/hr/messages.json +++ b/_locales/hr/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman – upravitelj zaporkama za NextCloud/ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Nevažeći odgovor poslužitelja: [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Unesite svoje vjerodajnice za Nextcloud/ownCloud", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Za ovu je stranicu pronađen Passman – $CREDENTIAL_AMOUNT$ $PLURAL$", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman – zaključano", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Pronašli smo $AMOUNT$ vjerodajnica za ovo web-mjesto", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Spremi u $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Spremanje u $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ vjerodajnica u bazi podataka", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman vas prijavljuje kao $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Trezor", @@ -534,9 +588,5 @@ "text": { "message": "tekst", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/hu/messages.json b/_locales/hu/messages.json index 091667a2..bc9bd3f2 100644 --- a/_locales/hu/messages.json +++ b/_locales/hu/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman – Jelszókezelő a Nextcloudhoz/ownCloudhoz", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Érvénytelen kiszolgálóválasz: [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Adja meg a Nextcloud/ownCloud hitelesítő adatok", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman – $CREDENTIAL_AMOUNT$ $PLURAL$ találva az oldalhoz", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman – zárolva", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Összesen $AMOUNT$ hitelesítő adat található ehhez az oldalhoz", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Mentés ide: $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Mentés ide: $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ hitelesítő adat az adatbázisban", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "A Passman $USERNAME$ néven jelentkezteti be.", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Széf", @@ -534,9 +588,5 @@ "text": { "message": "szöveg", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/is/messages.json b/_locales/is/messages.json index 4812be3e..a4ce1d1b 100644 --- a/_locales/is/messages.json +++ b/_locales/is/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - Lykilorðastýring fyrir NextCloud / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Ógilt svar frá þjóni: [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Settu inn auðkenni þín á Nextcloud / ownCloud", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - fann $CREDENTIAL_AMOUNT$ $PLURAL$ fyrir þessa síðu", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Læst", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Við fundum $AMOUNT$ auðkenni fyrir þetta vefsvæði", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Vista í $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Vista í $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ auðkenni í gagnagrunninum\n ", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman er að skrá þig inn sem $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Lykilorðageymsla", @@ -534,9 +588,5 @@ "text": { "message": "texti", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/it/messages.json b/_locales/it/messages.json index e33d5a51..c4dad63c 100644 --- a/_locales/it/messages.json +++ b/_locales/it/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - Il gestore delle password per NextCloud / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Risposta non valida dal server: [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Digita le tue credenziali di Nextcloud / ownCloud", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ trovate per questa pagina", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Bloccato", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Abbiamo trovato $AMOUNT$ credenziali per questo sito", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Salva in $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Salvataggio in $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ credenziali nel database", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman sta eseguendo il tuo accesso come $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Cassaforte", @@ -534,9 +588,5 @@ "text": { "message": "testo", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index b12631b7..631eff6a 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - NextCloud / ownCloudのパスワードマネージャー", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "サーバーからの無効な応答:[$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Nextcloud / Owncloud 資格情報を入力してください", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - このページで $CREDENTIAL_AMOUNT$個の$PLURAL$が見つかりました", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman -ロックされました", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "このサイトに$AMOUNT$個の認証情報が見つかりました", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "$VAULT_NAME$ に保存", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "$VAULT_NAME$ に保存", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "データベース内に$AMOUNT$個の認証情報", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passmanに$USERNAME$としてログインしています", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "保管庫", @@ -534,9 +588,5 @@ "text": { "message": "テキスト", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/ka_GE/messages.json b/_locales/ka_GE/messages.json index 84473571..c9fd0101 100644 --- a/_locales/ka_GE/messages.json +++ b/_locales/ka_GE/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - პაროლების მენეჯერი Nextcloud / ownCloud-ისთვის", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "სერვიდან მიღებულია არასწორი პასუხი [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "შეიყვანეთ თქვენი Nextcloud / ownCloud უფლებამოსილებები", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - ამ გვერდისთვის ნაპოვნია $CREDENTIAL_AMOUNT$ $PLURAL$", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - ჩაკეტილია", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "ამ საიტზე ვიპოვეთ $AMOUNT$ უფლებამოსილება", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "შევინახოთ $VAULT_NAME$-ში", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "ვინახავთ $VAULT_NAME$-ში", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "ბაზაშია $AMOUNT$ უფლებამოსილება", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman-ს შეყავხართ როგორც $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "სეიფი", @@ -534,9 +588,5 @@ "text": { "message": "ტექსტი", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/ko/messages.json b/_locales/ko/messages.json index 8baa1fe9..578d7d96 100644 --- a/_locales/ko/messages.json +++ b/_locales/ko/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - NextCloud / ownCloud 암호 관리자", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "서버에서 잘못된 응답을 반환함: [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Nextcloud / ownCloud 인증 정보를 입력하십시오", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - 이 페이지에서 $CREDENTIAL_AMOUNT$ $PLURAL$개 찾음", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - 잠김", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "이 사이트의 인증 정보 $AMOUNT$개를 찾았습니다", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "$VAULT_NAME$에 저장", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "$VAULT_NAME$에 저장", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "데이터베이스에 인증 정보 $AMOUNT$개 있음", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman에서 $USERNAME$(으)로 로그인함", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "비밀 저장소", @@ -534,9 +588,5 @@ "text": { "message": "텍스트", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/lt_LT/messages.json b/_locales/lt_LT/messages.json index f60db5a5..0c1af4bd 100644 --- a/_locales/lt_LT/messages.json +++ b/_locales/lt_LT/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - The password manager for NextCloud / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Neteisingas atsakymas iš serverio: [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Please enter your Nextcloud / ownCloud credentials", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ found for this page", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Slaptažodžių tvarkyklė užrakinta", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "We've found $AMOUNT$ credentials for this site", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Įrašyti į $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Įrašoma į $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ credentials in the database", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman is logging you in as $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Slėptuvė", @@ -534,9 +588,5 @@ "text": { "message": "text", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/nb/messages.json b/_locales/nb/messages.json index 9b37703c..248c12b4 100644 --- a/_locales/nb/messages.json +++ b/_locales/nb/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - Passordbehandler for NextCloud / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Ugyldig svar fra server: [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Skriv inn dine Nextcloud / ownCloud -påloggingsdetaljer", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ funnet for denne siden", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Låst", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Vi har funnet $AMOUNT$ påloggingsdetaljer for denne siden", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Lagre til $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Lagrer til $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ påloggingsdetaljer i databasen", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman logger deg inn som $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Hvelv", @@ -534,9 +588,5 @@ "text": { "message": "tekst", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/nl/messages.json b/_locales/nl/messages.json index 5fb8521b..43e65fec 100644 --- a/_locales/nl/messages.json +++ b/_locales/nl/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - de wachtwoordbeheerder voor NextCloud / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Foute reactie van de server: [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Voer je Nextcloud / ownCloud inloggegevens in", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman -$CREDENTIAL_AMOUNT$ $PLURAL$ gevonden voor deze pagina", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Vergrendeld", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "We vonden $AMOUNT$ inloggegevens voor deze site", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Opslaan in $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Opgeslagen in $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ inloggegevens in de database", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman logt je in als $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Kluis", @@ -534,9 +588,5 @@ "text": { "message": "tekst", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/pl/messages.json b/_locales/pl/messages.json index c9837c57..62f10d86 100644 --- a/_locales/pl/messages.json +++ b/_locales/pl/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - Menedżer haseł dla Nextcloud/ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Nieprawidłowa odpowiedź serwera: [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Wprowadź dane poświadczające Nextcloud/ownCloud", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - znaleziono $CREDENTIAL_AMOUNT$ $PLURAL$ dla tej strony", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Zablokowany", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Znaleziono $AMOUNT$ poświadczeń dla tej strony", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Zapisz do $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Zapisywanie do $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ poświadczeń w bazie danych", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman loguje Ciebie jako $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Sejf", @@ -534,9 +588,5 @@ "text": { "message": "tekst", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/pt_BR/messages.json b/_locales/pt_BR/messages.json index 61a31ba2..63bb2014 100644 --- a/_locales/pt_BR/messages.json +++ b/_locales/pt_BR/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - O gerenciador de senha para NextCloud / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Resposta inválida do servidor: [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Por favor entre suas credenciais Nextcloud / ownCloud", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ encontrado para esta página", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Bloqueado", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Foram encontradas $AMOUNT$ credenciais para este site", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Salvo em $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Salvando em $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ credenciais no banco de dados", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman está logando você como $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Cofre", @@ -534,9 +588,5 @@ "text": { "message": "texto", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/ro/messages.json b/_locales/ro/messages.json index 9eee027a..e1436997 100644 --- a/_locales/ro/messages.json +++ b/_locales/ro/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - Manager de parole pentru NextCloud / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Raspuns invalid de la server:[$STATUS_CODE$]$STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Please enter your Nextcloud / ownCloud credentials", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ gasit pentru aceasta pagina", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Incuiat", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Am gasit $AMOUNT$ date de autentifiare pentru aceasta pagina", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Save to $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Saving to $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ date de autentificare in baza de date", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman is logging you in as $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Vault", @@ -534,9 +588,5 @@ "text": { "message": "text", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index 41fcc521..f89dd14f 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman — Управление паролями для NextCloud и ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Неверный ответ сервера: [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Введите свои данные для входа в Nextcloud или ownCloud", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ найдено для этой страницы", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman — Заблокировано", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Найдено $AMOUNT$ записей для этого сайта", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Сохранить в $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Сохранение в $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ записей в базе данных", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Менеджер паролей авторизует Вас как $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Хранилице", @@ -534,9 +588,5 @@ "text": { "message": "текст", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/sc/messages.json b/_locales/sc/messages.json index 08bb25d7..66c2a185 100644 --- a/_locales/sc/messages.json +++ b/_locales/sc/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - S'organizadore de craes pro Nextcloud / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Risposta no bàlida dae su serbidore: [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Inserta•nche is credentziales de Nextcloud / ownCloud tuas", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ agatados pro custa pàgina", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Blocadu", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Amus agatadu $AMOUNT$ credentziales pro custu situ", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Sarva in $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Sarvende in $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$credentziales in sa base de datos", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman est esecutende s'atzessu tuo comente $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Cassaforte", @@ -534,9 +588,5 @@ "text": { "message": "testu", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/sk/messages.json b/_locales/sk/messages.json index 0fb4aca3..57e35c5a 100644 --- a/_locales/sk/messages.json +++ b/_locales/sk/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - manažér hesiel pre NextCloud / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Neplatná odpoveď zo servra\" [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Zadajte prosím prihlasovacie údaje pre svoj Nextcloud", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ nájdené pre túto stránku", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - zamknutý", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Pre túto stránku boli nájdené $AMOUNT$ prístupové údaje", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Uložiť do $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Ukladá sa do $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ prihlasovacích údajov v databáze", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman vás prihlasuje ako $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Trezor", @@ -534,9 +588,5 @@ "text": { "message": "text", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/sl/messages.json b/_locales/sl/messages.json index ce4524d0..9e008c89 100644 --- a/_locales/sl/messages.json +++ b/_locales/sl/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman – Upravljalnik gesel za okolja NextCloud / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Neveljaven odziv strežnika: [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Vpis poveril strežnika Nextcloud / ownCloud", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman – najdenih je $CREDENTIAL_AMOUNT$ $PLURAL$ za to stran.", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman – Zakljenjeno", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Za to stran so najdena poverila: $AMOUNT$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Shrani v $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Poteka shranjevanje v trezor $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "V zbirki je $AMOUNT$ poveril.", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Program Passman vas beleži kot $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Trezor", @@ -534,9 +588,5 @@ "text": { "message": "besedilo", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/sq/messages.json b/_locales/sq/messages.json index 64ec3885..71a56055 100644 --- a/_locales/sq/messages.json +++ b/_locales/sq/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - Manaxheri i fjalëkalimeve për NextCloud/ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Përgjigja e pavlefshme nga serveri: [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Ju lutem futni kredencialet tuaja të Nextcloud/ownCloud", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ të gjetur në këtë faqe", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - I kyçur", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Kemi gjetur $AMOUNT$ kredenciale për këtë faqe", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Ruaje tek $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Dua u ruajtur tek $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$kredenciale në databazë", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman po ju lidh brenda si $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Kasafortë", @@ -534,9 +588,5 @@ "text": { "message": "text", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/sr/messages.json b/_locales/sr/messages.json index a53776c8..b850890d 100644 --- a/_locales/sr/messages.json +++ b/_locales/sr/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Менаџер Лозинки", + "description": "Extension name" + }, "extDescription": { "message": "Менаџер Лозинки - управљање лозинкама за Некстклауд / Оунклауд", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Неисправан одговор са сервера: [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Унесите Ваше Некстлауд / Оунклауд акредитиве", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Менаџер Лозинки - $CREDENTIAL_AMOUNT$ $PLURAL$ нађено за ову страну", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Менаџер Лозинки - откључан", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Нашли смо $AMOUNT$ акредитива за овај сајт", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Сними у сеф $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Снимам у $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ акредитива у бази", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Менаџер Лозинки ће Вас пријавити као $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Сеф", @@ -534,9 +588,5 @@ "text": { "message": "текст", "description": "To describe a textual input field" - }, - "extName": { - "message": "Менаџер Лозинки", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/sv/messages.json b/_locales/sv/messages.json index c50bbce3..651c0ce8 100644 --- a/_locales/sv/messages.json +++ b/_locales/sv/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - Lösenordshanteraren för Nextcloud/ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Ogiltigt svar från server: [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Vänligen ange dina Nextcloud/ownCloud-uppgifter", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ hittades för denna sida", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Låst", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Vi hittade $AMOUNT$ uppgifter för denna plats", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Spara i $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Sparar i $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ uppgifter i databasen", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman loggar in dig som $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Valv", @@ -534,9 +588,5 @@ "text": { "message": "text", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/ta/messages.json b/_locales/ta/messages.json index 5e97b043..d9d3911c 100644 --- a/_locales/ta/messages.json +++ b/_locales/ta/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - The password manager for NextCloud / ownCloud", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Invalid response from server: [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Please enter your Nextcloud / ownCloud credentials", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ found for this page", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Locked", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "We've found $AMOUNT$ credentials for this site", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "Save to $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "Saving to $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ credentials in the database", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman is logging you in as $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Vault", @@ -534,9 +588,5 @@ "text": { "message": "text", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/tr/messages.json b/_locales/tr/messages.json index a9116b12..9dcbf54d 100644 --- a/_locales/tr/messages.json +++ b/_locales/tr/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - Nextcloud / OwnCloud için Parola Yönetimi", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "Sunucudan alınan yanıt geçersiz: [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "Nextcloud / ownCloud kimlik doğrulama bilgilerinizi yazın", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - bu sayfa için $CREDENTIAL_AMOUNT$ $PLURAL$ buldu", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - Kilitlendi", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "Bu site için $AMOUNT$ bulundu", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "$VAULT_NAME$ üzerine kaydet", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "$VAULT_NAME$ üzerine kaydediliyor", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "Veri tabanında $AMOUNT$ kimlik doğrulama bilgisi var", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman sizi $USERNAME$ olarak izliyor", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "Kasa", @@ -534,9 +588,5 @@ "text": { "message": "metin", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index 48b8fab6..c300cebd 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - NextCloud 或 ownCloud 的密码管理器", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "服务器响应无效:[$STATUS_CODE$]$STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "请输入您的 Nextcloud 或 ownCloud 凭证", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - $CREDENTIAL_AMOUNT$ $PLURAL$ 找到这个页面", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - 锁定", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "我们已经找到了$AMOUNT$这个网站的凭据", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "保存到 $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "正在保存到 $VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "$AMOUNT$ 凭据在数据库中", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman 正在登录 $USERNAME$", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "保险箱", @@ -534,9 +588,5 @@ "text": { "message": "文本", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/zh_HK/messages.json b/_locales/zh_HK/messages.json index c60d05c9..4185fad0 100644 --- a/_locales/zh_HK/messages.json +++ b/_locales/zh_HK/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - NextCloud/ownCloud 的密碼管理器", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "來自伺服器的無效回覆: [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "請輸入您 Nextcloud/ownCloud 的身分驗證", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - 在頁面中找到$CREDENTIAL_AMOUNT$ $PLURAL$", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - 已上鎖", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "我們在此站點找到了 $AMOUNT$ 個身分驗證", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "儲存至$VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "正儲存至$VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "在數據庫中找到$AMOUNT$個身分驗證", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman 以 $USERNAME$ 的身分登入", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "保險庫", @@ -534,9 +588,5 @@ "text": { "message": "文字", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file diff --git a/_locales/zh_TW/messages.json b/_locales/zh_TW/messages.json index 1bd33b9c..362203d2 100644 --- a/_locales/zh_TW/messages.json +++ b/_locales/zh_TW/messages.json @@ -1,4 +1,8 @@ { + "extName": { + "message": "Passman", + "description": "Extension name" + }, "extDescription": { "message": "Passman - NextCloud/ownCloud 密碼管理器", "description": "Extension description" @@ -21,7 +25,17 @@ }, "invalid_response_from_server": { "message": "來自伺服器的無效回覆: [$STATUS_CODE$] $STATUS_TEXT$", - "description": "No credentials found for the current site" + "description": "No credentials found for the current site", + "placeholders": { + "status_code": { + "content": "$1", + "example": "404" + }, + "status_text": { + "content": "$2", + "example": "Page not found" + } + } }, "please_enter_nextcloud_credentials": { "message": "請輸入您 Nextcloud/ownCloud 憑證", @@ -121,7 +135,17 @@ }, "browser_action_title_login": { "message": "Passman - 在頁面中找到$CREDENTIAL_AMOUNT$ $PLURAL$", - "description": "String for the browser action" + "description": "String for the browser action", + "placeholders": { + "credential_amount": { + "content": "$1", + "example": "4" + }, + "plural": { + "content": "$2", + "example": "credentials" + } + } }, "browser_action_title_locked": { "message": "Passman - 已上鎖", @@ -505,23 +529,53 @@ }, "credentials_found_for_site": { "message": "我們在此站點找到了 $AMOUNT$ 個憑據", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "save_to": { "message": "儲存至$VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "saving_to": { "message": "正儲存至$VAULT_NAME$", - "description": "Amount of the credentials found for the current site" + "description": "Amount of the credentials found for the current site", + "placeholders": { + "vault_name": { + "content": "$1", + "example": "Main vault" + } + } }, "credentials_in_db": { "message": "在資料庫中找到$AMOUNT$憑證", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } }, "auto_login": { "message": "Passman 正嘗試以 $USERNAME$ 的身分將您登入", - "description": "Amount of the credentials in the database" + "description": "Amount of the credentials in the database", + "placeholders": { + "username": { + "content": "$1", + "example": "MyUsername" + } + } }, "vault": { "message": "保險庫", @@ -534,9 +588,5 @@ "text": { "message": "文字", "description": "To describe a textual input field" - }, - "extName": { - "message": "Passman", - "description": "Extension name" } } \ No newline at end of file From 3d6a526c39d02508ce034c2690ad6436e6ab9f92 Mon Sep 17 00:00:00 2001 From: Niklas Schmitt <niklas.schmitt@mailbox.org> Date: Mon, 18 Sep 2023 14:45:29 +0200 Subject: [PATCH 13/16] Updated npm dependencies Signed-off-by: Niklas Schmitt <niklas.schmitt@mailbox.org> --- .gitignore | 3 +- .jshintrc | 2 ++ Gruntfile.js | 38 +++++++--------------- contributing.md | 1 - karma.conf.js | 85 ------------------------------------------------- package.json | 32 ++++++++----------- 6 files changed, 29 insertions(+), 132 deletions(-) delete mode 100644 karma.conf.js diff --git a/.gitignore b/.gitignore index 707bc016..69c4b762 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ .DS_Storecss/*.map node_modules dist -extension.zip \ No newline at end of file +extension.zip +package-lock.json \ No newline at end of file diff --git a/.jshintrc b/.jshintrc index 27b74555..c43e7e9f 100644 --- a/.jshintrc +++ b/.jshintrc @@ -1,9 +1,11 @@ { + "esversion" : 8, "maxerr" : 50, "jquery" : true, // jQuery "globals" : { "angular": true, "PassmanImporter": true, + "PassmanExporter": true, "C_Promise": true, "window": true, "PAPI": true, diff --git a/Gruntfile.js b/Gruntfile.js index 2bb4b227..fcedaf2e 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -1,5 +1,7 @@ module.exports = function (grunt) { var jsResources = []; + const sass = require('node-sass'); + require('load-grunt-tasks')(grunt); // Project configuration. grunt.initConfig({ @@ -13,12 +15,9 @@ module.exports = function (grunt) { eqeqeq: true, eqnull: true, browser: true, + jshintrc: true, globals: { - "angular": true, - "PassmanImporter": true, - "PassmanExporter": true, "OC": true, - "window": true, "console": true, "CRYPTO": true, "C_Promise": true, @@ -34,6 +33,7 @@ module.exports = function (grunt) { }, sass: { options: { + implementation: sass, sourceMap: true }, dist: { @@ -86,10 +86,10 @@ module.exports = function (grunt) { '!.scrutinizer.yml', '!.travis.yml', '!Gruntfile.js', - '!karma.conf.js', '!launch_phpunit.sh', '!Makefile', '!package.json', + '!package-lock.json', '!phpunit.*', '!Dockerfile', '!*.md', @@ -100,12 +100,6 @@ module.exports = function (grunt) { dest: 'dist/' } }, - karma: { - unit: { - configFile: './karma.conf.js', - background: false - } - }, compress: { dist: { options: { @@ -119,26 +113,18 @@ module.exports = function (grunt) { clean: { dist: ['dist'] }, - execute: { + exec: { fixLocale: { - src: ['fixLocale.js'] + cmd: 'node fixLocale.js' + // stdout: false, + // stderr: false } } }); - grunt.loadNpmTasks('grunt-mkdir'); - grunt.loadNpmTasks('grunt-contrib-compress'); - grunt.loadNpmTasks('grunt-contrib-copy'); - grunt.loadNpmTasks('grunt-contrib-jshint'); - grunt.loadNpmTasks('grunt-contrib-clean'); - grunt.loadNpmTasks('grunt-execute'); - grunt.loadNpmTasks('grunt-karma'); - grunt.loadNpmTasks('grunt-sass'); - grunt.loadNpmTasks('grunt-contrib-watch'); - // Default task(s). - - grunt.registerTask('test', ['karma', 'jshint']); - grunt.registerTask('build', ['execute:fixLocale', 'sass', 'jshint', 'clean:dist', 'mkdir:dist', 'copy:dist', 'compress:dist']); + grunt.registerTask('default', ['jshint']); + grunt.registerTask('test', ['jshint']); + grunt.registerTask('build', ['exec', 'sass', 'jshint', 'clean:dist', 'mkdir:dist', 'copy:dist', 'compress:dist']); grunt.registerTask('dist', ['']); }; diff --git a/contributing.md b/contributing.md index d2bf3316..31d9c7be 100644 --- a/contributing.md +++ b/contributing.md @@ -4,7 +4,6 @@ You can read how to GPG sign you commits [here](https://help.github.com/articles # Tools used -[Karma](https://karma-runner.github.io): JS test framework [Bourbon](https://www.bourbon.io/): Sass->css framework [Grunt](https://gruntjs.com/): Automation tool to compile/test/deploy diff --git a/karma.conf.js b/karma.conf.js deleted file mode 100644 index ea17ed05..00000000 --- a/karma.conf.js +++ /dev/null @@ -1,85 +0,0 @@ -// Karma configuration -// Generated on Mon Oct 17 2016 15:46:52 GMT+0200 (CEST) -var isTravis = (process.env.TRAVIS_BUILD_NUMBER) ? true : false; -var isDocker = (process.env.DOCKER) ? true : false; -var browsers = ['Firefox']; -if(!isTravis){ - browsers = ['Chrome']; -} -if(isDocker){ - browsers = ['Chromium_Docker', 'Firefox_Docker']; -} -module.exports = function (config) { - config.set({ - - // base path that will be used to resolve all patterns (eg. files, exclude) - basePath: '.', - - - // frameworks to use - // available frameworks: https://npmjs.org/browse/keyword/karma-adapter - frameworks: ['jasmine'], - - - // list of files / patterns to load in the browser - files: [ - 'js/lib/data/tlds.js', - 'js/lib/parseTLD.js', - 'js/lib/parseUrl.js', - { pattern: 'tests/**/*.js', included: true } - ], - - - // list of files to exclude - exclude: [ - ], - - - // preprocess matching files before serving them to the browser - // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor - preprocessors: {}, - - - // test results reporter to use - // possible values: 'dots', 'progress' - // available reporters: https://npmjs.org/browse/keyword/karma-reporter - reporters: ['verbose'], - - - // web server port - port: 9876, - - - // enable / disable colors in the output (reporters and logs) - colors: true, - - - // level of logging - // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG - logLevel: config.LOG_INFO, - - - // enable / disable watching file and executing tests whenever any file changes - autoWatch: false, - - - // start these browsers - // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher - browsers: browsers, - customLaunchers: { - Chromium_Docker: { - base: 'Chromium', - flags: ['--headless', '--disable-gpu', '--remote-debugging-port=9222', '--no-sandbox'] - }, - Firefox_Docker: { - base: 'Firefox', - flags: ['--headless'] - } - }, - - - // Continuous Integration mode - // if true, Karma captures browsers, runs the tests and exits - singleRun: true - }); -}; \ No newline at end of file diff --git a/package.json b/package.json index 03100a43..49d32ba6 100644 --- a/package.json +++ b/package.json @@ -1,29 +1,23 @@ { "name": "passman-web-extension", "version": "1.0.0", - "description": "Tested on: - Chrome - Firefox - Safari", + "description": "Webextension for the Passman Nextcloud app", "main": "Gruntfile.js", "dependencies": { - "grunt": "~0.4.5", - "grunt-cli": "~1.2.0", - "grunt-contrib-clean": "^1.0.0", - "grunt-contrib-compress": "^1.4.1", + "grunt": "^1.6.1", + "grunt-cli": "^1.4.3", + "grunt-contrib-clean": "^2.0.1", + "grunt-contrib-compress": "^2.0.0", "grunt-contrib-copy": "^1.0.0", - "grunt-contrib-jshint": "^0.12.0", - "grunt-execute": "^0.2.2", - "grunt-karma": "^2.0.0", - "grunt-mkdir": "^1.0.0", - "jasmine-core": "^2.6.1", + "grunt-contrib-jshint": "^3.2.0", + "grunt-contrib-watch": "^1.1.0", + "grunt-exec": "^3.0.0", + "grunt-mkdir": "^1.1.0", + "grunt-sass": "^3.1.0", + "jasmine-core": "^5.1.1", "jshint-stylish": "^2.2.1", - "karma": "^1.7.0", - "karma-chrome-launcher": "^2.1.1", - "karma-firefox-launcher": "^1.0.1", - "karma-jasmine": "^1.1.0", - "karma-verbose-reporter": "0.0.6" - }, - "devDependencies": { - "grunt-contrib-watch": "^1.0.0", - "grunt-sass": "^2.1.0" + "load-grunt-tasks": "^5.1.0", + "node-sass": "^9.0.0" }, "scripts": { "test": "echo \"Error: no test specified\" && exit 1" From 6d807f951ca3e2d022a8d51805988045480600fd Mon Sep 17 00:00:00 2001 From: Niklas Schmitt <niklas.schmitt@mailbox.org> Date: Mon, 18 Sep 2023 16:24:54 +0200 Subject: [PATCH 14/16] Deleted Dockerfile & .travis.yml. Updated contributing.md Signed-off-by: Niklas Schmitt <niklas.schmitt@mailbox.org> --- .travis.yml | 11 ----------- Dockerfile | 27 --------------------------- contributing.md | 7 ------- 3 files changed, 45 deletions(-) delete mode 100644 .travis.yml delete mode 100644 Dockerfile diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index f25f68d1..00000000 --- a/.travis.yml +++ /dev/null @@ -1,11 +0,0 @@ -language: node_js -before_install: - - export DISPLAY=:99.0 - - sh -e /etc/init.d/xvfb start -before_script: - - npm install -script: - - grunt test - -addons: - firefox: "latest" \ No newline at end of file diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index bd1f9e0a..00000000 --- a/Dockerfile +++ /dev/null @@ -1,27 +0,0 @@ -FROM node:lts-stretch-slim - -# Install Ruby & Bourbon -# Only required once to init project -# RUN apk update && apk upgrade && apk --update add \ -# ruby ruby-dev ruby-ffi ruby-irb ruby-rake ruby-io-console ruby-bigdecimal ruby-json ruby-bundler \ -# libstdc++ tzdata bash ca-certificates \ -# && echo 'gem: --no-document' > /etc/gemrc -# RUN gem install bourbon - -RUN apt-get update && \ - apt-get install -y chromium firefox-esr && \ - rm -rf /var/lib/apt/ - -# Install node packages -RUN npm install -g grunt-cli - -# Environment vars -ENV DOCKER="True" - -# Copy files -RUN mkdir -p /passman -WORKDIR /passman -COPY . /passman - -# Install project dependencies -RUN npm install diff --git a/contributing.md b/contributing.md index 31d9c7be..0797b7fc 100644 --- a/contributing.md +++ b/contributing.md @@ -2,16 +2,9 @@ If you want to contribute make sure the commits are `verified`. You can read how to GPG sign you commits [here](https://help.github.com/articles/signing-commits-using-gpg/). - # Tools used [Bourbon](https://www.bourbon.io/): Sass->css framework [Grunt](https://gruntjs.com/): Automation tool to compile/test/deploy -# Test -With Docker: -``` -docker build . -t passman-dev && docker run -it --rm --user=`id -u` passman-dev grunt test -``` - # Tips Compile scss to scc: `grunt watch` \ No newline at end of file From d73ddd177a1d0a2e58997e2799e1a699ec34e867 Mon Sep 17 00:00:00 2001 From: James Bottomley <James.Bottomley@HansenPartnership.com> Date: Sat, 5 Jul 2025 10:58:49 -0400 Subject: [PATCH 15/16] add passkey implementation (frontend only) use the existing wasm passkey implementation from 1password (passkey-rs) compiled by proton to webassembly as the basis for adding passkeys to the extension. This commit adds all the mechanics of passkeys but no backend storage. Note that the overriding of nagivator.credentials.get and .create only works on Firefox. To get it to work on Chrome, the manifest version will have to be updated to v3 so the injector can use world: main to hijack the methods. When this happens, the injector will have to have a main and isolated component that communicate using window events due to the new restriction on main scripts not being able to use backend APIs. Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com> --- Gruntfile.js | 6 +- js/background/inject/passkey.js | 242 ++++++++++++++++++++++++++++ js/background/service/background.js | 13 +- js/background/service/passkey.js | 110 +++++++++++++ manifest.json | 5 +- package.json | 3 +- 6 files changed, 372 insertions(+), 7 deletions(-) create mode 100644 js/background/inject/passkey.js create mode 100644 js/background/service/passkey.js diff --git a/Gruntfile.js b/Gruntfile.js index fcedaf2e..7d892dc6 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -95,10 +95,12 @@ module.exports = function (grunt) { '!*.md', '!*.zip', '!swagger.yaml', - '!.tx' + '!.tx', + 'node_modules/@protontech/**/worker/*.js', + 'node_modules/@protontech/**/worker/*.wasm' ], dest: 'dist/' - } + } }, compress: { dist: { diff --git a/js/background/inject/passkey.js b/js/background/inject/passkey.js new file mode 100644 index 00000000..3f76c08d --- /dev/null +++ b/js/background/inject/passkey.js @@ -0,0 +1,242 @@ +/* jshint esversion: 11 */ + +/* injection functions run as eartly as possible */ + +const creds = self.navigator.credentials; +const passkeySupported = + typeof creds?.get === 'function' && + typeof creds?.create === 'function'; + +const prevCreate = creds.create.bind(self.navigator.credentials); +const prevGet = creds.get.bind(self.navigator.credentials); + +function toBase64arr(arr) { + return toBase64arrNoUrl(arr).replaceAll('+', '-') + .replaceAll('/', '_').replaceAll('=', ''); +} + +function toBase64arrNoUrl(arr) { + const bytes = new Uint8Array(arr); + const bs = String.fromCharCode(...bytes); + return btoa(bs); +} + +/* mutate a JSON object to encode all arraybuffers as base64 so that +* JSON.stringify will work on it */ +function toBase64(o) { + for (const k in o) { + + if (o[k].constructor.name === 'ArrayBuffer') { + o[k] = toBase64arrNoUrl(o[k]); + } else if (typeof o === 'object') { + toBase64(o[k]); + } + } +} + +function WArray(arr) { + if (arr == null) + return null; + return new Uint8Array(arr); +} + +function getAttestationResponse(r) { + const response = { + attestationObject: WArray(r.attestation_object).buffer, + clientDataJSON: WArray(r.client_data_json).buffer, + getAuthenticatorData: () => clone(WArray(r.authenticator_data).buffer), + getPublicKey: () => clone(WArray(r.public_key).buffer), + getPublicKeyAlgorithm: () => clone(r.public_key_algorithm), + getTransports: () => clone(r.transports) + }; + response.toJSON = () => ({ + attestationObject: toBase64arr(response.attestationObject), + clientDataJSON: toBase64arr(response.clientDataJSON), + authenticatorData: toBase64arr(response.getAuthenticatorData()), + publicKey: toBase64arr(response.getPublicKey()), + publicKeyAlgorithm: response.getPublicKeyAlgorithm(), + transports: response.getTransports() + }); + Object.setPrototypeOf(response, AuthenticatorAttestationResponse.prototype); + return response; +} + +function getAssertionResponse(r) { + const response = { + clientDataJSON: WArray(r.client_data_json).buffer, + authenticatorData: WArray(r.authenticator_data), + signature: WArray(r.signature), + userHandle: r.user_handle + }; + response.toJSON = () => ({ + clientDataJSON: toBase64arr(response.clientDataJSON), + authenticatorData: toBase64arr(response.authenticatorData), + signature: toBase64arr(response.signature), + userHandle: response.user_handle + }); + Object.setPrototypeOf(response, AuthenticatorAssertionResponse.prototype); + return response; +} + +function getCred(c, r) { + const cred = { + authenticatorAttachment: c.authenticator_attachment, + id: c.id, + rawId: WArray(c.raw_id).buffer, + response: r, + type: c.type, + getClientExtensionResults: () => clone(c.client_extension_results), + }; + cred.toJSON = () => clone({ + authenticatorAttachment: cred.authenticatorAttachment, + id: cred.id, + rawId: toBase64arr(cred.rawId), + response: r.toJSON(), + type: cred.type, + clientExtensionResults: cred.getClientExtensionResults() + }); + Object.setPrototypeOf(cred, PublicKeyCredential.prototype); + + return cred; +} +/* on firefox, data must be cloned to share with a page */ +function clone(o) { + if (typeof window === 'undefined') + return o; + return cloneInto(o, window, {cloneFunctions: true}); +} + +/* firefox can't cloneInto a promise, must use window.Promise */ +function wPromise(f) { + if (typeof window !== 'undefined') + return new window.Promise(f); + else + return new Promise(f); +} + +/* this should be an async function but because of firefox + * permission problems, it has to be a sync function returning + * a cross window promise. Don't ask why firefox couldn't simply + * cloneInto the promise ... + */ +function createCredential(options) { + return wPromise(async function(resolve) { + console.log("create new passkey credential", options); + + var pk = options.publicKey; + + toBase64(pk); + + console.log("request is ", pk); + + const name = pk.user.name ?? pk.user.displayName; + + const keys = await API.runtime.sendMessage(API.runtime.id, + {method: 'passkey.query', + args: { + domain: location.hostname, + userId: pk.user.id + }}); + + if (keys.length != 0) { + alert('passkey already exists for user "' + name + '".'); + resolve(await prevCreate(options)); + } + + if (!confirm('Create a new passkey for user "' + name + '"?')) + resolve(await prevCreate(options)); + + var ret = await API.runtime.sendMessage(API.runtime.id, + {method: 'passkey.generate', + args: { + domain: location.hostname, + request: JSON.stringify(pk) + }}) + .then(async function (ret) { + if (ret != null) + return ret; + else + return await prevCreate(options); + }); + console.log('ret = ', ret); + const c = ret.credential; + const r = c.response; + const response = getAttestationResponse(r); + const cred = getCred(c, response); + resolve(clone(cred)); + }); +} + +function getCredential(options) { + return wPromise(async function(resolve) { + console.log("get passkey credential", options); + + pk = options.publicKey; + toBase64(pk); + + console.log('request is ', pk); + + var keys = await API.runtime.sendMessage(API.runtime.id, + {method: 'passkey.query', + args: { + domain: location.hostname + }}); + if (keys.length == 0) + return prevGet(options); + + if (keys.length == 1) { + const name = keys[0].userName ?? keys[0].userDisplayName; + if (!confirm('Log in to site with passkey for "' + name + '"?')) + return prevGet(options); + } else { + // fixme: need selector for multiple users + return prevGet(options); + } + + var ret = await API.runtime.sendMessage(API.runtime.id, + {method: 'passkey.get', + args: { + domain: location.hostname, + request: pk + }}) + .then(async function (ret) { + if (ret != null) + return ret; + else + return await prevGet(options); + }); + console.log('got ret = ', ret); + const c = ret.credential; + const r = c.response; + const response = getAssertionResponse(r); + const cred = getCred(c, response); + resolve(clone(cred)); + }); +} + +/* firefox uses exportFunctions */ +function exporter(fn, target, options) { + if (globalThis.exportFunction != null) + exportFunction(fn, target, options); + else + target[options.defineAs] = fn; +} + +if (passkeySupported) { + console.log("Passkeys are supported"); + + if (creds != null) { + exporter(createCredential, creds, {defineAs: 'create'}); + exporter(getCredential, creds, {defineAs: 'get'}); + + if (self.PublicKeyCredential) { + console.log("have publickeycredential"); + // required to get the correct client capabilities + exporter(function () { return true; }, self.PublicKeyCredential, {defineAs: 'isConditionalMediationAvailable'}); + exporter(function () { return true; }, self.PublicKeyCredential, {defineAs: 'isUserVerifyingPlatformAuthenticatorAvailable'}); + } else { + console.log("NO publickeycredential"); + } + } +} + diff --git a/js/background/service/background.js b/js/background/service/background.js index 307267c7..24fdc454 100644 --- a/js/background/service/background.js +++ b/js/background/service/background.js @@ -630,10 +630,17 @@ var background = (function () { return; } var result = false; - if (_self[msg.method]) { - result = _self[msg.method](msg.args, sender); + var methods = _self; + var call = msg.method; + if (call.startsWith('passkey.')) { + /** global: passkey */ + methods = passkey; + call = call.slice(8); // strip 'passkey.' + } + if (methods[call]) { + result = methods[call](msg.args, sender); } else { - console.warn('[NOT FOUND] Method call', msg.method, 'args: ', msg.args); + console.warn('[NOT FOUND] Method call', call, 'args: ', msg.args); } sendResponse(result); diff --git a/js/background/service/passkey.js b/js/background/service/passkey.js new file mode 100644 index 00000000..26348aaa --- /dev/null +++ b/js/background/service/passkey.js @@ -0,0 +1,110 @@ +/* global API */ +/* jshint esversion: 11 */ + +const passkey = (function () { + var _export = {}; + + var core = {}; + + function toBase64arrNoUrl(arr) { + const bytes = new Uint8Array(arr); + const bs = String.fromCharCode(...bytes); + return btoa(bs); + } + + function urltweak(arr) { + return arr.replaceAll('+', '-') + .replaceAll('/', '_') + .replaceAll('=', ''); + } + + class Passkey { + constructor(ret) { + this.passkey = ret.passkey; + this.domain = ret.domain; + this.id = ret.credential.id; + this.userName = ret.user_name; + this.userDisplayName = ret.user_display_name; + this.userId = toBase64arrNoUrl(ret.user_id); + } + } + + const passes = []; + + var wasmFile = fetch('/node_modules/@protontech/pass-rust-core/worker/proton_pass_web_bg.wasm'); + var passjs = import('/node_modules/@protontech/pass-rust-core/worker/proton_pass_web_bg.js').then(async function (ret) { + var wasm = await WebAssembly.instantiateStreaming(wasmFile, {'./proton_pass_web_bg.js': ret}) + .then(function (value) { + var exports = value.instance.exports; + + console.log('[passman] wasm instantiated'); + + return exports; + }) + .catch(function (error) { + console.error('[passman] instantiate webassembly failed'); + throw (error); + }); + ret.__wbg_set_wasm(wasm); + core = ret; + console.log('[passman] wasm exports: ', ret.library_version()); + + return ret; + }).catch(function (err) { + console.error('[passman] failed to load js for rust'); + throw (err); + }); + + async function ensureCore() { + await passjs; + } + + _export.generate = async function (args, sender) { + ensureCore(); + + console.log('in generate_passkey core = ', core != null); + console.log('request = ', args.request); + var ret = await core.generate_passkey(args.domain, args.request); + passes.push(new Passkey(ret)); + return ret; + }; + + _export.get = function (args, sender) { + ensureCore(); + + const request = args.request; + + console.log('in passkey get, request =', request); + const passes = getPasses(args.domain); + const keys = passes.filter((p) => + (p.domain == args.domain && + (request.allowCredentials == null || + request.allowCredentials.length == 0 || + request.allowCredentials.find((e) => (urltweak(e.id) == p.id)) !== undefined))); + if (keys.length == 0) { + console.error('no keys found'); + return null; + } + console.log('found key = ', keys[0]); + const content = new Uint8Array(keys[0].passkey); + console.log('content is ', content); + + return core.resolve_passkey_challenge(args.domain, content, JSON.stringify(request)); + }; + + _export.query = function (args, sender) { + ensureCore(); + + console.log('in passkey query, args = ', args); + const keys = passes.filter((p) => (p.domain == args.domain && + (args.userId == null || p.userId == args.userId))) + .map((x) => ({ + userId: x.userId, + userName: x.userName, + userDisplayName: x.userDisplayName + })); + return keys; + }; + + return _export; +}()); diff --git a/manifest.json b/manifest.json index 13140237..7a7462d7 100644 --- a/manifest.json +++ b/manifest.json @@ -41,6 +41,7 @@ "/js/lib/otp.js", "/js/lib/passwordgen.js", "/js/background/service/contextMenu.js", + "/js/background/service/passkey.js", "/js/background/service/background.js", "/js/background/service/httpAuth.js" ] @@ -70,6 +71,7 @@ "webRequest", "webRequestBlocking" ], + "content_security_policy": "script-src 'self' 'wasm-unsafe-eval'; object-src 'self'", "content_scripts": [ { "matches": [ @@ -92,7 +94,8 @@ "/js/lib/parseTLD.js", "/js/lib/data/tlds.js", "/js/lib/domchanged.js", - "/js/background/inject/inject.js" + "/js/background/inject/inject.js", + "/js/background/inject/passkey.js" ], "css":[ "/css/doorhanger-iframe.css" diff --git a/package.json b/package.json index 49d32ba6..61718dcd 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,8 @@ "jasmine-core": "^5.1.1", "jshint-stylish": "^2.2.1", "load-grunt-tasks": "^5.1.0", - "node-sass": "^9.0.0" + "node-sass": "^9.0.0", + "@protontech/pass-rust-core": "^0.21.0" }, "scripts": { "test": "echo \"Error: no test specified\" && exit 1" From 79ea5a6b4b7e0dd2c73d08325cd848b1b844778e Mon Sep 17 00:00:00 2001 From: James Bottomley <James.Bottomley@HansenPartnership.com> Date: Tue, 22 Jul 2025 11:26:27 -0400 Subject: [PATCH 16/16] Add backend storage for Passkeys Since the database theoretically needs expanding for additional primary fields (which causes versioning issues) just shovel the passkey into a hidden custom field. Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com> --- html/browser_action/views/list.html | 3 +++ js/background/service/background.js | 11 +++++++++ js/background/service/passkey.js | 36 ++++++++++++++++++++++++++--- js/lib/api.js | 18 +++++++++++++++ 4 files changed, 65 insertions(+), 3 deletions(-) diff --git a/html/browser_action/views/list.html b/html/browser_action/views/list.html index d69ee526..b18648b8 100644 --- a/html/browser_action/views/list.html +++ b/html/browser_action/views/list.html @@ -19,6 +19,9 @@ <div class="edit" ng-click="editCredential(credential)"> <div class="mdi mdi-pencil"></div> </div> + <div class="extra" ng-if="credential.passkey"> + Passkey <span class="mdi mdi-periscope"></span> available + </div> </div> </div> \ No newline at end of file diff --git a/js/background/service/background.js b/js/background/service/background.js index 24fdc454..f60dabc5 100644 --- a/js/background/service/background.js +++ b/js/background/service/background.js @@ -345,8 +345,19 @@ var background = (function () { return getCredentialsByUrl(req.url)[0]; } + function savePasskey(k) { + if (k.account == null) { + k.account = getSetting('accounts')[0]; + k.vault_id = k.account.vault.vault_id; + } + saveCredential(k); + } + _window.getCredentialForHTTPAuth = getCredentialForHTTPAuth; + _window.getCredentialsForPasskey = (dom) => getCredentialsByUrl('https://' + dom); + _window.savePasskey = savePasskey; + var mined_data = []; function minedForm(data, sender) { diff --git a/js/background/service/passkey.js b/js/background/service/passkey.js index 26348aaa..9e6f5a71 100644 --- a/js/background/service/passkey.js +++ b/js/background/service/passkey.js @@ -29,8 +29,6 @@ const passkey = (function () { } } - const passes = []; - var wasmFile = fetch('/node_modules/@protontech/pass-rust-core/worker/proton_pass_web_bg.wasm'); var passjs = import('/node_modules/@protontech/pass-rust-core/worker/proton_pass_web_bg.js').then(async function (ret) { var wasm = await WebAssembly.instantiateStreaming(wasmFile, {'./proton_pass_web_bg.js': ret}) @@ -59,13 +57,44 @@ const passkey = (function () { await passjs; } + function getPasses(domain) { + const logins = background.getCredentialsForPasskey(domain); + return logins.map((x) => x.passkey) + .filter((x) => x != null); + } + _export.generate = async function (args, sender) { ensureCore(); console.log('in generate_passkey core = ', core != null); console.log('request = ', args.request); + + request = JSON.parse(args.request); + + const name = request.user.name ?? request.user.displayName; + var ret = await core.generate_passkey(args.domain, args.request); - passes.push(new Passkey(ret)); + if (ret == null) + return ret; + + /* in case we have a non passkey login we're converting to passkey */ + logins = background.getCredentialsForPasskey(args.domain) + .filter((x) => x.username == name); + + var credential; + + if (logins.length == 0) { + credential = PAPI.newCredential(); + credential.passkey = new Passkey(ret); + credential.username = name; + credential.password = ''; + credential.url = 'https://' + args.domain; + credential.label = sender.tab.title; + } else { + credential = logins[0]; + credential.passkey = new Passkey(ret); + } + background.savePasskey(credential); return ret; }; @@ -96,6 +125,7 @@ const passkey = (function () { ensureCore(); console.log('in passkey query, args = ', args); + const passes = getPasses(args.domain); const keys = passes.filter((p) => (p.domain == args.domain && (args.userId == null || p.userId == args.userId))) .map((x) => ({ diff --git a/js/lib/api.js b/js/lib/api.js index a2e6d5b1..a42adbc3 100644 --- a/js/lib/api.js +++ b/js/lib/api.js @@ -2,6 +2,9 @@ window.PAPI = (function () { var _encryptedFields = ['description', 'username', 'password', 'files', 'custom_fields', 'otp', 'email', 'tags', 'url']; + // label string to identify stored passkey + const PKKEY = '<>PASSKEY<>'; + var encryption_config = { adata: "", iter: 1000, @@ -57,6 +60,13 @@ window.PAPI = (function () { } } + const idx = credential.custom_fields.findIndex((o) => o.label == PKKEY); + if (idx >= 0) { + credential.passkey = JSON.parse(credential.custom_fields[idx].value); + // delete the field so it doesn't show up in the editor + credential.custom_fields.splice(idx, 1); + } + return credential; }, @@ -91,6 +101,14 @@ window.PAPI = (function () { }; }, encryptCredential: function (credential, _key) { + if (credential.passkey != null) { + credential.custom_fields.push({ + label: PKKEY, + value: JSON.stringify(credential.passkey), + }); + delete credential.passkey; + } + for (var i = 0; i < _encryptedFields.length; i++) { var field = _encryptedFields[i]; var fieldValue = credential[field];