Compare commits

..

1 Commits

Author SHA1 Message Date
nfebe 8bf8b01bac feat: add /remove-skip-ci command for backport workflows
The existing /compile amend command removes [skip ci] but merges the
compile step with the changes themselves which is not ideal to maintain
a cleaner history. Sometimes GitHub reviews are sufficient to confirm a
backport without need to pull and ammend locally in the case where the developer
prefers not to squash the compile step.

This new command allows removing [skip ci] from commits without
triggering asset compilation.

Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-10-30 13:25:09 +01:00
459 changed files with 2713 additions and 1987 deletions
+3 -5
View File
@@ -32,18 +32,16 @@ jobs:
build-mode: none
steps:
- name: Checkout repository
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
uses: actions/checkout@v5
- name: Initialize CodeQL
uses: github/codeql-action/init@5d5cd550d3e189c569da8f16ea8de2d821c9bf7a # v3.31.2
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}
config-file: ./.github/codeql-config.yml
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@5d5cd550d3e189c569da8f16ea8de2d821c9bf7a # v3.31.2
uses: github/codeql-action/analyze@v3
with:
category: "/language:${{matrix.language}}"
@@ -0,0 +1,97 @@
name: Remove Skip CI Command
on:
issue_comment:
types: [created]
permissions:
contents: read
jobs:
init:
runs-on: ubuntu-latest
if: github.event.issue.pull_request != '' && startsWith(github.event.comment.body, '/remove-skip-ci')
outputs:
head_ref: ${{ steps.comment-branch.outputs.head_ref }}
steps:
- name: Get repository from pull request comment
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
id: get-repository
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const pull = await github.rest.pulls.get({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.issue.number
});
return pull.data.head?.repo?.full_name
- name: Disabled on forks
if: ${{ fromJSON(steps.get-repository.outputs.result) != github.repository }}
run: |
echo 'Can not execute /remove-skip-ci on forks'
exit 1
- name: Check actor permission
uses: skjnldsv/check-actor-permission@69e92a3c4711150929bca9fcf34448c5bf5526e7 # v2
with:
require: write
- name: Add reaction on start
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
reactions: '+1'
- name: Init branch
uses: xt0rted/pull-request-comment-branch@e8b8daa837e8ea7331c0003c9c316a64c6d8b0b1 # v3.0.0
id: comment-branch
- name: Add reaction on failure
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
if: failure()
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
reactions: '-1'
process:
runs-on: ubuntu-latest
needs: init
steps:
- name: Checkout ${{ needs.init.outputs.head_ref }}
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: true
token: ${{ secrets.COMMAND_BOT_PAT }}
fetch-depth: 0
ref: ${{ needs.init.outputs.head_ref }}
- name: Setup git
run: |
git config --local user.email 'nextcloud-command@users.noreply.github.com'
git config --local user.name 'nextcloud-command'
- name: Amend commit and remove skip-ci
run: |
git commit --amend -m "$(git log -1 --format='%B' | sed '/\[skip ci\]/d')"
- name: Force push
env:
HEAD_REF: ${{ needs.init.outputs.head_ref }}
run: git push --force-with-lease origin "$HEAD_REF"
- name: Add reaction on failure
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
if: failure()
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
reactions: '-1'
-1
View File
@@ -17,7 +17,6 @@ OC.L10N.register(
"Delete comment" : "Elimina commento",
"Cancel edit" : "Annulla modifica",
"New comment" : "Nuovo commento",
"Write a comment …" : "Scrivi un commento ...",
"Post comment" : "Pubblica commento",
"@ for mentions, : for emoji, / for smart picker" : "@ per menzioni, : per emoji, / per selettore intelligente",
"Could not reload comments" : "Impossibile ricaricare i commenti",
-1
View File
@@ -15,7 +15,6 @@
"Delete comment" : "Elimina commento",
"Cancel edit" : "Annulla modifica",
"New comment" : "Nuovo commento",
"Write a comment …" : "Scrivi un commento ...",
"Post comment" : "Pubblica commento",
"@ for mentions, : for emoji, / for smart picker" : "@ per menzioni, : per emoji, / per selettore intelligente",
"Could not reload comments" : "Impossibile ricaricare i commenti",
-1
View File
@@ -20,7 +20,6 @@ OC.L10N.register(
"Edit widgets" : "Modifica widget",
"Get more widgets from the App Store" : "Ottieni altri widget dal negozio delle applicazioni",
"Weather service" : "Servizio meteo",
"For your privacy, the weather data is requested by your {productName} server on your behalf so the weather service receives no personal information." : "Per la tua riservatezza, i dati meteorologici sono richiesti dal tuo server {productName} per tuo conto, per cui il servizio meteo non riceve informazioni personali.",
"Weather data from Met.no" : "Dati meteo da Met.no",
"geocoding with Nominatim" : "geocodifica conh Nominatim",
"elevation data from OpenTopoData" : "dati di elevazione da OpenTopoData",
-1
View File
@@ -18,7 +18,6 @@
"Edit widgets" : "Modifica widget",
"Get more widgets from the App Store" : "Ottieni altri widget dal negozio delle applicazioni",
"Weather service" : "Servizio meteo",
"For your privacy, the weather data is requested by your {productName} server on your behalf so the weather service receives no personal information." : "Per la tua riservatezza, i dati meteorologici sono richiesti dal tuo server {productName} per tuo conto, per cui il servizio meteo non riceve informazioni personali.",
"Weather data from Met.no" : "Dati meteo da Met.no",
"geocoding with Nominatim" : "geocodifica conh Nominatim",
"elevation data from OpenTopoData" : "dati di elevazione da OpenTopoData",
-1
View File
@@ -186,7 +186,6 @@ OC.L10N.register(
"Delete slot" : "Изтриване на слот",
"No working hours set" : "Няма зададено работно време",
"Add slot" : "Добавяне на слот",
"Weekdays" : "Делнични дни",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Автоматично задаване на потребителският статус на „Не безпокойте“ извън достъпността, за заглушаване на всички известия.",
"Cancel" : "Отказ",
"Import" : "Импортиране /внасяне/",
-1
View File
@@ -184,7 +184,6 @@
"Delete slot" : "Изтриване на слот",
"No working hours set" : "Няма зададено работно време",
"Add slot" : "Добавяне на слот",
"Weekdays" : "Делнични дни",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Автоматично задаване на потребителският статус на „Не безпокойте“ извън достъпността, за заглушаване на всички известия.",
"Cancel" : "Отказ",
"Import" : "Импортиране /внасяне/",
-2
View File
@@ -72,8 +72,6 @@ OC.L10N.register(
"Description: %s" : "Descrizione: %s",
"Where: %s" : "Dove: %s",
"%1$s via %2$s" : "%1$s tramite %2$s",
"In the past on %1$s for the entire day" : "In passato ogni %1$s per l'intero giorno",
"_In a minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["Fra un minuto di %1$s per l'intero giorno","Fra %n minuti di %1$s per l'intero giorno","Fra %n minuti di %1$s per l'intero giorno"],
"Every Day for the entire day" : "Ogni giorno per l'intero giorno",
"Every Day for the entire day until %1$s" : "Ogni Giorno per l'intero giorno fino a %1$s",
"Every Day between %1$s - %2$s" : "Ogni giorno tra %1$s-%2$s",
-2
View File
@@ -70,8 +70,6 @@
"Description: %s" : "Descrizione: %s",
"Where: %s" : "Dove: %s",
"%1$s via %2$s" : "%1$s tramite %2$s",
"In the past on %1$s for the entire day" : "In passato ogni %1$s per l'intero giorno",
"_In a minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["Fra un minuto di %1$s per l'intero giorno","Fra %n minuti di %1$s per l'intero giorno","Fra %n minuti di %1$s per l'intero giorno"],
"Every Day for the entire day" : "Ogni giorno per l'intero giorno",
"Every Day for the entire day until %1$s" : "Ogni Giorno per l'intero giorno fino a %1$s",
"Every Day between %1$s - %2$s" : "Ogni giorno tra %1$s-%2$s",
-3
View File
@@ -34,9 +34,6 @@ OC.L10N.register(
"Please login to the web interface, go to the \"Security\" section of your personal settings and update your encryption password by entering this password into the \"Old login password\" field and your current login password." : "Webインターフェースにログインし、個人設定の「セキュリティ」セクションに移動し、「旧ログインパスワード」フィールドにこのパスワードと現在のログインパスワードを入力して、暗号化パスワードを更新してください。",
"Cannot decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "このファイルを復号化できません、共有ファイルの可能性があります。ファイルの所有者にお願いして、ファイルを共有しなおしてもらってください。",
"Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "このファイルを読み取ることができません、共有ファイルの可能性があります。ファイルの所有者にお願いして、ファイルを共有しなおしてもらってください。",
"Default Encryption Module" : "デフォルトの暗号化モジュール",
"Default encryption module for Nextcloud Server-side Encryption (SSE)" : "Nextcloud サーバー側暗号化 (SSE) のデフォルトの暗号化モジュール",
"This app provides the (default) cryptography implementation for Nextcloud's Server-side Encryption (SSE) feature.\n\n\t\t\t**Encryption Details**\n\t\t\t* **Cipher Mode:** AES-256-CTR (default)\n\t\t\t* **Authentication:** HMAC-SHA256\n\n\t\t\t**Important Warnings**\n\t\t\t* **DANGER:** Do not disable this application until all files have been decrypted (`occ encryption:decrypt-all`).\n\t\t\t* **WARNING**: Reverting to non-encrypted file storage after activation requires command-line access. The action is permanent via the Web UI.\"\n\n\t\t\t**Notes for Existing Files**\n\t\t\t* By default, enabling SSE does not encrypt existing files; only new files will be encrypted.\n\t\t\t* To encrypt all existing files, use the command `occ encryption:encrypt-all`.\n\n\t\t\t**Before You Begin**\n\t\t\t* **Read the Documentation:** Before you enable SSE, encrypt existing files, or disable SSE, it is critical to \n\t\t\t\tread the documentation to understand implications and the appropriate procedures to avoid data loss." : "このアプリは、Nextcloud のサーバー側暗号化 (SSE) 機能の(デフォルトの)暗号化実装を提供します。\n\n**暗号化の詳細**\n* **暗号モード:** AES-256-CTR (デフォルト)\n* **認証:** HMAC-SHA256\n\n**重要な警告**\n* **危険:** すべてのファイルが復号化されるまで、このアプリケーションを無効にしないでください (`occ encryption:decrypt-all`)。\n* **警告**: アクティベーション後に暗号化されていないファイルストレージに戻すには、コマンドラインアクセスが必要です。この操作はWeb UI経由で永続的に実行されます。\n\n**既存ファイルに関する注意事項**\n* デフォルトでは、SSEを有効にしても既存のファイルは暗号化されず、新規ファイルのみが暗号化されます。\n* 既存のすべてのファイルを暗号化するには、コマンド「occ encryption:encrypt-all」を使用します。\n\n**始める前に**\n* **ドキュメントを読む:** SSEを有効化、既存ファイルを暗号化、または無効化する前に、\nSSEの影響とデータ損失を回避するための適切な手順を理解するために、ドキュメントを読むことが重要です。",
"Default encryption module" : "デフォルトの暗号化モジュール",
"Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "暗号化アプリは有効ですが、あなたの暗号化キーは初期化されていません。ログアウトした後に、再度ログインしてください",
"Encrypt the home storage" : "メインストレージ暗号化",
-3
View File
@@ -32,9 +32,6 @@
"Please login to the web interface, go to the \"Security\" section of your personal settings and update your encryption password by entering this password into the \"Old login password\" field and your current login password." : "Webインターフェースにログインし、個人設定の「セキュリティ」セクションに移動し、「旧ログインパスワード」フィールドにこのパスワードと現在のログインパスワードを入力して、暗号化パスワードを更新してください。",
"Cannot decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "このファイルを復号化できません、共有ファイルの可能性があります。ファイルの所有者にお願いして、ファイルを共有しなおしてもらってください。",
"Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "このファイルを読み取ることができません、共有ファイルの可能性があります。ファイルの所有者にお願いして、ファイルを共有しなおしてもらってください。",
"Default Encryption Module" : "デフォルトの暗号化モジュール",
"Default encryption module for Nextcloud Server-side Encryption (SSE)" : "Nextcloud サーバー側暗号化 (SSE) のデフォルトの暗号化モジュール",
"This app provides the (default) cryptography implementation for Nextcloud's Server-side Encryption (SSE) feature.\n\n\t\t\t**Encryption Details**\n\t\t\t* **Cipher Mode:** AES-256-CTR (default)\n\t\t\t* **Authentication:** HMAC-SHA256\n\n\t\t\t**Important Warnings**\n\t\t\t* **DANGER:** Do not disable this application until all files have been decrypted (`occ encryption:decrypt-all`).\n\t\t\t* **WARNING**: Reverting to non-encrypted file storage after activation requires command-line access. The action is permanent via the Web UI.\"\n\n\t\t\t**Notes for Existing Files**\n\t\t\t* By default, enabling SSE does not encrypt existing files; only new files will be encrypted.\n\t\t\t* To encrypt all existing files, use the command `occ encryption:encrypt-all`.\n\n\t\t\t**Before You Begin**\n\t\t\t* **Read the Documentation:** Before you enable SSE, encrypt existing files, or disable SSE, it is critical to \n\t\t\t\tread the documentation to understand implications and the appropriate procedures to avoid data loss." : "このアプリは、Nextcloud のサーバー側暗号化 (SSE) 機能の(デフォルトの)暗号化実装を提供します。\n\n**暗号化の詳細**\n* **暗号モード:** AES-256-CTR (デフォルト)\n* **認証:** HMAC-SHA256\n\n**重要な警告**\n* **危険:** すべてのファイルが復号化されるまで、このアプリケーションを無効にしないでください (`occ encryption:decrypt-all`)。\n* **警告**: アクティベーション後に暗号化されていないファイルストレージに戻すには、コマンドラインアクセスが必要です。この操作はWeb UI経由で永続的に実行されます。\n\n**既存ファイルに関する注意事項**\n* デフォルトでは、SSEを有効にしても既存のファイルは暗号化されず、新規ファイルのみが暗号化されます。\n* 既存のすべてのファイルを暗号化するには、コマンド「occ encryption:encrypt-all」を使用します。\n\n**始める前に**\n* **ドキュメントを読む:** SSEを有効化、既存ファイルを暗号化、または無効化する前に、\nSSEの影響とデータ損失を回避するための適切な手順を理解するために、ドキュメントを読むことが重要です。",
"Default encryption module" : "デフォルトの暗号化モジュール",
"Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "暗号化アプリは有効ですが、あなたの暗号化キーは初期化されていません。ログアウトした後に、再度ログインしてください",
"Encrypt the home storage" : "メインストレージ暗号化",
+1 -1
View File
@@ -352,7 +352,7 @@ OC.L10N.register(
"One of the dropped files could not be processed" : "Non foi posíbel procesar un dos ficheiros arrastrados",
"Your browser does not support the Filesystem API. Directories will not be uploaded" : "O seu navegador non é compatíbel coa API do sistema de ficheiros. Os directorios non van ser enviados",
"No files to upload" : "Non hai ficheiros que enviar",
"Unable to create the directory {directory}" : "Non é posíbel crear o directorio {directory}",
"Unable to create the directory {directory}" : "Non foi posíbel crear o directorio {directory}",
"Some files could not be uploaded" : "Non foi posíbel enviar algúns ficheiros",
"Files uploaded successfully" : "Ficheiros enviados satisfactoriamente",
"No files to process" : "Non hai ficheiros para procesar",
+1 -1
View File
@@ -350,7 +350,7 @@
"One of the dropped files could not be processed" : "Non foi posíbel procesar un dos ficheiros arrastrados",
"Your browser does not support the Filesystem API. Directories will not be uploaded" : "O seu navegador non é compatíbel coa API do sistema de ficheiros. Os directorios non van ser enviados",
"No files to upload" : "Non hai ficheiros que enviar",
"Unable to create the directory {directory}" : "Non é posíbel crear o directorio {directory}",
"Unable to create the directory {directory}" : "Non foi posíbel crear o directorio {directory}",
"Some files could not be uploaded" : "Non foi posíbel enviar algúns ficheiros",
"Files uploaded successfully" : "Ficheiros enviados satisfactoriamente",
"No files to process" : "Non hai ficheiros para procesar",
+8 -40
View File
@@ -51,10 +51,6 @@ OC.L10N.register(
"You do not have permission to create a file at the specified location" : "Nincs jogosultsága fájl létrehozására a megadott helyen",
"The file could not be converted." : "A fájl nem alakítható át.",
"Could not get relative path to converted file" : "Nem sikerült lekérni az átalakított fájl relatív elérési útját",
"Limit must be a positive integer." : "A korlátnak pozitív egésznek kell lennie.",
"The replacement character may only be a single character." : "A cserekarakter csak egyetlen karakter lehet.",
"Filename sanitization already started." : "A fájlnévtisztítás más elindult.",
"No filename sanitization in progress." : "Nincs folyamatban fájlnévtisztítás.",
"Favorite files" : "Kedvenc fájlok",
"No favorites" : "Nincsenek kedvencek",
"More favorites" : "További kedvencek",
@@ -124,8 +120,6 @@ OC.L10N.register(
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Ez a lista teljesítménybeli okokból nincs teljes egészében megjelenítve. A fájlok a listában navigálás során jelennek meg.",
"File not found" : "A fájl nem található",
"_{count} selected_::_{count} selected_" : ["{count} kijelölve","{count} kijelölve"],
"Search everywhere …" : "Keresés mindenhol…",
"Search here …" : "Keresés itt…",
"Search scope options" : "Keresési hatókör beállításai",
"Search here" : "Keresés itt",
"{usedQuotaByte} used" : "{usedQuotaByte} felhasználva",
@@ -140,26 +134,9 @@ OC.L10N.register(
"This name is already in use." : "Ez a név már foglalt.",
"Create" : "Létrehozás",
"Files starting with a dot are hidden by default" : "A ponttal kezdődő fájlok alapértelmezetten el vannak rejtve",
"Failed to start filename sanitization." : "Nem sikerült a fájlnévtisztítás elindítása.",
"Failed to refresh filename sanitization status." : "Nem sikerült a fájlnévtisztítás állapotának frissítése.",
"Filename sanitization in progress." : "Fájlnévtisztítás folyamatban.",
"Currently {processedUsers} of {totalUsers} accounts are already processed." : "Jelenleg {processedUsers} / {totalUsers} fiók van már feldolgozva.",
"Preparing …" : "Előkészítés…",
"Refresh" : "Frissítés",
"All files have been santized for Windows filename support." : "Az összes fájlnév meg lett tisztítva a windowsos fájlnevek támogatásához.",
"Some files could not be sanitized, please check your logs." : "Egyes fájlok tisztítása nem sikerült, ellenőrizze a naplókat.",
"Sanitization errors" : "Tisztítási hibák",
"Not sanitized filenames" : "Nem megtisztított fájlnevek",
"Windows filename support has been enabled." : "A windowsos fájlnevek támogatása engedélyezve lett.",
"While this blocks users from creating new files with unsupported filenames, existing files are not yet renamed and thus still may break sync on Windows." : "Bár ez megtiltja, hogy a felhasználók nem támogatott nevű fájlokat hozzanak létre, a meglévő fájlok nem lesznek átnevezve, így Windowson továbbra is hibás lehet a szinkronizálás.",
"You can trigger a rename of files with invalid filenames, this will be done in the background and may take some time." : "Átneveztetheti az érvénytelen fájlnevű fájlokat, ez egy háttérfeladatban lesz végrehajtva, és eltarthat egy ideig.",
"Please note that this may cause high workload on the sync clients." : "Vegye figyelembe, hogy ez magas terhelést okozhat a szinkronizálási klienseken.",
"Limit" : "Korlát",
"This allows to configure how many users should be processed in one background job run." : "Ez lehetővé teszi, hogy beállítsa, hány felhasználó legyen feldolgozva egyetlen háttérfeladatban.",
"Sanitize filenames" : "Fájlnevek tisztítása",
"(starting)" : "(indítás)",
"Fill template fields" : "Töltse ki a sablon mezőit",
"Submitting fields …" : "Mezők beküldése…",
"Submit" : "Beküldés",
"Choose a file or folder to transfer" : "Válassz egy átruházandó fájlt vagy mappát",
"Transfer" : "Átruházás",
@@ -262,7 +239,6 @@ OC.L10N.register(
"Search for files" : "Fájlok keresése",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Fájlnevek korlátozásának engedélyezése, amely biztosítja, hogy a fájlok szinkronizálhatók legyenek az összes klienssel. Alapállapotban az összes fájlnév engedélyezett, amely a POSIX (mint a Linux vagy a macOS) rendszereken érvényes.",
"After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "A Windows-kompatibilis fájlnevek engedélyezése után a meglévő fájlok már nem módosíthatóak, de a tulajdonosaik átnevezhetik őket érvényes új fájlnevekre.",
"Failed to toggle Windows filename support" : "Nem sikerült a windowsos fájlnevek támogatásának átkapcsolása.",
"Files compatibility" : "Fájlok kompatibilitása",
"Enforce Windows compatibility" : "Windows-kompatibilitás kényszerítése",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Ez megakadályozza a Windows rendszereken érvénytelen fájlneveket, mint például a foglalt neveket vagy a speciális karaktereket. De ez nem fogja érvényesíteni a kis- és nagybetűk egyezőnek tekintését.",
@@ -272,19 +248,16 @@ OC.L10N.register(
"Create a new file with the selected template" : "Új fájl létrehozása a kiválasztott sablonnal",
"Creating file" : "Fájl létrehozása",
"Save as {displayName}" : "Mentés mint {displayName}",
"Save as …" : "Mentés másként…",
"Converting files …" : "Fájlok átalakítása…",
"Failed to convert files: {message}" : "Nem sikerült a fájlok átalakítása: {message}",
"Failed to convert files: {message}" : "A fájlok átalakítása sikertelen: {message}",
"All files failed to be converted" : "Az összes fájl átalakítása sikertelen",
"One file could not be converted: {message}" : "Egy fájl nem alakítható át: {message}",
"_One file could not be converted_::_%n files could not be converted_" : ["Egy fájl nem alakítható át","%n fájl nem alakítható át"],
"_One file successfully converted_::_%n files successfully converted_" : ["Egy fájl sikeresen átalakítva","%n fájl sikeresen átalakítva"],
"Files successfully converted" : "Fájlok sikeresen átalakítva",
"Failed to convert files" : "Nem sikerült a fájlok átalakítása",
"Converting file …" : "Fájl átalakítása…",
"Failed to convert files" : "A fájlok átalakítása sikertelen",
"File successfully converted" : "Fájl sikeresen átalakítva",
"Failed to convert file: {message}" : "Nem sikerült a fájl átalakítása: {message}",
"Failed to convert file" : "Nem sikerült a fájl átalakítása",
"Failed to convert file: {message}" : "A fájl átalakítása sikertelen: {message}",
"Failed to convert file" : "A fájl átalakítása sikertelen",
"Leave this share" : "Megosztás elhagyása",
"Leave these shares" : "Megosztások elhagyása",
"Disconnect storage" : "Tároló leválasztása",
@@ -300,10 +273,6 @@ OC.L10N.register(
"Confirm deletion" : "Törlés megerősítése",
"Cancel" : "Mégse",
"Download" : "Letöltés",
"The requested file is not available." : "A kért fájl nem érhető el.",
"The requested files are not available." : "A kért fájlok nem érhetőek el.",
"Moving \"{source}\" to \"{destination}\" …" : "A(z) „{source}” áthelyezése ide: „{destination}”…",
"Copying \"{source}\" to \"{destination}\" …" : "A(z) „{source}” másolása ide: „{destination}”…",
"Destination is not a folder" : "A cél nem mappa",
"This file/folder is already in that directory" : "Ez a fájl/mappa már létezik a mappában",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "A fájl/mappa önmagába, vagy saját almappájába áthelyezése nem lehetséges",
@@ -316,7 +285,7 @@ OC.L10N.register(
"Copy to {target}" : "Másolás ide: {target}",
"Move to {target}" : "Áthelyezés ide: {target}",
"Move" : "Áthelyezés",
"Move or copy operation failed" : "Nem sikerült az áthelyezés vagy a másolás",
"Move or copy operation failed" : "Az áthelyezés vagy a másolás művelet sikertelen",
"Move or copy" : "Áthelyezés vagy másolás",
"Open folder {displayName}" : "A(z) {displayName} mappa megnyitása",
"Open in Files" : "Megnyitás a Fájlokban",
@@ -399,9 +368,9 @@ OC.L10N.register(
"Upload (max. %s)" : "Feltöltés (legfeljebb %s)",
"After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "A Windows-kompatibilis fájlnevek engedélyezése után a meglévő fájlok már nem módosíthatóak, de a tulajdonosaik átnevezhetik őket érvényes új nevekre.",
"It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Továbbá lehetséges a fájlok automatikus átköltöztetése is a beállítás engedélyezése után, kövesse az occ parancs dokumentációját.",
"\"{displayName}\" failed on some elements" : "A(z) „{displayName}” művelet egyes elemeken nem sikerült",
"\"{displayName}\" failed on some elements" : "A(z) „{displayName}” egyes elemeken nem sikerült",
"\"{displayName}\" batch action executed successfully" : "A(z) „{displayName}” tömeges művelet sikeresen végrehajtva",
"\"{displayName}\" action failed" : "A(z) „{displayName}” művelet nem sikerült",
"\"{displayName}\" action failed" : "A(z) „{displayName}” művelet sikertelen",
"Submitting fields …" : "Mezők beküldése…",
"\"{displayName}\" action executed successfully" : "A(z) „{displayName}” művelet sikeresen végrehajtva",
"Filter file names …" : "Fájlnevek szűrése…",
@@ -445,7 +414,6 @@ OC.L10N.register(
"This directory is unavailable, please check the logs or contact the administrator" : "Ez a könyvtár nem érhető el, nézze meg a naplófájlokat vagy lépjen kapcsolatba az adminisztrátorral",
"All folders" : "Összes mappa",
"Search everywhere …" : "Keresés mindenhol…",
"Search here …" : "Keresés itt…",
"Preparing …" : "Előkészítés…"
"Search here …" : "Keresés itt…"
},
"nplurals=2; plural=(n != 1);");
+8 -40
View File
@@ -49,10 +49,6 @@
"You do not have permission to create a file at the specified location" : "Nincs jogosultsága fájl létrehozására a megadott helyen",
"The file could not be converted." : "A fájl nem alakítható át.",
"Could not get relative path to converted file" : "Nem sikerült lekérni az átalakított fájl relatív elérési útját",
"Limit must be a positive integer." : "A korlátnak pozitív egésznek kell lennie.",
"The replacement character may only be a single character." : "A cserekarakter csak egyetlen karakter lehet.",
"Filename sanitization already started." : "A fájlnévtisztítás más elindult.",
"No filename sanitization in progress." : "Nincs folyamatban fájlnévtisztítás.",
"Favorite files" : "Kedvenc fájlok",
"No favorites" : "Nincsenek kedvencek",
"More favorites" : "További kedvencek",
@@ -122,8 +118,6 @@
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Ez a lista teljesítménybeli okokból nincs teljes egészében megjelenítve. A fájlok a listában navigálás során jelennek meg.",
"File not found" : "A fájl nem található",
"_{count} selected_::_{count} selected_" : ["{count} kijelölve","{count} kijelölve"],
"Search everywhere …" : "Keresés mindenhol…",
"Search here …" : "Keresés itt…",
"Search scope options" : "Keresési hatókör beállításai",
"Search here" : "Keresés itt",
"{usedQuotaByte} used" : "{usedQuotaByte} felhasználva",
@@ -138,26 +132,9 @@
"This name is already in use." : "Ez a név már foglalt.",
"Create" : "Létrehozás",
"Files starting with a dot are hidden by default" : "A ponttal kezdődő fájlok alapértelmezetten el vannak rejtve",
"Failed to start filename sanitization." : "Nem sikerült a fájlnévtisztítás elindítása.",
"Failed to refresh filename sanitization status." : "Nem sikerült a fájlnévtisztítás állapotának frissítése.",
"Filename sanitization in progress." : "Fájlnévtisztítás folyamatban.",
"Currently {processedUsers} of {totalUsers} accounts are already processed." : "Jelenleg {processedUsers} / {totalUsers} fiók van már feldolgozva.",
"Preparing …" : "Előkészítés…",
"Refresh" : "Frissítés",
"All files have been santized for Windows filename support." : "Az összes fájlnév meg lett tisztítva a windowsos fájlnevek támogatásához.",
"Some files could not be sanitized, please check your logs." : "Egyes fájlok tisztítása nem sikerült, ellenőrizze a naplókat.",
"Sanitization errors" : "Tisztítási hibák",
"Not sanitized filenames" : "Nem megtisztított fájlnevek",
"Windows filename support has been enabled." : "A windowsos fájlnevek támogatása engedélyezve lett.",
"While this blocks users from creating new files with unsupported filenames, existing files are not yet renamed and thus still may break sync on Windows." : "Bár ez megtiltja, hogy a felhasználók nem támogatott nevű fájlokat hozzanak létre, a meglévő fájlok nem lesznek átnevezve, így Windowson továbbra is hibás lehet a szinkronizálás.",
"You can trigger a rename of files with invalid filenames, this will be done in the background and may take some time." : "Átneveztetheti az érvénytelen fájlnevű fájlokat, ez egy háttérfeladatban lesz végrehajtva, és eltarthat egy ideig.",
"Please note that this may cause high workload on the sync clients." : "Vegye figyelembe, hogy ez magas terhelést okozhat a szinkronizálási klienseken.",
"Limit" : "Korlát",
"This allows to configure how many users should be processed in one background job run." : "Ez lehetővé teszi, hogy beállítsa, hány felhasználó legyen feldolgozva egyetlen háttérfeladatban.",
"Sanitize filenames" : "Fájlnevek tisztítása",
"(starting)" : "(indítás)",
"Fill template fields" : "Töltse ki a sablon mezőit",
"Submitting fields …" : "Mezők beküldése…",
"Submit" : "Beküldés",
"Choose a file or folder to transfer" : "Válassz egy átruházandó fájlt vagy mappát",
"Transfer" : "Átruházás",
@@ -260,7 +237,6 @@
"Search for files" : "Fájlok keresése",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Fájlnevek korlátozásának engedélyezése, amely biztosítja, hogy a fájlok szinkronizálhatók legyenek az összes klienssel. Alapállapotban az összes fájlnév engedélyezett, amely a POSIX (mint a Linux vagy a macOS) rendszereken érvényes.",
"After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "A Windows-kompatibilis fájlnevek engedélyezése után a meglévő fájlok már nem módosíthatóak, de a tulajdonosaik átnevezhetik őket érvényes új fájlnevekre.",
"Failed to toggle Windows filename support" : "Nem sikerült a windowsos fájlnevek támogatásának átkapcsolása.",
"Files compatibility" : "Fájlok kompatibilitása",
"Enforce Windows compatibility" : "Windows-kompatibilitás kényszerítése",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Ez megakadályozza a Windows rendszereken érvénytelen fájlneveket, mint például a foglalt neveket vagy a speciális karaktereket. De ez nem fogja érvényesíteni a kis- és nagybetűk egyezőnek tekintését.",
@@ -270,19 +246,16 @@
"Create a new file with the selected template" : "Új fájl létrehozása a kiválasztott sablonnal",
"Creating file" : "Fájl létrehozása",
"Save as {displayName}" : "Mentés mint {displayName}",
"Save as …" : "Mentés másként…",
"Converting files …" : "Fájlok átalakítása…",
"Failed to convert files: {message}" : "Nem sikerült a fájlok átalakítása: {message}",
"Failed to convert files: {message}" : "A fájlok átalakítása sikertelen: {message}",
"All files failed to be converted" : "Az összes fájl átalakítása sikertelen",
"One file could not be converted: {message}" : "Egy fájl nem alakítható át: {message}",
"_One file could not be converted_::_%n files could not be converted_" : ["Egy fájl nem alakítható át","%n fájl nem alakítható át"],
"_One file successfully converted_::_%n files successfully converted_" : ["Egy fájl sikeresen átalakítva","%n fájl sikeresen átalakítva"],
"Files successfully converted" : "Fájlok sikeresen átalakítva",
"Failed to convert files" : "Nem sikerült a fájlok átalakítása",
"Converting file …" : "Fájl átalakítása…",
"Failed to convert files" : "A fájlok átalakítása sikertelen",
"File successfully converted" : "Fájl sikeresen átalakítva",
"Failed to convert file: {message}" : "Nem sikerült a fájl átalakítása: {message}",
"Failed to convert file" : "Nem sikerült a fájl átalakítása",
"Failed to convert file: {message}" : "A fájl átalakítása sikertelen: {message}",
"Failed to convert file" : "A fájl átalakítása sikertelen",
"Leave this share" : "Megosztás elhagyása",
"Leave these shares" : "Megosztások elhagyása",
"Disconnect storage" : "Tároló leválasztása",
@@ -298,10 +271,6 @@
"Confirm deletion" : "Törlés megerősítése",
"Cancel" : "Mégse",
"Download" : "Letöltés",
"The requested file is not available." : "A kért fájl nem érhető el.",
"The requested files are not available." : "A kért fájlok nem érhetőek el.",
"Moving \"{source}\" to \"{destination}\" …" : "A(z) „{source}” áthelyezése ide: „{destination}”…",
"Copying \"{source}\" to \"{destination}\" …" : "A(z) „{source}” másolása ide: „{destination}”…",
"Destination is not a folder" : "A cél nem mappa",
"This file/folder is already in that directory" : "Ez a fájl/mappa már létezik a mappában",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "A fájl/mappa önmagába, vagy saját almappájába áthelyezése nem lehetséges",
@@ -314,7 +283,7 @@
"Copy to {target}" : "Másolás ide: {target}",
"Move to {target}" : "Áthelyezés ide: {target}",
"Move" : "Áthelyezés",
"Move or copy operation failed" : "Nem sikerült az áthelyezés vagy a másolás",
"Move or copy operation failed" : "Az áthelyezés vagy a másolás művelet sikertelen",
"Move or copy" : "Áthelyezés vagy másolás",
"Open folder {displayName}" : "A(z) {displayName} mappa megnyitása",
"Open in Files" : "Megnyitás a Fájlokban",
@@ -397,9 +366,9 @@
"Upload (max. %s)" : "Feltöltés (legfeljebb %s)",
"After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "A Windows-kompatibilis fájlnevek engedélyezése után a meglévő fájlok már nem módosíthatóak, de a tulajdonosaik átnevezhetik őket érvényes új nevekre.",
"It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Továbbá lehetséges a fájlok automatikus átköltöztetése is a beállítás engedélyezése után, kövesse az occ parancs dokumentációját.",
"\"{displayName}\" failed on some elements" : "A(z) „{displayName}” művelet egyes elemeken nem sikerült",
"\"{displayName}\" failed on some elements" : "A(z) „{displayName}” egyes elemeken nem sikerült",
"\"{displayName}\" batch action executed successfully" : "A(z) „{displayName}” tömeges művelet sikeresen végrehajtva",
"\"{displayName}\" action failed" : "A(z) „{displayName}” művelet nem sikerült",
"\"{displayName}\" action failed" : "A(z) „{displayName}” művelet sikertelen",
"Submitting fields …" : "Mezők beküldése…",
"\"{displayName}\" action executed successfully" : "A(z) „{displayName}” művelet sikeresen végrehajtva",
"Filter file names …" : "Fájlnevek szűrése…",
@@ -443,7 +412,6 @@
"This directory is unavailable, please check the logs or contact the administrator" : "Ez a könyvtár nem érhető el, nézze meg a naplófájlokat vagy lépjen kapcsolatba az adminisztrátorral",
"All folders" : "Összes mappa",
"Search everywhere …" : "Keresés mindenhol…",
"Search here …" : "Keresés itt…",
"Preparing …" : "Előkészítés…"
"Search here …" : "Keresés itt…"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
-1
View File
@@ -129,7 +129,6 @@ OC.L10N.register(
"Via “{folder}”" : "Чрез “{folder}”",
"Unshare" : "Прекрати споделянето",
"Cannot copy, please copy the link manually" : "Не може да се копира, моля, копирайте връзката ръчно",
"Copy internal link" : "Копиране на вътрешна връзка",
"Internal link" : "Вътрешна връзка",
"{shareWith} by {initiator}" : "{shareWith} чрез {initiator}",
"Shared via link by {initiator}" : "Споделено чрез връзка от {initiator}",
-1
View File
@@ -127,7 +127,6 @@
"Via “{folder}”" : "Чрез “{folder}”",
"Unshare" : "Прекрати споделянето",
"Cannot copy, please copy the link manually" : "Не може да се копира, моля, копирайте връзката ръчно",
"Copy internal link" : "Копиране на вътрешна връзка",
"Internal link" : "Вътрешна връзка",
"{shareWith} by {initiator}" : "{shareWith} чрез {initiator}",
"Shared via link by {initiator}" : "Споделено чрез връзка от {initiator}",
+2 -2
View File
@@ -35,8 +35,8 @@ OC.L10N.register(
"You granted filesystem access to app password \"{token}\"" : "Sa lubasid failisüsteemi ligipääsu rakenduse salasõnale „{token}“",
"You revoked filesystem access from app password \"{token}\"" : "Sa keelasid failisüsteemi ligipääsu rakenduse salasõnale „{token}“",
"Security" : "Turvalisus",
"You successfully logged in using two-factor authentication (%1$s)" : "Kasutades kaheastmelist autentimist sisselogimine õnnestus (%1$s)",
"A login attempt using two-factor authentication failed (%1$s)" : "Sisselogimiskatse kaheastmelise autentimisega ei õnnestunud (%1$s)",
"You successfully logged in using two-factor authentication (%1$s)" : "Logisid edukalt sisse, kasutades kaheastmelist autentimiset (%1$s)",
"A login attempt using two-factor authentication failed (%1$s)" : "Sisselogimiskatse kaheastmelise autentimisega ebaõnnestus (%1$s)",
"Remote wipe was started on %1$s" : "Kaugkustutamine algas: %1$s",
"Remote wipe has finished on %1$s" : "Kaugkustutamine lõppes: %1$s",
"Your <strong>password</strong> or <strong>email</strong> was modified" : "Sinu <strong>salasõna</strong> või <strong>e-posti aadress</strong> on muudetud",
+2 -2
View File
@@ -33,8 +33,8 @@
"You granted filesystem access to app password \"{token}\"" : "Sa lubasid failisüsteemi ligipääsu rakenduse salasõnale „{token}“",
"You revoked filesystem access from app password \"{token}\"" : "Sa keelasid failisüsteemi ligipääsu rakenduse salasõnale „{token}“",
"Security" : "Turvalisus",
"You successfully logged in using two-factor authentication (%1$s)" : "Kasutades kaheastmelist autentimist sisselogimine õnnestus (%1$s)",
"A login attempt using two-factor authentication failed (%1$s)" : "Sisselogimiskatse kaheastmelise autentimisega ei õnnestunud (%1$s)",
"You successfully logged in using two-factor authentication (%1$s)" : "Logisid edukalt sisse, kasutades kaheastmelist autentimiset (%1$s)",
"A login attempt using two-factor authentication failed (%1$s)" : "Sisselogimiskatse kaheastmelise autentimisega ebaõnnestus (%1$s)",
"Remote wipe was started on %1$s" : "Kaugkustutamine algas: %1$s",
"Remote wipe has finished on %1$s" : "Kaugkustutamine lõppes: %1$s",
"Your <strong>password</strong> or <strong>email</strong> was modified" : "Sinu <strong>salasõna</strong> või <strong>e-posti aadress</strong> on muudetud",
+1 -1
View File
@@ -299,7 +299,7 @@ OC.L10N.register(
"- The `Strict-Transport-Security` HTTP header is not set (should be at least `%d` seconds). For enhanced security, it is recommended to enable HSTS." : "- A cabeceira HTTP «Strict-Transport-Security» non está definida (debe ser polo menos «%d» segundos). Para mellorar a seguridade, recoméndase activar HSTS.",
"Some headers are not set correctly on your instance" : "Algunhas cabeceiras non están definidas correctamente na súa instancia",
"Could not check that your web server serves security headers correctly. Please check manually." : "Non foi posíbel comprobar que o seu servidor web serve as cabeceiras de seguranza correctamente. Compróbeo manualmente.",
"Could not check that your web server serves security headers correctly, unable to query `%s`" : "Non é posíbel comprobar que o seu servidor web serve correctamente as cabeceiras de seguranza, non é posíbel consultar «%s»",
"Could not check that your web server serves security headers correctly, unable to query `%s`" : "Non foi posíbel comprobar que o seu servidor web serve correctamente as cabeceiras de seguranza, non foi posíbel consultar «%s»",
"Your server is correctly configured to send security headers." : "O seu servidor está configurado correctamente para enviar cabeceiras de seguranza.",
"Database version" : "Versión da base de datos",
"MariaDB version 10.3 detected, this version is end-of-life and only supported as part of Ubuntu 20.04. MariaDB >=%1$s and <=%2$s is suggested for best performance, stability and functionality with this version of Nextcloud." : "Detectouse a versión 10.3 de MariaDB, esta versión está ao final da súa vida útil e só se admite como parte de Ubuntu 20.04. Suxírese MariaDB >=%1$s e <=%2$s para obter mellor rendemento, estabilidade e funcionalidade con esta versión de Nextcloud.",
+1 -1
View File
@@ -297,7 +297,7 @@
"- The `Strict-Transport-Security` HTTP header is not set (should be at least `%d` seconds). For enhanced security, it is recommended to enable HSTS." : "- A cabeceira HTTP «Strict-Transport-Security» non está definida (debe ser polo menos «%d» segundos). Para mellorar a seguridade, recoméndase activar HSTS.",
"Some headers are not set correctly on your instance" : "Algunhas cabeceiras non están definidas correctamente na súa instancia",
"Could not check that your web server serves security headers correctly. Please check manually." : "Non foi posíbel comprobar que o seu servidor web serve as cabeceiras de seguranza correctamente. Compróbeo manualmente.",
"Could not check that your web server serves security headers correctly, unable to query `%s`" : "Non é posíbel comprobar que o seu servidor web serve correctamente as cabeceiras de seguranza, non é posíbel consultar «%s»",
"Could not check that your web server serves security headers correctly, unable to query `%s`" : "Non foi posíbel comprobar que o seu servidor web serve correctamente as cabeceiras de seguranza, non foi posíbel consultar «%s»",
"Your server is correctly configured to send security headers." : "O seu servidor está configurado correctamente para enviar cabeceiras de seguranza.",
"Database version" : "Versión da base de datos",
"MariaDB version 10.3 detected, this version is end-of-life and only supported as part of Ubuntu 20.04. MariaDB >=%1$s and <=%2$s is suggested for best performance, stability and functionality with this version of Nextcloud." : "Detectouse a versión 10.3 de MariaDB, esta versión está ao final da súa vida útil e só se admite como parte de Ubuntu 20.04. Suxírese MariaDB >=%1$s e <=%2$s para obter mellor rendemento, estabilidade e funcionalidade con esta versión de Nextcloud.",
-6
View File
@@ -312,11 +312,6 @@ OC.L10N.register(
"64-bit" : "64ビット",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "このシステムは32ビット版のPHPで動いているようです。Nextcloudを正常に動かすには64ビット版が必要です。OSとPHPを64ビット版にアップグレードしてください!",
"Task Processing pickup speed" : "タスク処理のピックアップ速度",
"_No scheduled tasks in the last day._::_No scheduled tasks in the last %n days._" : ["過去%n日間にスケジュールされたタスクはありません。"],
"_The task pickup speed has been ok in the last day._::_The task pickup speed has been ok in the last %n days._" : ["タスクのピックアップ速度は、過去%n日間正常でした。"],
"_The task pickup speed has been slow in the last day. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n days. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["過去%n日間タスクのピックアップ速度が遅くなっています。多くのタスクが取得に4分以上かかりました。バックグラウンドでタスクを処理するようにワーカーを設定することを検討してください。"],
"_Most tasks were successful in the last day._::_Most tasks were successful in the last %n days._" : ["ほとんどのタスクは過去%n日間に成功しました。"],
"_A lot of tasks failed in the last day. Consider checking the nextcloud log for errors and investigating whether the AI provider apps have been set up correctly._::_A lot of tasks failed in the last %n days. Consider checking the nextcloud log for errors and investigating whether the AI provider apps have been set up correctly._" : ["過去%n日間に多くのタスクが失敗しました。nextcloudログでエラーを確認し、AIプロバイダーアプリが正しく設定されているかどうかを調査することを検討してください。"],
"Temporary space available" : "テンポラリ領域が利用可能です",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "PHP のテンポラリパスのチェック中にエラーが発生しました - ディレクトリが正しく設定されていませんでした。返された値:%s",
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "PHPの関数 \"disk_free_space\"が無効になっており、一時的なディレクトリに十分な空き容量があるかどうかをチェックできません。",
@@ -951,7 +946,6 @@ OC.L10N.register(
"_No scheduled tasks in the last %n hour._::_No scheduled tasks in the last %n hours._" : ["直近の%n時間に予定されたタスクはありません。"],
"_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["タスクのピックアップ速度は、過去%n時間に問題ありませんでした。"],
"_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["過去%n時間タスクのピックアップ速度が遅くなっています。多くのタスクが取得に4分以上かかりました。バックグラウンドでタスクを処理するようにワーカーを設定することを検討してください。"],
"Also allow autocompletion on full match of the user id" : "また、ユーザーIDが完全に一致した場合にオートコンプリートを許可する",
"This app has no minimum Nextcloud version assigned. This will be an error in the future." : "このアプリは Nextcloud の最小バージョンが指定されていません.将来、エラーが発生する可能性があります.",
"This app has no maximum Nextcloud version assigned. This will be an error in the future." : "このアプリは Nextcloud バージョンの上限が指定されていません.将来、エラーが発生する可能性があります.",
"Loading accounts …" : "アカウントを読み込み中 ...",
-6
View File
@@ -310,11 +310,6 @@
"64-bit" : "64ビット",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "このシステムは32ビット版のPHPで動いているようです。Nextcloudを正常に動かすには64ビット版が必要です。OSとPHPを64ビット版にアップグレードしてください!",
"Task Processing pickup speed" : "タスク処理のピックアップ速度",
"_No scheduled tasks in the last day._::_No scheduled tasks in the last %n days._" : ["過去%n日間にスケジュールされたタスクはありません。"],
"_The task pickup speed has been ok in the last day._::_The task pickup speed has been ok in the last %n days._" : ["タスクのピックアップ速度は、過去%n日間正常でした。"],
"_The task pickup speed has been slow in the last day. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n days. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["過去%n日間タスクのピックアップ速度が遅くなっています。多くのタスクが取得に4分以上かかりました。バックグラウンドでタスクを処理するようにワーカーを設定することを検討してください。"],
"_Most tasks were successful in the last day._::_Most tasks were successful in the last %n days._" : ["ほとんどのタスクは過去%n日間に成功しました。"],
"_A lot of tasks failed in the last day. Consider checking the nextcloud log for errors and investigating whether the AI provider apps have been set up correctly._::_A lot of tasks failed in the last %n days. Consider checking the nextcloud log for errors and investigating whether the AI provider apps have been set up correctly._" : ["過去%n日間に多くのタスクが失敗しました。nextcloudログでエラーを確認し、AIプロバイダーアプリが正しく設定されているかどうかを調査することを検討してください。"],
"Temporary space available" : "テンポラリ領域が利用可能です",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "PHP のテンポラリパスのチェック中にエラーが発生しました - ディレクトリが正しく設定されていませんでした。返された値:%s",
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "PHPの関数 \"disk_free_space\"が無効になっており、一時的なディレクトリに十分な空き容量があるかどうかをチェックできません。",
@@ -949,7 +944,6 @@
"_No scheduled tasks in the last %n hour._::_No scheduled tasks in the last %n hours._" : ["直近の%n時間に予定されたタスクはありません。"],
"_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["タスクのピックアップ速度は、過去%n時間に問題ありませんでした。"],
"_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["過去%n時間タスクのピックアップ速度が遅くなっています。多くのタスクが取得に4分以上かかりました。バックグラウンドでタスクを処理するようにワーカーを設定することを検討してください。"],
"Also allow autocompletion on full match of the user id" : "また、ユーザーIDが完全に一致した場合にオートコンプリートを許可する",
"This app has no minimum Nextcloud version assigned. This will be an error in the future." : "このアプリは Nextcloud の最小バージョンが指定されていません.将来、エラーが発生する可能性があります.",
"This app has no maximum Nextcloud version assigned. This will be an error in the future." : "このアプリは Nextcloud バージョンの上限が指定されていません.将来、エラーが発生する可能性があります.",
"Loading accounts …" : "アカウントを読み込み中 ...",
-15
View File
@@ -48,9 +48,7 @@ OC.L10N.register(
"Saved" : "Зачувано",
"Unable to change password. Password too long." : "Неможе да се промени лозинката. Лозинката е премногу долга.",
"Authentication error" : "Грешка во автентикација",
"Please provide an admin recovery password; otherwise, all account data will be lost." : "Ве молам дадете лозинка за поврат на администраторот; во спротивно, сите кориснички податоци ќе бидат изгубени.",
"Wrong admin recovery password. Please check the password and try again." : "Погрешна лозинка за поврат на администраторот. Ве молам проверете ја лозинката и пробајте повторно.",
"Backend does not support password change, but the encryption of the account key was updated." : "Позадината не подржува промена на лозинката, но корисничкиот клуч за енкрипција е ажуриран.",
"Administrator documentation" : "Документација за администратор",
"User documentation" : "Документација за корисник",
"Invalid SMTP password." : "Грешна SMTP лозинка.",
@@ -145,10 +143,7 @@ OC.L10N.register(
"The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "PHP функцијата \"set_time_limit\" не е достапна. Ова може да резултира со запирање на скриптите во извршувањето, и грешки во вашата инсталација. Овозможувањето на оваа функција е препорачлива.",
"Supported" : "Поддржано",
"PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP се чини дека не е правилно поставена за да испраќа барања до променливите на околината на системот. Тестот со getenv(\"PATH\") враќа само празен одговор.",
"PHP opcache" : "PHP opcache",
"The PHP OPcache module is not loaded. For better performance it is recommended to load it into your PHP installation." : "PHP модулот OPcache не е вчитан. За да имате подобри перформанси е препорачливо да го вчитате во вашата PHP инсталација.",
"OPcache is disabled. For better performance, it is recommended to apply \"opcache.enable=1\" to your PHP configuration." : "OPcache модулот е оневозможен. За подобри перформанси препорачливо е да го овозможите \"opcache.enable=1\" во вашата PHP конфигурација.",
"OPcache is configured to remove code comments. With OPcache enabled, \"opcache.save_comments=1\" must be set for Nextcloud to function." : "OPcache е конфигуриран за да ги брише коментарите во кодовите. Со овозможен OPcache, \"opcache.save_comments=1\" мора да се постави за да функционира Nextcloud.",
"PHP version" : "PHP верзија",
"The read-only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Антивирана е конфигурација која е само за чирање. Ова спречува поставување на некои конфигурации преку веб-интерфејсот. Понатаму, датотеката треба да се пребрише рачно за секое ажурирање.",
"Architecture" : "Архитектура",
@@ -207,8 +202,6 @@ OC.L10N.register(
"No apps found for your version" : "За вашата верзија не се пронајдени апликации",
"_%n app has an update available_::_%n apps have an update available_" : ["За %n апликација има достапно ажурирање","За %n апликации има достапно ажурирање"],
"_Update_::_Update all_" : ["Ажурирај","Ажурирај ги сите"],
"Creating group…" : "Се создава група...",
"Create group" : "Креирај група",
"Group name" : "Име на група",
"Nothing to show" : "Нема што да се прикаже",
"Loading" : "Се вчитува",
@@ -293,7 +286,6 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Бидете свесни дека енкрипцијата секогаш ја зголемува големината на датотеката.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Секогаш е добро да создавате редовни резервни кории на вашите податоци, во случај на енкрипција, осигурајте се да ги зачувате и клучевите за шифрирање заедно со вашите податоци.",
"This is the final warning: Do you really want to enable encryption?" : "Ова е последно предупредување: Дали навистина сакате да овозможите енкрипција?",
"You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "Ќе ја отстраните групата {group}. Корисниците во неа НЕМА да бидат избришани.",
"Submit" : "Испрати",
"Rename group" : "Преименувај група",
"Current password" : "Моментална лозинка",
@@ -422,7 +414,6 @@ OC.L10N.register(
"Visibility" : "Видливост",
"Show language" : "Прикажи јазик",
"Show storage path" : "Прикажи патека на складиште",
"Show first login" : "Прикажи прво најавување",
"Show last login" : "Прикажи последно најавување",
"Sorting" : "Сортирање",
"By name" : "По име",
@@ -435,7 +426,6 @@ OC.L10N.register(
"Passwordless authentication requires a secure connection." : "За најавување без лозинка потребно е да се користи безбедна врска.",
"Add WebAuthn device" : "Додади WebAuthn уред",
"Please authorize your WebAuthn device." : "Авторизирајте го вашиот WebAuthn уред.",
"Adding your device …" : "Додавање на вашиот уред …",
"Unnamed device" : "Уреди без име",
"Passwordless Authentication" : "Најавување без лозинка",
"Set up your account for passwordless authentication following the FIDO2 standard." : "Поставете ја вашата сметка за најавување без лозинка притоа следете ги FIDO2 стандардите.",
@@ -443,15 +433,12 @@ OC.L10N.register(
"The following devices are configured for your account:" : "Следниве уреди се конфигурирани за вашата сметка:",
"Your browser does not support WebAuthn." : "Вашиот прелистувач не поддржува WebAuthn.",
"Security & setup warnings" : "Предупредувања за сигурност & параметри",
"Checking your server …" : "Проверка на вашиот сервер …",
"Try again" : "Обиди се повторно",
"All checks passed." : "Сите проверки се поминати.",
"There are some errors regarding your setup." : "Постојат некои грешки во врска со инсталацијата.",
"There are some warnings regarding your setup." : "Постојат некои предупредувања во врска со инсталацијата.",
"As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Како администратор, можете детално да го прилагодите однесувањето на споделувањето. Погледнете ја документацијата за повеќе информации.",
"You need to enable the File sharing App." : "Треба да ја овозможите апликацијата Споделување на датотеки.",
"Loading categories" : "Вчитување категории",
"Developer documentation ↗" : "Документација за програмери ↗",
"Version {version}, {license}-licensed" : "Верзија {version}, {license}-лиценца",
"Version {version}" : "Верзија {version}",
"Apply" : "Примени",
@@ -496,8 +483,6 @@ OC.L10N.register(
"Show to everyone" : "Прикажи на сите",
"Show to logged in accounts only" : "Прикажи само на најавени корисници",
"Hide" : "Сокриј",
"{progress}% Deploying …" : "{progress}% Распоредување …",
"{progress}% Initializing …" : "{progress}% Иницијализирање …",
"Health checking" : "Здравствена проверка",
"Deploy and Enable" : "Распореди и овозможи",
"Download and enable" : "Преземи и овозможи",
-15
View File
@@ -46,9 +46,7 @@
"Saved" : "Зачувано",
"Unable to change password. Password too long." : "Неможе да се промени лозинката. Лозинката е премногу долга.",
"Authentication error" : "Грешка во автентикација",
"Please provide an admin recovery password; otherwise, all account data will be lost." : "Ве молам дадете лозинка за поврат на администраторот; во спротивно, сите кориснички податоци ќе бидат изгубени.",
"Wrong admin recovery password. Please check the password and try again." : "Погрешна лозинка за поврат на администраторот. Ве молам проверете ја лозинката и пробајте повторно.",
"Backend does not support password change, but the encryption of the account key was updated." : "Позадината не подржува промена на лозинката, но корисничкиот клуч за енкрипција е ажуриран.",
"Administrator documentation" : "Документација за администратор",
"User documentation" : "Документација за корисник",
"Invalid SMTP password." : "Грешна SMTP лозинка.",
@@ -143,10 +141,7 @@
"The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "PHP функцијата \"set_time_limit\" не е достапна. Ова може да резултира со запирање на скриптите во извршувањето, и грешки во вашата инсталација. Овозможувањето на оваа функција е препорачлива.",
"Supported" : "Поддржано",
"PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP се чини дека не е правилно поставена за да испраќа барања до променливите на околината на системот. Тестот со getenv(\"PATH\") враќа само празен одговор.",
"PHP opcache" : "PHP opcache",
"The PHP OPcache module is not loaded. For better performance it is recommended to load it into your PHP installation." : "PHP модулот OPcache не е вчитан. За да имате подобри перформанси е препорачливо да го вчитате во вашата PHP инсталација.",
"OPcache is disabled. For better performance, it is recommended to apply \"opcache.enable=1\" to your PHP configuration." : "OPcache модулот е оневозможен. За подобри перформанси препорачливо е да го овозможите \"opcache.enable=1\" во вашата PHP конфигурација.",
"OPcache is configured to remove code comments. With OPcache enabled, \"opcache.save_comments=1\" must be set for Nextcloud to function." : "OPcache е конфигуриран за да ги брише коментарите во кодовите. Со овозможен OPcache, \"opcache.save_comments=1\" мора да се постави за да функционира Nextcloud.",
"PHP version" : "PHP верзија",
"The read-only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Антивирана е конфигурација која е само за чирање. Ова спречува поставување на некои конфигурации преку веб-интерфејсот. Понатаму, датотеката треба да се пребрише рачно за секое ажурирање.",
"Architecture" : "Архитектура",
@@ -205,8 +200,6 @@
"No apps found for your version" : "За вашата верзија не се пронајдени апликации",
"_%n app has an update available_::_%n apps have an update available_" : ["За %n апликација има достапно ажурирање","За %n апликации има достапно ажурирање"],
"_Update_::_Update all_" : ["Ажурирај","Ажурирај ги сите"],
"Creating group…" : "Се создава група...",
"Create group" : "Креирај група",
"Group name" : "Име на група",
"Nothing to show" : "Нема што да се прикаже",
"Loading" : "Се вчитува",
@@ -291,7 +284,6 @@
"Be aware that encryption always increases the file size." : "Бидете свесни дека енкрипцијата секогаш ја зголемува големината на датотеката.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Секогаш е добро да создавате редовни резервни кории на вашите податоци, во случај на енкрипција, осигурајте се да ги зачувате и клучевите за шифрирање заедно со вашите податоци.",
"This is the final warning: Do you really want to enable encryption?" : "Ова е последно предупредување: Дали навистина сакате да овозможите енкрипција?",
"You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "Ќе ја отстраните групата {group}. Корисниците во неа НЕМА да бидат избришани.",
"Submit" : "Испрати",
"Rename group" : "Преименувај група",
"Current password" : "Моментална лозинка",
@@ -420,7 +412,6 @@
"Visibility" : "Видливост",
"Show language" : "Прикажи јазик",
"Show storage path" : "Прикажи патека на складиште",
"Show first login" : "Прикажи прво најавување",
"Show last login" : "Прикажи последно најавување",
"Sorting" : "Сортирање",
"By name" : "По име",
@@ -433,7 +424,6 @@
"Passwordless authentication requires a secure connection." : "За најавување без лозинка потребно е да се користи безбедна врска.",
"Add WebAuthn device" : "Додади WebAuthn уред",
"Please authorize your WebAuthn device." : "Авторизирајте го вашиот WebAuthn уред.",
"Adding your device …" : "Додавање на вашиот уред …",
"Unnamed device" : "Уреди без име",
"Passwordless Authentication" : "Најавување без лозинка",
"Set up your account for passwordless authentication following the FIDO2 standard." : "Поставете ја вашата сметка за најавување без лозинка притоа следете ги FIDO2 стандардите.",
@@ -441,15 +431,12 @@
"The following devices are configured for your account:" : "Следниве уреди се конфигурирани за вашата сметка:",
"Your browser does not support WebAuthn." : "Вашиот прелистувач не поддржува WebAuthn.",
"Security & setup warnings" : "Предупредувања за сигурност & параметри",
"Checking your server …" : "Проверка на вашиот сервер …",
"Try again" : "Обиди се повторно",
"All checks passed." : "Сите проверки се поминати.",
"There are some errors regarding your setup." : "Постојат некои грешки во врска со инсталацијата.",
"There are some warnings regarding your setup." : "Постојат некои предупредувања во врска со инсталацијата.",
"As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Како администратор, можете детално да го прилагодите однесувањето на споделувањето. Погледнете ја документацијата за повеќе информации.",
"You need to enable the File sharing App." : "Треба да ја овозможите апликацијата Споделување на датотеки.",
"Loading categories" : "Вчитување категории",
"Developer documentation ↗" : "Документација за програмери ↗",
"Version {version}, {license}-licensed" : "Верзија {version}, {license}-лиценца",
"Version {version}" : "Верзија {version}",
"Apply" : "Примени",
@@ -494,8 +481,6 @@
"Show to everyone" : "Прикажи на сите",
"Show to logged in accounts only" : "Прикажи само на најавени корисници",
"Hide" : "Сокриј",
"{progress}% Deploying …" : "{progress}% Распоредување …",
"{progress}% Initializing …" : "{progress}% Иницијализирање …",
"Health checking" : "Здравствена проверка",
"Deploy and Enable" : "Распореди и овозможи",
"Download and enable" : "Преземи и овозможи",
-1
View File
@@ -312,7 +312,6 @@ OC.L10N.register(
"64-bit" : "64-bit",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Wygląda na to, że korzystasz z 32-bitowej wersji PHP. Nextcloud wymaga wersji 64-bitowej do poprawnego działania. Zaktualizuj proszę swój system i PHP do wersji 64-bitowych!",
"Task Processing pickup speed" : "Prędkość pobierania zadań do przetworzenia",
"_No scheduled tasks in the last day._::_No scheduled tasks in the last %n days._" : ["Brak zaplanowanych zadań w ciągu ostatniego dnia.","Brak zaplanowanych zadań w ciągu ostatnich %n dni.","Brak zaplanowanych zadań w ciągu ostatnich %n dni.","Brak zaplanowanych zadań w ciągu ostatnich %n dni."],
"Temporary space available" : "Dostępna przestrzeń tymczasowa",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "Błąd podczas sprawdzania tymczasowej ścieżki PHP - nie została ona poprawnie ustawiona na katalog. Wartość zwrócona: %s",
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "Funkcja PHP „disk_free_space” jest wyłączona, co uniemożliwia sprawdzenie wystarczającej ilości miejsca w katalogach tymczasowych.",
-1
View File
@@ -310,7 +310,6 @@
"64-bit" : "64-bit",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Wygląda na to, że korzystasz z 32-bitowej wersji PHP. Nextcloud wymaga wersji 64-bitowej do poprawnego działania. Zaktualizuj proszę swój system i PHP do wersji 64-bitowych!",
"Task Processing pickup speed" : "Prędkość pobierania zadań do przetworzenia",
"_No scheduled tasks in the last day._::_No scheduled tasks in the last %n days._" : ["Brak zaplanowanych zadań w ciągu ostatniego dnia.","Brak zaplanowanych zadań w ciągu ostatnich %n dni.","Brak zaplanowanych zadań w ciągu ostatnich %n dni.","Brak zaplanowanych zadań w ciągu ostatnich %n dni."],
"Temporary space available" : "Dostępna przestrzeń tymczasowa",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "Błąd podczas sprawdzania tymczasowej ścieżki PHP - nie została ona poprawnie ustawiona na katalog. Wartość zwrócona: %s",
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "Funkcja PHP „disk_free_space” jest wyłączona, co uniemożliwia sprawdzenie wystarczającej ilości miejsca w katalogach tymczasowych.",
-1
View File
@@ -407,7 +407,6 @@ OC.L10N.register(
"Full match autocompletion restrictions" : "Restrições de preenchimento automático de correspondência completa",
"Also allow autocompletion on full match of the user ID" : "Permitir também o preenchimento automático em caso de correspondência completa do ID do usuário",
"Also allow autocompletion on full match of the user email" : "Permitir também o preenchimento automático em caso de correspondência completa do e-mail do usuário.",
"Do not use second user displayname for full match" : "Não utilize o segundo nome de exibição do usuário para correspondência completa.",
"Show disclaimer text on the public link upload page (only shown when the file list is hidden)" : "Exibir o texto do aviso legal na página de upload do link público (somente mostrado quando a lista de arquivos está oculta).",
"Disclaimer text" : "Texto do aviso legal",
"This text will be shown on the public link upload page when the file list is hidden." : "Este texto será mostrado na página de upload do link público quando a lista de arquivos está oculta.",
-1
View File
@@ -405,7 +405,6 @@
"Full match autocompletion restrictions" : "Restrições de preenchimento automático de correspondência completa",
"Also allow autocompletion on full match of the user ID" : "Permitir também o preenchimento automático em caso de correspondência completa do ID do usuário",
"Also allow autocompletion on full match of the user email" : "Permitir também o preenchimento automático em caso de correspondência completa do e-mail do usuário.",
"Do not use second user displayname for full match" : "Não utilize o segundo nome de exibição do usuário para correspondência completa.",
"Show disclaimer text on the public link upload page (only shown when the file list is hidden)" : "Exibir o texto do aviso legal na página de upload do link público (somente mostrado quando a lista de arquivos está oculta).",
"Disclaimer text" : "Texto do aviso legal",
"This text will be shown on the public link upload page when the file list is hidden." : "Este texto será mostrado na página de upload do link público quando a lista de arquivos está oculta.",
@@ -10,7 +10,6 @@ return array(
'OCA\\Theming\\AppInfo\\Application' => $baseDir . '/../lib/AppInfo/Application.php',
'OCA\\Theming\\Capabilities' => $baseDir . '/../lib/Capabilities.php',
'OCA\\Theming\\Command\\UpdateConfig' => $baseDir . '/../lib/Command/UpdateConfig.php',
'OCA\\Theming\\ConfigLexicon' => $baseDir . '/../lib/ConfigLexicon.php',
'OCA\\Theming\\Controller\\IconController' => $baseDir . '/../lib/Controller/IconController.php',
'OCA\\Theming\\Controller\\ThemingController' => $baseDir . '/../lib/Controller/ThemingController.php',
'OCA\\Theming\\Controller\\UserThemeController' => $baseDir . '/../lib/Controller/UserThemeController.php',
@@ -25,7 +25,6 @@ class ComposerStaticInitTheming
'OCA\\Theming\\AppInfo\\Application' => __DIR__ . '/..' . '/../lib/AppInfo/Application.php',
'OCA\\Theming\\Capabilities' => __DIR__ . '/..' . '/../lib/Capabilities.php',
'OCA\\Theming\\Command\\UpdateConfig' => __DIR__ . '/..' . '/../lib/Command/UpdateConfig.php',
'OCA\\Theming\\ConfigLexicon' => __DIR__ . '/..' . '/../lib/ConfigLexicon.php',
'OCA\\Theming\\Controller\\IconController' => __DIR__ . '/..' . '/../lib/Controller/IconController.php',
'OCA\\Theming\\Controller\\ThemingController' => __DIR__ . '/..' . '/../lib/Controller/ThemingController.php',
'OCA\\Theming\\Controller\\UserThemeController' => __DIR__ . '/..' . '/../lib/Controller/UserThemeController.php',
+1 -13
View File
@@ -10,11 +10,7 @@ OC.L10N.register(
"The given privacy policy address is not a valid URL" : "Зададената URL адреса за политика за приватност не е валидна",
"The given slogan is too long" : "Зададениот слоган е премногу долг",
"The given color is invalid" : "Зададената боја не е валидна",
"Disable-user-theming should be true or false" : "Disable-user-theming треба да биде true или false",
"Saved" : "Зачувано",
"Invalid app given" : "Невалидна апликација е дадена",
"Invalid type for setting \"defaultApp\" given" : "Даден е невалиден тип за поставката \"defaultApp\"",
"Invalid setting key" : "Невалиден клуч за поставка",
"The file was uploaded" : "Датотеката е прикачена",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Подигнатата датотека ја надминува upload_max_filesize директивата во php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Големината на датотеката ја надминува MAX_FILE_SIZE директивата која беше специфицирана во HTML формата",
@@ -27,9 +23,6 @@ OC.L10N.register(
"You are already using a custom theme. Theming app settings might be overwritten by that." : "Веќе користите сопствена тема. Апликацијата за сопствена тема може да ја пребрише истата.",
"Theming" : "Теми",
"Appearance and accessibility" : "Изглед и пристапност",
"PHP Imagick module" : "PHP Imagick модул",
"The PHP module \"imagick\" is not enabled although the theming app is. For favicon generation to work correctly, you need to install and enable this module." : "PHP модулот \"imagick\" не е овозможен иако апликацијата за теми е активна. За правилно генерирање на favicon, треба да го инсталираш и овозможиш овој модул.",
"The PHP module \"imagick\" in this instance has no SVG support. For better compatibility it is recommended to install it." : "PHP модулот \"imagick\" во оваа инстанца нема поддршка за SVG. За подобра компатибилност се препорачува да се инсталира.",
"Dark theme with high contrast mode" : "Темна тема со режим на висок контраст",
"Enable dark high contrast mode" : "Овозможи темен режим со висок контраст",
"Similar to the high contrast mode, but with dark colours." : "Слично на режимот со висок контраст, но со темни бои.",
@@ -56,7 +49,6 @@ OC.L10N.register(
"a safe home for all your data" : "безбеден дом за сите ваши податоци",
"Slogan" : "Слоган",
"Primary color" : "Примарна боја",
"The primary color is used for highlighting elements like important buttons. It might get slightly adjusted depending on the current color schema." : "Примарната боја се користи за истакнување на елементи како важни копчиња. Може да биде малку прилагодена во зависност од моменталната шема на бои.",
"Legal notice link" : "Правно известување",
"Privacy policy link" : "Политика за приватност",
"Header logo" : "Лого на заглавие",
@@ -67,7 +59,6 @@ OC.L10N.register(
"Disable user theming" : "Оневозможи кориснички теми",
"Although you can select and customize your instance, users can change their background and colors. If you want to enforce your customization, you can toggle this on." : "Иако можете да изберете и да ја прилагодите вашата истанца, корисниците можат да ја менуваат нивната позадина и бои. Ако сакате да го наметнете вашето прилагодување, можете да го вклучите ова.",
"Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Темата овозможува можно полесно прилагодување на изгледот и чувството на вашите истанци и поддржани клиенти. Ова ќе биде видливо за сите корисници.",
"Instead of a background image you can also configure a plain background color. If you use a background image changing this color will influence the color of the app menu icons." : "Наместо позадинска слика, можеш да конфигурираш обична позадинска боја. Ако користиш позадинска слика, менувањето на оваа боја ќе влијае на бојата на иконите во менито на апликациите.",
"Background color" : "Боја на позадина",
"Upload new logo" : "Прикачи ново лого",
"Logo" : "Лого",
@@ -77,7 +68,6 @@ OC.L10N.register(
"Install the ImageMagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Инсталирај ImageMagick додаток за PHP со што ќе се овозможи поддршка за SVG сликите автоматски да генерираат Фавикон базирано на прикаченото лого и боја.",
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {linkstart}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Универзалниот пристап е многу важен за нас. Ние ги следиме веб-стандардите и ги имплементираме за да го направиме користењето попристапно, како користење без маус, и помошни апликации за читање на екранот. Наша цел е да бидеме во согласност со {linkstart} Упатства за пристапност до веб-содржина{linkend}2.1 на ниво АА, со висока контрастна тема дури и на ниво на ААА.",
"If you find any issues, do not hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Доколку наидете на некој проблем, не се двоумете и пријавете го на {issuetracker} {linkend}. И доколку сакате можете да се приклучите кон нашиот дизајнерски тим{designteam} {linkend}!",
"Unable to apply the setting." : "Не може да се примени поставката.",
"Appearance and accessibility settings" : "Поставки за изглед и пристапност",
"Misc accessibility options" : "Разни опции за пристапност",
"Enable blur background filter (may increase GPU load)" : "Овозможи филтер за замаглување на позадината (може да го зголеми оптоварувањето на графичкиот процесор)",
@@ -88,7 +78,6 @@ OC.L10N.register(
"Keyboard shortcuts" : "Кратенки преку тастатура",
"In some cases keyboard shortcuts can interfere with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps." : "Во некои случаи, кратенките на тастатурата може да се мешаат со алатките за пристапност. За да овозможите правилно фокусирање на вашата алатка, можете да ги оневозможите сите кратенки на тастатурата овде. Ова исто така ќе ги оневозможи сите достапни кратенки во апликациите.",
"Disable all keyboard shortcuts" : "Оневозможи ги сите кратенки преку тастатурата",
"Current selected app: {app}, position {position} of {total}" : "Моментално избрана апликација: {app}, позиција {position} од {total}.",
"Move up" : "Помести горе",
"Move down" : "Помести доле",
"Select a background from your files" : "Избери позадина од датотеките",
@@ -119,7 +108,6 @@ OC.L10N.register(
"Reset to default" : "Ресетирај на стандардно",
"Upload" : "Прикачи",
"Remove background image" : "Избриши ја позадинската слика",
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Универзалниот пристап е многу важен за нас. Ние ги следиме веб-стандардите и ги имплементираме за да го направиме користењето попристапно, како користење без маус, и помошни апликации за читање на екранот. Наша цел е да бидеме во согласност со {guidelines} Упатства за пристапност до веб-содржина{linkend}2.1 на ниво АА, со висока контрастна тема дури и на ниво на ААА.",
". Unable to apply the setting." : "Не може да се примени поставката."
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Универзалниот пристап е многу важен за нас. Ние ги следиме веб-стандардите и ги имплементираме за да го направиме користењето попристапно, како користење без маус, и помошни апликации за читање на екранот. Наша цел е да бидеме во согласност со {guidelines} Упатства за пристапност до веб-содржина{linkend}2.1 на ниво АА, со висока контрастна тема дури и на ниво на ААА."
},
"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;");
+1 -13
View File
@@ -8,11 +8,7 @@
"The given privacy policy address is not a valid URL" : "Зададената URL адреса за политика за приватност не е валидна",
"The given slogan is too long" : "Зададениот слоган е премногу долг",
"The given color is invalid" : "Зададената боја не е валидна",
"Disable-user-theming should be true or false" : "Disable-user-theming треба да биде true или false",
"Saved" : "Зачувано",
"Invalid app given" : "Невалидна апликација е дадена",
"Invalid type for setting \"defaultApp\" given" : "Даден е невалиден тип за поставката \"defaultApp\"",
"Invalid setting key" : "Невалиден клуч за поставка",
"The file was uploaded" : "Датотеката е прикачена",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Подигнатата датотека ја надминува upload_max_filesize директивата во php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Големината на датотеката ја надминува MAX_FILE_SIZE директивата која беше специфицирана во HTML формата",
@@ -25,9 +21,6 @@
"You are already using a custom theme. Theming app settings might be overwritten by that." : "Веќе користите сопствена тема. Апликацијата за сопствена тема може да ја пребрише истата.",
"Theming" : "Теми",
"Appearance and accessibility" : "Изглед и пристапност",
"PHP Imagick module" : "PHP Imagick модул",
"The PHP module \"imagick\" is not enabled although the theming app is. For favicon generation to work correctly, you need to install and enable this module." : "PHP модулот \"imagick\" не е овозможен иако апликацијата за теми е активна. За правилно генерирање на favicon, треба да го инсталираш и овозможиш овој модул.",
"The PHP module \"imagick\" in this instance has no SVG support. For better compatibility it is recommended to install it." : "PHP модулот \"imagick\" во оваа инстанца нема поддршка за SVG. За подобра компатибилност се препорачува да се инсталира.",
"Dark theme with high contrast mode" : "Темна тема со режим на висок контраст",
"Enable dark high contrast mode" : "Овозможи темен режим со висок контраст",
"Similar to the high contrast mode, but with dark colours." : "Слично на режимот со висок контраст, но со темни бои.",
@@ -54,7 +47,6 @@
"a safe home for all your data" : "безбеден дом за сите ваши податоци",
"Slogan" : "Слоган",
"Primary color" : "Примарна боја",
"The primary color is used for highlighting elements like important buttons. It might get slightly adjusted depending on the current color schema." : "Примарната боја се користи за истакнување на елементи како важни копчиња. Може да биде малку прилагодена во зависност од моменталната шема на бои.",
"Legal notice link" : "Правно известување",
"Privacy policy link" : "Политика за приватност",
"Header logo" : "Лого на заглавие",
@@ -65,7 +57,6 @@
"Disable user theming" : "Оневозможи кориснички теми",
"Although you can select and customize your instance, users can change their background and colors. If you want to enforce your customization, you can toggle this on." : "Иако можете да изберете и да ја прилагодите вашата истанца, корисниците можат да ја менуваат нивната позадина и бои. Ако сакате да го наметнете вашето прилагодување, можете да го вклучите ова.",
"Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Темата овозможува можно полесно прилагодување на изгледот и чувството на вашите истанци и поддржани клиенти. Ова ќе биде видливо за сите корисници.",
"Instead of a background image you can also configure a plain background color. If you use a background image changing this color will influence the color of the app menu icons." : "Наместо позадинска слика, можеш да конфигурираш обична позадинска боја. Ако користиш позадинска слика, менувањето на оваа боја ќе влијае на бојата на иконите во менито на апликациите.",
"Background color" : "Боја на позадина",
"Upload new logo" : "Прикачи ново лого",
"Logo" : "Лого",
@@ -75,7 +66,6 @@
"Install the ImageMagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Инсталирај ImageMagick додаток за PHP со што ќе се овозможи поддршка за SVG сликите автоматски да генерираат Фавикон базирано на прикаченото лого и боја.",
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {linkstart}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Универзалниот пристап е многу важен за нас. Ние ги следиме веб-стандардите и ги имплементираме за да го направиме користењето попристапно, како користење без маус, и помошни апликации за читање на екранот. Наша цел е да бидеме во согласност со {linkstart} Упатства за пристапност до веб-содржина{linkend}2.1 на ниво АА, со висока контрастна тема дури и на ниво на ААА.",
"If you find any issues, do not hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Доколку наидете на некој проблем, не се двоумете и пријавете го на {issuetracker} {linkend}. И доколку сакате можете да се приклучите кон нашиот дизајнерски тим{designteam} {linkend}!",
"Unable to apply the setting." : "Не може да се примени поставката.",
"Appearance and accessibility settings" : "Поставки за изглед и пристапност",
"Misc accessibility options" : "Разни опции за пристапност",
"Enable blur background filter (may increase GPU load)" : "Овозможи филтер за замаглување на позадината (може да го зголеми оптоварувањето на графичкиот процесор)",
@@ -86,7 +76,6 @@
"Keyboard shortcuts" : "Кратенки преку тастатура",
"In some cases keyboard shortcuts can interfere with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps." : "Во некои случаи, кратенките на тастатурата може да се мешаат со алатките за пристапност. За да овозможите правилно фокусирање на вашата алатка, можете да ги оневозможите сите кратенки на тастатурата овде. Ова исто така ќе ги оневозможи сите достапни кратенки во апликациите.",
"Disable all keyboard shortcuts" : "Оневозможи ги сите кратенки преку тастатурата",
"Current selected app: {app}, position {position} of {total}" : "Моментално избрана апликација: {app}, позиција {position} од {total}.",
"Move up" : "Помести горе",
"Move down" : "Помести доле",
"Select a background from your files" : "Избери позадина од датотеките",
@@ -117,7 +106,6 @@
"Reset to default" : "Ресетирај на стандардно",
"Upload" : "Прикачи",
"Remove background image" : "Избриши ја позадинската слика",
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Универзалниот пристап е многу важен за нас. Ние ги следиме веб-стандардите и ги имплементираме за да го направиме користењето попристапно, како користење без маус, и помошни апликации за читање на екранот. Наша цел е да бидеме во согласност со {guidelines} Упатства за пристапност до веб-содржина{linkend}2.1 на ниво АА, со висока контрастна тема дури и на ниво на ААА.",
". Unable to apply the setting." : "Не може да се примени поставката."
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Универзалниот пристап е многу важен за нас. Ние ги следиме веб-стандардите и ги имплементираме за да го направиме користењето попристапно, како користење без маус, и помошни апликации за читање на екранот. Наша цел е да бидеме во согласност со {guidelines} Упатства за пристапност до веб-содржина{linkend}2.1 на ниво АА, со висока контрастна тема дури и на ниво на ААА."
},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"
}
-116
View File
@@ -1,116 +0,0 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Theming;
use OCP\Config\Lexicon\Entry;
use OCP\Config\Lexicon\ILexicon;
use OCP\Config\Lexicon\Strictness;
use OCP\Config\ValueType;
/**
* Config Lexicon for theming.
*
* Please Add & Manage your Config Keys in that file and keep the Lexicon up to date!
*
* {@see ILexicon}
*/
class ConfigLexicon implements ILexicon {
/** The cache buster index */
public const CACHE_BUSTER = 'cachebuster';
public const USER_THEMING_DISABLED = 'disable-user-theming';
/** Name of the software running on this instance (usually "Nextcloud") */
public const PRODUCT_NAME = 'productName';
/** Short name of this instance */
public const INSTANCE_NAME = 'name';
/** Slogan of this instance */
public const INSTANCE_SLOGAN = 'slogan';
/** Imprint URL of this instance */
public const INSTANCE_IMPRINT_URL = 'imprintUrl';
/** Privacy URL of this instance */
public const INSTANCE_PRIVACY_URL = 'privacyUrl';
// legacy theming
/** Base URL of this instance */
public const BASE_URL = 'url';
/** Base URL for documentation */
public const DOC_BASE_URL = 'docBaseUrl';
public function getStrictness(): Strictness {
return Strictness::NOTICE;
}
public function getAppConfigs(): array {
return [
// internals
new Entry(
self::CACHE_BUSTER,
ValueType::INT,
defaultRaw: 0,
definition: 'The current cache buster key for theming assets.',
),
new Entry(
self::USER_THEMING_DISABLED,
ValueType::BOOL,
defaultRaw: false,
definition: 'Whether user theming is disabled.',
),
// instance theming
new Entry(
self::PRODUCT_NAME,
ValueType::STRING,
defaultRaw: 'Nextcloud',
definition: 'The name of the software running on this instance (usually "Nextcloud").',
),
new Entry(
self::INSTANCE_NAME,
ValueType::STRING,
defaultRaw: '',
definition: 'Short name of this instance.',
),
new Entry(
self::INSTANCE_SLOGAN,
ValueType::STRING,
defaultRaw: '',
definition: 'Slogan of this instance.',
),
new Entry(
self::INSTANCE_IMPRINT_URL,
ValueType::STRING,
defaultRaw: '',
definition: 'Imprint URL of this instance.',
),
new Entry(
self::INSTANCE_PRIVACY_URL,
ValueType::STRING,
defaultRaw: '',
definition: 'Privacy URL of this instance.',
),
// legacy theming
new Entry(
self::BASE_URL,
ValueType::STRING,
defaultRaw: '',
definition: 'Base URL of this instance.',
),
new Entry(
self::DOC_BASE_URL,
ValueType::STRING,
defaultRaw: '',
definition: 'Base URL for documentation.',
),
];
}
public function getUserConfigs(): array {
return [];
}
}
+45 -54
View File
@@ -10,9 +10,9 @@ use OCA\Theming\AppInfo\Application;
use OCA\Theming\Service\BackgroundService;
use OCP\App\AppPathNotFoundException;
use OCP\App\IAppManager;
use OCP\AppFramework\Services\IAppConfig;
use OCP\Files\NotFoundException;
use OCP\Files\SimpleFS\ISimpleFile;
use OCP\IAppConfig;
use OCP\ICacheFactory;
use OCP\IConfig;
use OCP\IL10N;
@@ -69,27 +69,27 @@ class ThemingDefaults extends \OC_Defaults {
}
public function getName() {
return strip_tags($this->appConfig->getAppValueString(ConfigLexicon::INSTANCE_NAME, $this->name));
return strip_tags($this->config->getAppValue('theming', 'name', $this->name));
}
public function getHTMLName() {
return $this->appConfig->getAppValueString(ConfigLexicon::INSTANCE_NAME, $this->name);
return $this->config->getAppValue('theming', 'name', $this->name);
}
public function getTitle() {
return strip_tags($this->appConfig->getAppValueString(ConfigLexicon::INSTANCE_NAME, $this->title));
return strip_tags($this->config->getAppValue('theming', 'name', $this->title));
}
public function getEntity() {
return strip_tags($this->appConfig->getAppValueString(ConfigLexicon::INSTANCE_NAME, $this->entity));
return strip_tags($this->config->getAppValue('theming', 'name', $this->entity));
}
public function getProductName() {
return strip_tags($this->appConfig->getAppValueString(ConfigLexicon::PRODUCT_NAME, $this->productName));
return strip_tags($this->config->getAppValue('theming', 'productName', $this->productName));
}
public function getBaseUrl() {
return $this->appConfig->getAppValueString(ConfigLexicon::BASE_URL, $this->url);
return $this->config->getAppValue('theming', 'url', $this->url);
}
/**
@@ -97,20 +97,20 @@ class ThemingDefaults extends \OC_Defaults {
* @psalm-suppress InvalidReturnStatement
* @psalm-suppress InvalidReturnType
*/
public function getSlogan(?string $lang = null): string {
return \OCP\Util::sanitizeHTML($this->appConfig->getAppValueString(ConfigLexicon::INSTANCE_SLOGAN, parent::getSlogan($lang)));
public function getSlogan(?string $lang = null) {
return \OCP\Util::sanitizeHTML($this->config->getAppValue('theming', 'slogan', parent::getSlogan($lang)));
}
public function getImprintUrl(): string {
return $this->appConfig->getAppValueString(ConfigLexicon::INSTANCE_IMPRINT_URL, '');
public function getImprintUrl() {
return (string)$this->config->getAppValue('theming', 'imprintUrl', '');
}
public function getPrivacyUrl(): string {
return $this->appConfig->getAppValueString(ConfigLexicon::INSTANCE_PRIVACY_URL, '');
public function getPrivacyUrl() {
return (string)$this->config->getAppValue('theming', 'privacyUrl', '');
}
public function getDocBaseUrl(): string {
return $this->appConfig->getAppValueString(ConfigLexicon::DOC_BASE_URL, $this->docBaseUrl);
public function getDocBaseUrl() {
return (string)$this->config->getAppValue('theming', 'docBaseUrl', $this->docBaseUrl);
}
public function getShortFooter() {
@@ -132,11 +132,11 @@ class ThemingDefaults extends \OC_Defaults {
$links = [
[
'text' => $this->l->t('Legal notice'),
'url' => $this->getImprintUrl()
'url' => (string)$this->getImprintUrl()
],
[
'text' => $this->l->t('Privacy policy'),
'url' => $this->getPrivacyUrl()
'url' => (string)$this->getPrivacyUrl()
],
];
@@ -224,7 +224,7 @@ class ThemingDefaults extends \OC_Defaults {
*/
public function getDefaultColorPrimary(): string {
// try admin color
$defaultColor = $this->appConfig->getAppValueString('primary_color', '');
$defaultColor = $this->appConfig->getValueString(Application::APP_ID, 'primary_color', '');
if (preg_match('/^\#([0-9a-f]{3}|[0-9a-f]{6})$/i', $defaultColor)) {
return $defaultColor;
}
@@ -237,7 +237,7 @@ class ThemingDefaults extends \OC_Defaults {
* Default background color only taking admin setting into account
*/
public function getDefaultColorBackground(): string {
$defaultColor = $this->appConfig->getAppValueString('background_color');
$defaultColor = $this->appConfig->getValueString(Application::APP_ID, 'background_color');
if (preg_match('/^\#([0-9a-f]{3}|[0-9a-f]{6})$/i', $defaultColor)) {
return $defaultColor;
}
@@ -252,14 +252,14 @@ class ThemingDefaults extends \OC_Defaults {
* @return string
*/
public function getLogo($useSvg = true): string {
$logo = $this->appConfig->getAppValueString('logoMime', '');
$logo = $this->config->getAppValue('theming', 'logoMime', '');
// short cut to avoid setting up the filesystem just to check if the logo is there
//
// explanation: if an SVG is requested and the app config value for logoMime is set then the logo is there.
// otherwise we need to check it and maybe also generate a PNG from the SVG (that's done in getImage() which
// needs to be called then)
if ($useSvg === true && $logo !== '') {
if ($useSvg === true && $logo !== false) {
$logoExists = true;
} else {
try {
@@ -270,7 +270,8 @@ class ThemingDefaults extends \OC_Defaults {
}
}
$cacheBusterCounter = (string)$this->appConfig->getAppValueInt(ConfigLexicon::CACHE_BUSTER);
$cacheBusterCounter = $this->config->getAppValue('theming', 'cachebuster', '0');
if (!$logo || !$logoExists) {
if ($useSvg) {
$logo = $this->urlGenerator->imagePath('core', 'logo/logo.svg');
@@ -297,28 +298,28 @@ class ThemingDefaults extends \OC_Defaults {
* @return string
*/
public function getiTunesAppId() {
return $this->appConfig->getAppValueString('iTunesAppId', $this->iTunesAppId);
return $this->config->getAppValue('theming', 'iTunesAppId', $this->iTunesAppId);
}
/**
* @return string
*/
public function getiOSClientUrl() {
return $this->appConfig->getAppValueString('iOSClientUrl', $this->iOSClientUrl);
return $this->config->getAppValue('theming', 'iOSClientUrl', $this->iOSClientUrl);
}
/**
* @return string
*/
public function getAndroidClientUrl() {
return $this->appConfig->getAppValueString('AndroidClientUrl', $this->AndroidClientUrl);
return $this->config->getAppValue('theming', 'AndroidClientUrl', $this->AndroidClientUrl);
}
/**
* @return string
*/
public function getFDroidClientUrl() {
return $this->appConfig->getAppValueString('FDroidClientUrl', $this->FDroidClientUrl);
return $this->config->getAppValue('theming', 'FDroidClientUrl', $this->FDroidClientUrl);
}
/**
@@ -326,18 +327,18 @@ class ThemingDefaults extends \OC_Defaults {
* @deprecated since Nextcloud 22 - https://github.com/nextcloud/server/issues/9940
*/
public function getScssVariables() {
$cacheBuster = $this->appConfig->getAppValueInt(ConfigLexicon::CACHE_BUSTER);
$cache = $this->cacheFactory->createDistributed('theming-' . (string)$cacheBuster . '-' . $this->urlGenerator->getBaseUrl());
$cacheBuster = $this->config->getAppValue('theming', 'cachebuster', '0');
$cache = $this->cacheFactory->createDistributed('theming-' . $cacheBuster . '-' . $this->urlGenerator->getBaseUrl());
if ($value = $cache->get('getScssVariables')) {
return $value;
}
$variables = [
'theming-cachebuster' => "'" . $cacheBuster . "'",
'theming-logo-mime' => "'" . $this->appConfig->getAppValueString('logoMime') . "'",
'theming-background-mime' => "'" . $this->appConfig->getAppValueString('backgroundMime') . "'",
'theming-logoheader-mime' => "'" . $this->appConfig->getAppValueString('logoheaderMime') . "'",
'theming-favicon-mime' => "'" . $this->appConfig->getAppValueString('faviconMime') . "'"
'theming-logo-mime' => "'" . $this->config->getAppValue('theming', 'logoMime') . "'",
'theming-background-mime' => "'" . $this->config->getAppValue('theming', 'backgroundMime') . "'",
'theming-logoheader-mime' => "'" . $this->config->getAppValue('theming', 'logoheaderMime') . "'",
'theming-favicon-mime' => "'" . $this->config->getAppValue('theming', 'faviconMime') . "'"
];
$variables['image-logo'] = "url('" . $this->imageManager->getImageUrl('logo') . "')";
@@ -346,13 +347,13 @@ class ThemingDefaults extends \OC_Defaults {
$variables['image-login-background'] = "url('" . $this->imageManager->getImageUrl('background') . "')";
$variables['image-login-plain'] = 'false';
if ($this->appConfig->getAppValueString('primary_color', '') !== '') {
if ($this->appConfig->getValueString(Application::APP_ID, 'primary_color', '') !== '') {
$variables['color-primary'] = $this->getColorPrimary();
$variables['color-primary-text'] = $this->getTextColorPrimary();
$variables['color-primary-element'] = $this->util->elementColor($this->getColorPrimary());
}
if ($this->appConfig->getAppValueString('backgroundMime', '') === 'backgroundColor') {
if ($this->config->getAppValue('theming', 'backgroundMime', '') === 'backgroundColor') {
$variables['image-login-plain'] = 'true';
}
@@ -377,6 +378,7 @@ class ThemingDefaults extends \OC_Defaults {
if ($app === '' || $app === 'files_sharing') {
$app = 'core';
}
$cacheBusterValue = $this->config->getAppValue('theming', 'cachebuster', '0');
$route = false;
if ($image === 'favicon.ico' && ($this->imageManager->shouldReplaceIcons() || $this->getCustomFavicon() !== null)) {
@@ -418,8 +420,8 @@ class ThemingDefaults extends \OC_Defaults {
* Increases the cache buster key
*/
public function increaseCacheBuster(): void {
$cacheBusterKey = $this->appConfig->getAppValueInt(ConfigLexicon::CACHE_BUSTER);
$this->appConfig->setAppValueInt(ConfigLexicon::CACHE_BUSTER, $cacheBusterKey + 1);
$cacheBusterKey = (int)$this->config->getAppValue('theming', 'cachebuster', '0');
$this->config->setAppValue('theming', 'cachebuster', (string)($cacheBusterKey + 1));
$this->cacheFactory->createDistributed('theming-')->clear();
$this->cacheFactory->createDistributed('imagePath')->clear();
}
@@ -431,18 +433,7 @@ class ThemingDefaults extends \OC_Defaults {
* @param string $value
*/
public function set($setting, $value): void {
switch ($value) {
case ConfigLexicon::CACHE_BUSTER:
$this->appConfig->setAppValueInt(ConfigLexicon::CACHE_BUSTER, (int)$value);
break;
case ConfigLexicon::USER_THEMING_DISABLED:
$value = $value === 'true' || $value === 'yes' || $value === '1';
$this->appConfig->setAppValueBool(ConfigLexicon::USER_THEMING_DISABLED, $value);
break;
default:
$this->appConfig->setAppValueString($setting, $value);
break;
}
$this->appConfig->setValueString('theming', $setting, $value);
$this->increaseCacheBuster();
}
@@ -452,9 +443,9 @@ class ThemingDefaults extends \OC_Defaults {
public function undoAll(): void {
// Remember the current cachebuster value, as we do not want to reset this value
// Otherwise this can lead to caching issues as the value might be known to a browser already
$cacheBusterKey = $this->appConfig->getAppValueInt(ConfigLexicon::CACHE_BUSTER);
$this->appConfig->deleteAppValues();
$this->appConfig->setAppValueInt(ConfigLexicon::CACHE_BUSTER, $cacheBusterKey);
$cacheBusterKey = $this->config->getAppValue('theming', 'cachebuster', '0');
$this->config->deleteAppValues('theming');
$this->config->setAppValue('theming', 'cachebuster', $cacheBusterKey);
$this->increaseCacheBuster();
}
@@ -465,7 +456,7 @@ class ThemingDefaults extends \OC_Defaults {
* @return string default value
*/
public function undo($setting): string {
$this->appConfig->deleteAppValue($setting);
$this->config->deleteAppValue('theming', $setting);
$this->increaseCacheBuster();
$returnValue = '';
@@ -494,7 +485,7 @@ class ThemingDefaults extends \OC_Defaults {
case 'background':
case 'favicon':
$this->imageManager->delete($setting);
$this->appConfig->deleteAppValue($setting . 'Mime');
$this->config->deleteAppValue('theming', $setting . 'Mime');
break;
}
@@ -532,6 +523,6 @@ class ThemingDefaults extends \OC_Defaults {
* Has the admin disabled user customization
*/
public function isUserThemingDisabled(): bool {
return $this->appConfig->getAppValueBool(ConfigLexicon::USER_THEMING_DISABLED, false);
return $this->appConfig->getValueBool(Application::APP_ID, 'disable-user-theming');
}
}
+229 -247
View File
@@ -12,8 +12,8 @@ use OCA\Theming\Service\BackgroundService;
use OCA\Theming\ThemingDefaults;
use OCA\Theming\Util;
use OCP\App\IAppManager;
use OCP\AppFramework\Services\IAppConfig;
use OCP\Files\NotFoundException;
use OCP\IAppConfig;
use OCP\ICache;
use OCP\ICacheFactory;
use OCP\IConfig;
@@ -28,7 +28,8 @@ use Test\TestCase;
class ThemingDefaultsTest extends TestCase {
private IAppConfig&MockObject $appConfig;
private IConfig&MockObject $config;
private IL10N&MockObject $l10n;
private \OC_Defaults $defaults;
private IL10N|MockObject $l10n;
private IUserSession&MockObject $userSession;
private IURLGenerator&MockObject $urlGenerator;
private ICacheFactory&MockObject $cacheFactory;
@@ -38,8 +39,6 @@ class ThemingDefaultsTest extends TestCase {
private ImageManager&MockObject $imageManager;
private INavigationManager&MockObject $navigationManager;
private BackgroundService&MockObject $backgroundService;
private \OC_Defaults $defaults;
private ThemingDefaults $template;
protected function setUp(): void {
@@ -77,60 +76,60 @@ class ThemingDefaultsTest extends TestCase {
}
public function testGetNameWithDefault(): void {
$this->appConfig
$this->config
->expects($this->once())
->method('getAppValueString')
->with('name', 'Nextcloud')
->method('getAppValue')
->with('theming', 'name', 'Nextcloud')
->willReturn('Nextcloud');
$this->assertEquals('Nextcloud', $this->template->getName());
}
public function testGetNameWithCustom(): void {
$this->appConfig
$this->config
->expects($this->once())
->method('getAppValueString')
->with('name', 'Nextcloud')
->method('getAppValue')
->with('theming', 'name', 'Nextcloud')
->willReturn('MyCustomCloud');
$this->assertEquals('MyCustomCloud', $this->template->getName());
}
public function testGetHTMLNameWithDefault(): void {
$this->appConfig
$this->config
->expects($this->once())
->method('getAppValueString')
->with('name', 'Nextcloud')
->method('getAppValue')
->with('theming', 'name', 'Nextcloud')
->willReturn('Nextcloud');
$this->assertEquals('Nextcloud', $this->template->getHTMLName());
}
public function testGetHTMLNameWithCustom(): void {
$this->appConfig
$this->config
->expects($this->once())
->method('getAppValueString')
->with('name', 'Nextcloud')
->method('getAppValue')
->with('theming', 'name', 'Nextcloud')
->willReturn('MyCustomCloud');
$this->assertEquals('MyCustomCloud', $this->template->getHTMLName());
}
public function testGetTitleWithDefault(): void {
$this->appConfig
$this->config
->expects($this->once())
->method('getAppValueString')
->with('name', 'Nextcloud')
->method('getAppValue')
->with('theming', 'name', 'Nextcloud')
->willReturn('Nextcloud');
$this->assertEquals('Nextcloud', $this->template->getTitle());
}
public function testGetTitleWithCustom(): void {
$this->appConfig
$this->config
->expects($this->once())
->method('getAppValueString')
->with('name', 'Nextcloud')
->method('getAppValue')
->with('theming', 'name', 'Nextcloud')
->willReturn('MyCustomCloud');
$this->assertEquals('MyCustomCloud', $this->template->getTitle());
@@ -138,40 +137,40 @@ class ThemingDefaultsTest extends TestCase {
public function testGetEntityWithDefault(): void {
$this->appConfig
$this->config
->expects($this->once())
->method('getAppValueString')
->with('name', 'Nextcloud')
->method('getAppValue')
->with('theming', 'name', 'Nextcloud')
->willReturn('Nextcloud');
$this->assertEquals('Nextcloud', $this->template->getEntity());
}
public function testGetEntityWithCustom(): void {
$this->appConfig
$this->config
->expects($this->once())
->method('getAppValueString')
->with('name', 'Nextcloud')
->method('getAppValue')
->with('theming', 'name', 'Nextcloud')
->willReturn('MyCustomCloud');
$this->assertEquals('MyCustomCloud', $this->template->getEntity());
}
public function testGetBaseUrlWithDefault(): void {
$this->appConfig
$this->config
->expects($this->once())
->method('getAppValueString')
->with('url', $this->defaults->getBaseUrl())
->method('getAppValue')
->with('theming', 'url', $this->defaults->getBaseUrl())
->willReturn($this->defaults->getBaseUrl());
$this->assertEquals($this->defaults->getBaseUrl(), $this->template->getBaseUrl());
}
public function testGetBaseUrlWithCustom(): void {
$this->appConfig
$this->config
->expects($this->once())
->method('getAppValueString')
->with('url', $this->defaults->getBaseUrl())
->method('getAppValue')
->with('theming', 'url', $this->defaults->getBaseUrl())
->willReturn('https://example.com/');
$this->assertEquals('https://example.com/', $this->template->getBaseUrl());
@@ -186,10 +185,10 @@ class ThemingDefaultsTest extends TestCase {
#[\PHPUnit\Framework\Attributes\DataProvider('legalUrlProvider')]
public function testGetImprintURL(string $imprintUrl): void {
$this->appConfig
$this->config
->expects($this->once())
->method('getAppValueString')
->with('imprintUrl', '')
->method('getAppValue')
->with('theming', 'imprintUrl', '')
->willReturn($imprintUrl);
$this->assertEquals($imprintUrl, $this->template->getImprintUrl());
@@ -197,45 +196,45 @@ class ThemingDefaultsTest extends TestCase {
#[\PHPUnit\Framework\Attributes\DataProvider('legalUrlProvider')]
public function testGetPrivacyURL(string $privacyUrl): void {
$this->appConfig
$this->config
->expects($this->once())
->method('getAppValueString')
->with('privacyUrl', '')
->method('getAppValue')
->with('theming', 'privacyUrl', '')
->willReturn($privacyUrl);
$this->assertEquals($privacyUrl, $this->template->getPrivacyUrl());
}
public function testGetSloganWithDefault(): void {
$this->appConfig
$this->config
->expects($this->once())
->method('getAppValueString')
->with('slogan', $this->defaults->getSlogan())
->method('getAppValue')
->with('theming', 'slogan', $this->defaults->getSlogan())
->willReturn($this->defaults->getSlogan());
$this->assertEquals($this->defaults->getSlogan(), $this->template->getSlogan());
}
public function testGetSloganWithCustom(): void {
$this->appConfig
$this->config
->expects($this->once())
->method('getAppValueString')
->with('slogan', $this->defaults->getSlogan())
->method('getAppValue')
->with('theming', 'slogan', $this->defaults->getSlogan())
->willReturn('My custom Slogan');
$this->assertEquals('My custom Slogan', $this->template->getSlogan());
}
public function testGetShortFooter(): void {
$this->appConfig
$this->config
->expects($this->exactly(5))
->method('getAppValueString')
->method('getAppValue')
->willReturnMap([
['url', $this->defaults->getBaseUrl(), 'url'],
['name', 'Nextcloud', 'Name'],
['slogan', $this->defaults->getSlogan(), 'Slogan'],
['imprintUrl', '', ''],
['privacyUrl', '', ''],
['theming', 'url', $this->defaults->getBaseUrl(), 'url'],
['theming', 'name', 'Nextcloud', 'Name'],
['theming', 'slogan', $this->defaults->getSlogan(), 'Slogan'],
['theming', 'imprintUrl', '', ''],
['theming', 'privacyUrl', '', ''],
]);
$this->assertEquals('<a href="url" target="_blank" rel="noreferrer noopener" class="entity-name">Name</a> Slogan', $this->template->getShortFooter());
@@ -243,15 +242,15 @@ class ThemingDefaultsTest extends TestCase {
public function testGetShortFooterEmptyUrl(): void {
$this->navigationManager->expects($this->once())->method('getAll')->with(INavigationManager::TYPE_GUEST)->willReturn([]);
$this->appConfig
$this->config
->expects($this->exactly(5))
->method('getAppValueString')
->method('getAppValue')
->willReturnMap([
['url', $this->defaults->getBaseUrl(), ''],
['name', 'Nextcloud', 'Name'],
['slogan', $this->defaults->getSlogan(), 'Slogan'],
['imprintUrl', '', ''],
['privacyUrl', '', ''],
['theming', 'url', $this->defaults->getBaseUrl(), ''],
['theming', 'name', 'Nextcloud', 'Name'],
['theming', 'slogan', $this->defaults->getSlogan(), 'Slogan'],
['theming', 'imprintUrl', '', ''],
['theming', 'privacyUrl', '', ''],
]);
$this->assertEquals('<span class="entity-name">Name</span> Slogan', $this->template->getShortFooter());
@@ -259,15 +258,15 @@ class ThemingDefaultsTest extends TestCase {
public function testGetShortFooterEmptySlogan(): void {
$this->navigationManager->expects($this->once())->method('getAll')->with(INavigationManager::TYPE_GUEST)->willReturn([]);
$this->appConfig
$this->config
->expects($this->exactly(5))
->method('getAppValueString')
->method('getAppValue')
->willReturnMap([
['url', $this->defaults->getBaseUrl(), 'url'],
['name', 'Nextcloud', 'Name'],
['slogan', $this->defaults->getSlogan(), ''],
['imprintUrl', '', ''],
['privacyUrl', '', ''],
['theming', 'url', $this->defaults->getBaseUrl(), 'url'],
['theming', 'name', 'Nextcloud', 'Name'],
['theming', 'slogan', $this->defaults->getSlogan(), ''],
['theming', 'imprintUrl', '', ''],
['theming', 'privacyUrl', '', ''],
]);
$this->assertEquals('<a href="url" target="_blank" rel="noreferrer noopener" class="entity-name">Name</a>', $this->template->getShortFooter());
@@ -275,15 +274,15 @@ class ThemingDefaultsTest extends TestCase {
public function testGetShortFooterImprint(): void {
$this->navigationManager->expects($this->once())->method('getAll')->with(INavigationManager::TYPE_GUEST)->willReturn([]);
$this->appConfig
$this->config
->expects($this->exactly(5))
->method('getAppValueString')
->method('getAppValue')
->willReturnMap([
['url', $this->defaults->getBaseUrl(), 'url'],
['name', 'Nextcloud', 'Name'],
['slogan', $this->defaults->getSlogan(), 'Slogan'],
['imprintUrl', '', 'https://example.com/imprint'],
['privacyUrl', '', ''],
['theming', 'url', $this->defaults->getBaseUrl(), 'url'],
['theming', 'name', 'Nextcloud', 'Name'],
['theming', 'slogan', $this->defaults->getSlogan(), 'Slogan'],
['theming', 'imprintUrl', '', 'https://example.com/imprint'],
['theming', 'privacyUrl', '', ''],
]);
$this->l10n
@@ -296,15 +295,15 @@ class ThemingDefaultsTest extends TestCase {
public function testGetShortFooterPrivacy(): void {
$this->navigationManager->expects($this->once())->method('getAll')->with(INavigationManager::TYPE_GUEST)->willReturn([]);
$this->appConfig
$this->config
->expects($this->exactly(5))
->method('getAppValueString')
->method('getAppValue')
->willReturnMap([
['url', $this->defaults->getBaseUrl(), 'url'],
['name', 'Nextcloud', 'Name'],
['slogan', $this->defaults->getSlogan(), 'Slogan'],
['imprintUrl', '', ''],
['privacyUrl', '', 'https://example.com/privacy'],
['theming', 'url', $this->defaults->getBaseUrl(), 'url'],
['theming', 'name', 'Nextcloud', 'Name'],
['theming', 'slogan', $this->defaults->getSlogan(), 'Slogan'],
['theming', 'imprintUrl', '', ''],
['theming', 'privacyUrl', '', 'https://example.com/privacy'],
]);
$this->l10n
@@ -317,15 +316,15 @@ class ThemingDefaultsTest extends TestCase {
public function testGetShortFooterAllLegalLinks(): void {
$this->navigationManager->expects($this->once())->method('getAll')->with(INavigationManager::TYPE_GUEST)->willReturn([]);
$this->appConfig
$this->config
->expects($this->exactly(5))
->method('getAppValueString')
->method('getAppValue')
->willReturnMap([
['url', $this->defaults->getBaseUrl(), 'url'],
['name', 'Nextcloud', 'Name'],
['slogan', $this->defaults->getSlogan(), 'Slogan'],
['imprintUrl', '', 'https://example.com/imprint'],
['privacyUrl', '', 'https://example.com/privacy'],
['theming', 'url', $this->defaults->getBaseUrl(), 'url'],
['theming', 'name', 'Nextcloud', 'Name'],
['theming', 'slogan', $this->defaults->getSlogan(), 'Slogan'],
['theming', 'imprintUrl', '', 'https://example.com/imprint'],
['theming', 'privacyUrl', '', 'https://example.com/privacy'],
]);
$this->l10n
@@ -346,15 +345,15 @@ class ThemingDefaultsTest extends TestCase {
#[\PHPUnit\Framework\Attributes\DataProvider('invalidLegalUrlProvider')]
public function testGetShortFooterInvalidImprint(string $invalidImprintUrl): void {
$this->navigationManager->expects($this->once())->method('getAll')->with(INavigationManager::TYPE_GUEST)->willReturn([]);
$this->appConfig
$this->config
->expects($this->exactly(5))
->method('getAppValueString')
->method('getAppValue')
->willReturnMap([
['url', $this->defaults->getBaseUrl(), 'url'],
['name', 'Nextcloud', 'Name'],
['slogan', $this->defaults->getSlogan(), 'Slogan'],
['imprintUrl', '', $invalidImprintUrl],
['privacyUrl', '', ''],
['theming', 'url', $this->defaults->getBaseUrl(), 'url'],
['theming', 'name', 'Nextcloud', 'Name'],
['theming', 'slogan', $this->defaults->getSlogan(), 'Slogan'],
['theming', 'imprintUrl', '', $invalidImprintUrl],
['theming', 'privacyUrl', '', ''],
]);
$this->assertEquals('<a href="url" target="_blank" rel="noreferrer noopener" class="entity-name">Name</a> Slogan', $this->template->getShortFooter());
@@ -363,15 +362,15 @@ class ThemingDefaultsTest extends TestCase {
#[\PHPUnit\Framework\Attributes\DataProvider('invalidLegalUrlProvider')]
public function testGetShortFooterInvalidPrivacy(string $invalidPrivacyUrl): void {
$this->navigationManager->expects($this->once())->method('getAll')->with(INavigationManager::TYPE_GUEST)->willReturn([]);
$this->appConfig
$this->config
->expects($this->exactly(5))
->method('getAppValueString')
->method('getAppValue')
->willReturnMap([
['url', $this->defaults->getBaseUrl(), 'url'],
['name', 'Nextcloud', 'Name'],
['slogan', $this->defaults->getSlogan(), 'Slogan'],
['imprintUrl', '', ''],
['privacyUrl', '', $invalidPrivacyUrl],
['theming', 'url', $this->defaults->getBaseUrl(), 'url'],
['theming', 'name', 'Nextcloud', 'Name'],
['theming', 'slogan', $this->defaults->getSlogan(), 'Slogan'],
['theming', 'imprintUrl', '', ''],
['theming', 'privacyUrl', '', $invalidPrivacyUrl],
]);
$this->assertEquals('<a href="url" target="_blank" rel="noreferrer noopener" class="entity-name">Name</a> Slogan', $this->template->getShortFooter());
@@ -380,13 +379,13 @@ class ThemingDefaultsTest extends TestCase {
public function testGetColorPrimaryWithDefault(): void {
$this->appConfig
->expects(self::once())
->method('getAppValueBool')
->with('disable-user-theming')
->method('getValueBool')
->with('theming', 'disable-user-theming')
->willReturn(false);
$this->appConfig
->expects(self::once())
->method('getAppValueString')
->with('primary_color', '')
->method('getValueString')
->with('theming', 'primary_color', '')
->willReturn($this->defaults->getColorPrimary());
$this->assertEquals($this->defaults->getColorPrimary(), $this->template->getColorPrimary());
@@ -395,13 +394,13 @@ class ThemingDefaultsTest extends TestCase {
public function testGetColorPrimaryWithCustom(): void {
$this->appConfig
->expects(self::once())
->method('getAppValueBool')
->with('disable-user-theming')
->method('getValueBool')
->with('theming', 'disable-user-theming')
->willReturn(false);
$this->appConfig
->expects(self::once())
->method('getAppValueString')
->with('primary_color', '')
->method('getValueString')
->with('theming', 'primary_color', '')
->willReturn('#fff');
$this->assertEquals('#fff', $this->template->getColorPrimary());
@@ -459,13 +458,13 @@ class ThemingDefaultsTest extends TestCase {
->willReturn('user');
$this->appConfig
->expects(self::any())
->method('getAppValueBool')
->with('disable-user-theming')
->method('getValueBool')
->with('theming', 'disable-user-theming')
->willReturn($disableTheming);
$this->appConfig
->expects(self::any())
->method('getAppValueString')
->with('primary_color', '')
->method('getValueString')
->with('theming', 'primary_color', '')
->willReturn($primaryColor);
$this->config
->expects($this->any())
@@ -477,19 +476,19 @@ class ThemingDefaultsTest extends TestCase {
}
public function testSet(): void {
$this->config
->expects($this->once())
->method('setAppValue')
->with('theming', 'cachebuster', 16);
$this->appConfig
->expects($this->once())
->method('setAppValueInt')
->with('cachebuster', 16);
$this->appConfig
->method('setValueString')
->with('theming', 'MySetting', 'MyValue');
$this->config
->expects($this->once())
->method('setAppValueString')
->with('MySetting', 'MyValue');
$this->appConfig
->expects($this->once())
->method('getAppValueInt')
->with('cachebuster')
->willReturn(15);
->method('getAppValue')
->with('theming', 'cachebuster', '0')
->willReturn('15');
$this->cacheFactory
->expects($this->exactly(2))
->method('createDistributed')
@@ -505,106 +504,97 @@ class ThemingDefaultsTest extends TestCase {
}
public function testUndoName(): void {
$this->appConfig
$this->config
->expects($this->once())
->method('deleteAppValue')
->with('name');
$this->appConfig
->with('theming', 'name');
$this->config
->expects($this->exactly(2))
->method('getAppValue')
->willReturnMap([
['theming', 'cachebuster', '0', '15'],
['theming', 'name', 'Nextcloud', 'Nextcloud'],
]);
$this->config
->expects($this->once())
->method('getAppValueInt')
->with('cachebuster')
->willReturn(15);
$this->appConfig
->expects($this->once())
->method('getAppValueString')
->with('name', 'Nextcloud')
->willReturn('Nextcloud');
$this->appConfig
->expects($this->once())
->method('setAppValueInt')
->with('cachebuster', 16);
->method('setAppValue')
->with('theming', 'cachebuster', 16);
$this->assertSame('Nextcloud', $this->template->undo('name'));
}
public function testUndoBaseUrl(): void {
$this->appConfig
$this->config
->expects($this->once())
->method('deleteAppValue')
->with('url');
$this->appConfig
->with('theming', 'url');
$this->config
->expects($this->exactly(2))
->method('getAppValue')
->willReturnMap([
['theming', 'cachebuster', '0', '15'],
['theming', 'url', $this->defaults->getBaseUrl(), $this->defaults->getBaseUrl()],
]);
$this->config
->expects($this->once())
->method('getAppValueInt')
->with('cachebuster')
->willReturn(15);
$this->appConfig
->expects($this->once())
->method('getAppValueString')
->with('url', $this->defaults->getBaseUrl())
->willReturn($this->defaults->getBaseUrl());
$this->appConfig
->expects($this->once())
->method('setAppValueInt')
->with('cachebuster', 16);
->method('setAppValue')
->with('theming', 'cachebuster', 16);
$this->assertSame($this->defaults->getBaseUrl(), $this->template->undo('url'));
}
public function testUndoSlogan(): void {
$this->appConfig
$this->config
->expects($this->once())
->method('deleteAppValue')
->with('slogan');
$this->appConfig
->with('theming', 'slogan');
$this->config
->expects($this->exactly(2))
->method('getAppValue')
->willReturnMap([
['theming', 'cachebuster', '0', '15'],
['theming', 'slogan', $this->defaults->getSlogan(), $this->defaults->getSlogan()],
]);
$this->config
->expects($this->once())
->method('getAppValueInt')
->with('cachebuster')
->willReturn(15);
$this->appConfig
->expects($this->once())
->method('getAppValueString')
->with('slogan', $this->defaults->getSlogan())
->willReturn($this->defaults->getSlogan());
$this->appConfig
->expects($this->once())
->method('setAppValueInt')
->with('cachebuster', 16);
->method('setAppValue')
->with('theming', 'cachebuster', 16);
$this->assertSame($this->defaults->getSlogan(), $this->template->undo('slogan'));
}
public function testUndoPrimaryColor(): void {
$this->appConfig
$this->config
->expects($this->once())
->method('deleteAppValue')
->with('primary_color');
$this->appConfig
->with('theming', 'primary_color');
$this->config
->expects($this->once())
->method('getAppValueInt')
->with('cachebuster')
->willReturn(15);
$this->appConfig
->method('getAppValue')
->with('theming', 'cachebuster', '0')
->willReturn('15');
$this->config
->expects($this->once())
->method('setAppValueInt')
->with('cachebuster', 16);
->method('setAppValue')
->with('theming', 'cachebuster', 16);
$this->assertSame($this->defaults->getColorPrimary(), $this->template->undo('primary_color'));
}
public function testUndoDefaultAction(): void {
$this->appConfig
$this->config
->expects($this->once())
->method('deleteAppValue')
->with('defaultitem');
$this->appConfig
->with('theming', 'defaultitem');
$this->config
->expects($this->once())
->method('getAppValueInt')
->with('cachebuster', '0')
->willReturn(15);
$this->appConfig
->method('getAppValue')
->with('theming', 'cachebuster', '0')
->willReturn('15');
$this->config
->expects($this->once())
->method('setAppValueInt')
->with('cachebuster', 16);
->method('setAppValue')
->with('theming', 'cachebuster', 16);
$this->assertSame('', $this->template->undo('defaultitem'));
}
@@ -623,16 +613,13 @@ class ThemingDefaultsTest extends TestCase {
->method('getImage')
->with('logo')
->willThrowException(new NotFoundException());
$this->appConfig
->expects($this->once())
->method('getAppValueString')
->with('logoMime', '')
->willReturn('');
$this->appConfig
->expects($this->once())
->method('getAppValueInt')
->with('cachebuster')
->willReturn(0);
$this->config
->expects($this->exactly(2))
->method('getAppValue')
->willReturnMap([
['theming', 'logoMime', '', ''],
['theming', 'cachebuster', '0', '0'],
]);
$this->urlGenerator->expects($this->once())
->method('imagePath')
->with('core', $withName)
@@ -649,16 +636,13 @@ class ThemingDefaultsTest extends TestCase {
}
public function testGetLogoCustom(): void {
$this->appConfig
->expects($this->once())
->method('getAppValueString')
->with('logoMime', '')
->willReturn('image/svg+xml');
$this->appConfig
->expects($this->once())
->method('getAppValueInt')
->with('cachebuster')
->willReturn(0);
$this->config
->expects($this->exactly(2))
->method('getAppValue')
->willReturnMap([
['theming', 'logoMime', '', 'image/svg+xml'],
['theming', 'cachebuster', '0', '0'],
]);
$this->urlGenerator->expects($this->once())
->method('linkToRoute')
->with('theming.Theming.getImage')
@@ -667,10 +651,7 @@ class ThemingDefaultsTest extends TestCase {
}
public function testGetScssVariablesCached(): void {
$this->appConfig->expects($this->any())
->method('getAppValueInt')
->with('cachebuster')
->willReturn(1);
$this->config->expects($this->any())->method('getAppValue')->with('theming', 'cachebuster', '0')->willReturn('1');
$this->cacheFactory->expects($this->once())
->method('createDistributed')
->with('theming-1-')
@@ -680,22 +661,23 @@ class ThemingDefaultsTest extends TestCase {
}
public function testGetScssVariables(): void {
$this->appConfig->expects($this->any())
->method('getAppValueInt')
->with('cachebuster')
->willReturn(0);
$this->appConfig
$this->config
->expects($this->any())
->method('getAppValueString')
->method('getAppValue')
->willReturnMap([
['imprintUrl', '', ''],
['privacyUrl', '', ''],
['logoMime', '', 'jpeg'],
['backgroundMime', '', 'jpeg'],
['logoheaderMime', '', 'jpeg'],
['faviconMime', '', 'jpeg'],
['primary_color', '', false, $this->defaults->getColorPrimary()],
['primary_color', $this->defaults->getColorPrimary(), false, $this->defaults->getColorPrimary()],
['theming', 'cachebuster', '0', '0'],
['theming', 'logoMime', '', 'jpeg'],
['theming', 'backgroundMime', '', 'jpeg'],
['theming', 'logoheaderMime', '', 'jpeg'],
['theming', 'faviconMime', '', 'jpeg'],
]);
$this->appConfig
->expects(self::atLeastOnce())
->method('getValueString')
->willReturnMap([
['theming', 'primary_color', '', false, $this->defaults->getColorPrimary()],
['theming', 'primary_color', $this->defaults->getColorPrimary(), false, $this->defaults->getColorPrimary()],
]);
$this->util->expects($this->any())->method('invertTextColor')->with($this->defaults->getColorPrimary())->willReturn(false);
@@ -734,60 +716,60 @@ class ThemingDefaultsTest extends TestCase {
}
public function testGetDefaultAndroidURL(): void {
$this->appConfig
$this->config
->expects($this->once())
->method('getAppValueString')
->with('AndroidClientUrl', 'https://play.google.com/store/apps/details?id=com.nextcloud.client')
->method('getAppValue')
->with('theming', 'AndroidClientUrl', 'https://play.google.com/store/apps/details?id=com.nextcloud.client')
->willReturn('https://play.google.com/store/apps/details?id=com.nextcloud.client');
$this->assertEquals('https://play.google.com/store/apps/details?id=com.nextcloud.client', $this->template->getAndroidClientUrl());
}
public function testGetCustomAndroidURL(): void {
$this->appConfig
$this->config
->expects($this->once())
->method('getAppValueString')
->with('AndroidClientUrl', 'https://play.google.com/store/apps/details?id=com.nextcloud.client')
->method('getAppValue')
->with('theming', 'AndroidClientUrl', 'https://play.google.com/store/apps/details?id=com.nextcloud.client')
->willReturn('https://play.google.com/store/apps/details?id=com.mycloud.client');
$this->assertEquals('https://play.google.com/store/apps/details?id=com.mycloud.client', $this->template->getAndroidClientUrl());
}
public function testGetDefaultiOSURL(): void {
$this->appConfig
$this->config
->expects($this->once())
->method('getAppValueString')
->with('iOSClientUrl', 'https://geo.itunes.apple.com/us/app/nextcloud/id1125420102?mt=8')
->method('getAppValue')
->with('theming', 'iOSClientUrl', 'https://geo.itunes.apple.com/us/app/nextcloud/id1125420102?mt=8')
->willReturn('https://geo.itunes.apple.com/us/app/nextcloud/id1125420102?mt=8');
$this->assertEquals('https://geo.itunes.apple.com/us/app/nextcloud/id1125420102?mt=8', $this->template->getiOSClientUrl());
}
public function testGetCustomiOSURL(): void {
$this->appConfig
$this->config
->expects($this->once())
->method('getAppValueString')
->with('iOSClientUrl', 'https://geo.itunes.apple.com/us/app/nextcloud/id1125420102?mt=8')
->method('getAppValue')
->with('theming', 'iOSClientUrl', 'https://geo.itunes.apple.com/us/app/nextcloud/id1125420102?mt=8')
->willReturn('https://geo.itunes.apple.com/us/app/nextcloud/id1234567890?mt=8');
$this->assertEquals('https://geo.itunes.apple.com/us/app/nextcloud/id1234567890?mt=8', $this->template->getiOSClientUrl());
}
public function testGetDefaultiTunesAppId(): void {
$this->appConfig
$this->config
->expects($this->once())
->method('getAppValueString')
->with('iTunesAppId', '1125420102')
->method('getAppValue')
->with('theming', 'iTunesAppId', '1125420102')
->willReturn('1125420102');
$this->assertEquals('1125420102', $this->template->getiTunesAppId());
}
public function testGetCustomiTunesAppId(): void {
$this->appConfig
$this->config
->expects($this->once())
->method('getAppValueString')
->with('iTunesAppId', '1125420102')
->method('getAppValue')
->with('theming', 'iTunesAppId', '1125420102')
->willReturn('1234567890');
$this->assertEquals('1234567890', $this->template->getiTunesAppId());
@@ -808,11 +790,11 @@ class ThemingDefaultsTest extends TestCase {
->method('get')
->with('shouldReplaceIcons')
->willReturn(true);
$this->appConfig
$this->config
->expects($this->any())
->method('getAppValueInt')
->with('cachebuster')
->willReturn(0);
->method('getAppValue')
->with('theming', 'cachebuster', '0')
->willReturn('0');
$this->urlGenerator
->expects($this->any())
->method('linkToRoute')
+2 -2
View File
@@ -8,9 +8,9 @@ OC.L10N.register(
"Use backup code" : "Gebruik rugsteunkode",
"Two factor backup codes" : "Tweefaktorrugsteunkodes",
"An error occurred while generating your backup codes" : "n fout het voorgekom tydens generering van u rugsteunkodes",
"Regenerate backup codes" : "Hergenereer rugsteunkodes",
"Print backup codes" : "Druk rugsteunkodes",
"Save backup codes" : "Bewaar rugsteunkodes",
"Print backup codes" : "Druk rugsteunkodes",
"Regenerate backup codes" : "Hergenereer rugsteunkodes",
"If you regenerate backup codes, you automatically invalidate old codes." : "Indien u rugsteunkodes hergenereer maak u outomaties die ou kodes ongeldig.",
"Submit" : "Dien in"
},
+2 -2
View File
@@ -6,9 +6,9 @@
"Use backup code" : "Gebruik rugsteunkode",
"Two factor backup codes" : "Tweefaktorrugsteunkodes",
"An error occurred while generating your backup codes" : "n fout het voorgekom tydens generering van u rugsteunkodes",
"Regenerate backup codes" : "Hergenereer rugsteunkodes",
"Print backup codes" : "Druk rugsteunkodes",
"Save backup codes" : "Bewaar rugsteunkodes",
"Print backup codes" : "Druk rugsteunkodes",
"Regenerate backup codes" : "Hergenereer rugsteunkodes",
"If you regenerate backup codes, you automatically invalidate old codes." : "Indien u rugsteunkodes hergenereer maak u outomaties die ou kodes ongeldig.",
"Submit" : "Dien in"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
+2 -2
View File
@@ -12,9 +12,9 @@ OC.L10N.register(
"An error occurred while generating your backup codes" : "حدث خطأ عند توليد أكوادك الاحتياطية",
"Backup codes have been generated. {used} of {total} codes have been used." : "تمّ توليد الأكواد الاحتياطية. {used} من {total} تمّ استخدامها.",
"These are your backup codes. Please save and/or print them as you will not be able to read the codes again later." : "هذه هي الرموز الاحتياطية الخاصة بك. يرجى حفظها و/أو طباعتها لأنك لن تتمكن من قراءة الرموز لاحقًا.",
"Regenerate backup codes" : "إعادة توليد رموز الإسترجاع الإحتياطية",
"Print backup codes" : "طباعة الرموز الإحتياطية",
"Save backup codes" : "الإحتفاظ بالرموز الإحتياطية",
"Print backup codes" : "طباعة الرموز الإحتياطية",
"Regenerate backup codes" : "إعادة توليد رموز الإسترجاع الإحتياطية",
"If you regenerate backup codes, you automatically invalidate old codes." : "عندما تقوم بتوليد أكواد احتياطية جديدة، فإن الأكواد القديمة تفقد صلاحيتها تلقائيّتاً.",
"{name} backup codes" : "{name} أكواد احتياطية",
"Use one of the backup codes you saved when setting up two-factor authentication." : "استخدم واحداً من الأكواد الاحتياطية التي سبق و أن خزنتها عند تجهيز إعدادات التحقق ثنائي العوامل من الهويّة.",
+2 -2
View File
@@ -10,9 +10,9 @@
"An error occurred while generating your backup codes" : "حدث خطأ عند توليد أكوادك الاحتياطية",
"Backup codes have been generated. {used} of {total} codes have been used." : "تمّ توليد الأكواد الاحتياطية. {used} من {total} تمّ استخدامها.",
"These are your backup codes. Please save and/or print them as you will not be able to read the codes again later." : "هذه هي الرموز الاحتياطية الخاصة بك. يرجى حفظها و/أو طباعتها لأنك لن تتمكن من قراءة الرموز لاحقًا.",
"Regenerate backup codes" : "إعادة توليد رموز الإسترجاع الإحتياطية",
"Print backup codes" : "طباعة الرموز الإحتياطية",
"Save backup codes" : "الإحتفاظ بالرموز الإحتياطية",
"Print backup codes" : "طباعة الرموز الإحتياطية",
"Regenerate backup codes" : "إعادة توليد رموز الإسترجاع الإحتياطية",
"If you regenerate backup codes, you automatically invalidate old codes." : "عندما تقوم بتوليد أكواد احتياطية جديدة، فإن الأكواد القديمة تفقد صلاحيتها تلقائيّتاً.",
"{name} backup codes" : "{name} أكواد احتياطية",
"Use one of the backup codes you saved when setting up two-factor authentication." : "استخدم واحداً من الأكواد الاحتياطية التي سبق و أن خزنتها عند تجهيز إعدادات التحقق ثنائي العوامل من الهويّة.",
+2 -2
View File
@@ -11,9 +11,9 @@ OC.L10N.register(
"A two-factor auth backup codes provider" : "Un fornidor de códigos de recuperación pa l'autenticación en dos pasos",
"An error occurred while generating your backup codes" : "Prodúxose un error mentanto se xeneraben los códigos de recuperación",
"Backup codes have been generated. {used} of {total} codes have been used." : "Xeneráronse los códigos de recuperación y usáronse {used} de {total} códigos.",
"Regenerate backup codes" : "Volver xenerar los códigos de recuperación",
"Print backup codes" : "Imprentar los códigos de recuperación",
"Save backup codes" : "Guardar los códigos de recuperación",
"Print backup codes" : "Imprentar los códigos de recuperación",
"Regenerate backup codes" : "Volver xenerar los códigos de recuperación",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si vuelves xenerar los códigos de recuperación, anules automáticamente los antiguos.",
"{name} backup codes" : "Códigos de recuperación de: {name}",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Usa unu de los códigos de recuperación que guardesti cuando configuresti l'autenticación en dos pasos.",
+2 -2
View File
@@ -9,9 +9,9 @@
"A two-factor auth backup codes provider" : "Un fornidor de códigos de recuperación pa l'autenticación en dos pasos",
"An error occurred while generating your backup codes" : "Prodúxose un error mentanto se xeneraben los códigos de recuperación",
"Backup codes have been generated. {used} of {total} codes have been used." : "Xeneráronse los códigos de recuperación y usáronse {used} de {total} códigos.",
"Regenerate backup codes" : "Volver xenerar los códigos de recuperación",
"Print backup codes" : "Imprentar los códigos de recuperación",
"Save backup codes" : "Guardar los códigos de recuperación",
"Print backup codes" : "Imprentar los códigos de recuperación",
"Regenerate backup codes" : "Volver xenerar los códigos de recuperación",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si vuelves xenerar los códigos de recuperación, anules automáticamente los antiguos.",
"{name} backup codes" : "Códigos de recuperación de: {name}",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Usa unu de los códigos de recuperación que guardesti cuando configuresti l'autenticación en dos pasos.",
+2 -2
View File
@@ -11,9 +11,9 @@ OC.L10N.register(
"A two-factor auth backup codes provider" : "Доставчик на двустепенни резервни кодове за удостоверяване",
"An error occurred while generating your backup codes" : "Възникна грешка при генерирането на резервния код",
"Backup codes have been generated. {used} of {total} codes have been used." : "Резервен код е бил генериран. Използвани са {used} от {total} кода.",
"Regenerate backup codes" : "Регенериране на резервния код",
"Print backup codes" : "Принтиране на резервния код",
"Save backup codes" : "Записване на резервния код",
"Print backup codes" : "Принтиране на резервния код",
"Regenerate backup codes" : "Регенериране на резервния код",
"If you regenerate backup codes, you automatically invalidate old codes." : "При регенерирането на резервния код, стария код автоматично бива анулиран.",
"{name} backup codes" : "{name} резервни кодове",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Използвайте един от резервните кодове, които сте запазили, когато настройвате двустепенно удостоверяване.",
+2 -2
View File
@@ -9,9 +9,9 @@
"A two-factor auth backup codes provider" : "Доставчик на двустепенни резервни кодове за удостоверяване",
"An error occurred while generating your backup codes" : "Възникна грешка при генерирането на резервния код",
"Backup codes have been generated. {used} of {total} codes have been used." : "Резервен код е бил генериран. Използвани са {used} от {total} кода.",
"Regenerate backup codes" : "Регенериране на резервния код",
"Print backup codes" : "Принтиране на резервния код",
"Save backup codes" : "Записване на резервния код",
"Print backup codes" : "Принтиране на резервния код",
"Regenerate backup codes" : "Регенериране на резервния код",
"If you regenerate backup codes, you automatically invalidate old codes." : "При регенерирането на резервния код, стария код автоматично бива анулиран.",
"{name} backup codes" : "{name} резервни кодове",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Използвайте един от резервните кодове, които сте запазили, когато настройвате двустепенно удостоверяване.",
+2 -2
View File
@@ -12,9 +12,9 @@ OC.L10N.register(
"An error occurred while generating your backup codes" : "S'ha produït un error en generar els codis de reserva",
"Backup codes have been generated. {used} of {total} codes have been used." : "S'han generat els codis de reserva. Heu utilitzat {used} de {total} codis.",
"These are your backup codes. Please save and/or print them as you will not be able to read the codes again later." : "Aquests són els vostres codis de reserva. Deseu-los o imprimiu-los, ja que no podreu tornar-los a consultar més tard.",
"Regenerate backup codes" : "Torna a generar els codis de reserva",
"Print backup codes" : "Imprimeix els codis de reserva",
"Save backup codes" : "Desa els codis de reserva",
"Print backup codes" : "Imprimeix els codis de reserva",
"Regenerate backup codes" : "Torna a generar els codis de reserva",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si torneu a generar els codis de reserva, anul·lareu automàticament els codis antics.",
"{name} backup codes" : "Codis de seguretat per a {name}",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Utilitzeu un dels codis de reserva que vau desar en configurar l'autenticació de dos factors.",
+2 -2
View File
@@ -10,9 +10,9 @@
"An error occurred while generating your backup codes" : "S'ha produït un error en generar els codis de reserva",
"Backup codes have been generated. {used} of {total} codes have been used." : "S'han generat els codis de reserva. Heu utilitzat {used} de {total} codis.",
"These are your backup codes. Please save and/or print them as you will not be able to read the codes again later." : "Aquests són els vostres codis de reserva. Deseu-los o imprimiu-los, ja que no podreu tornar-los a consultar més tard.",
"Regenerate backup codes" : "Torna a generar els codis de reserva",
"Print backup codes" : "Imprimeix els codis de reserva",
"Save backup codes" : "Desa els codis de reserva",
"Print backup codes" : "Imprimeix els codis de reserva",
"Regenerate backup codes" : "Torna a generar els codis de reserva",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si torneu a generar els codis de reserva, anul·lareu automàticament els codis antics.",
"{name} backup codes" : "Codis de seguretat per a {name}",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Utilitzeu un dels codis de reserva que vau desar en configurar l'autenticació de dos factors.",
+2 -2
View File
@@ -12,9 +12,9 @@ OC.L10N.register(
"An error occurred while generating your backup codes" : "Při pokusu o vytvoření záložních kódů nastala chyba.",
"Backup codes have been generated. {used} of {total} codes have been used." : "Záložní kódy byly vytvořeny. Využito {used} z {total} kódů.",
"These are your backup codes. Please save and/or print them as you will not be able to read the codes again later." : "Zde jsou vaše záložní kódy. Kódy si uložte a/nebo vytiskněte, protože už je nebude možné zobrazit znovu.",
"Regenerate backup codes" : "Vytvořit nové záložní kódy",
"Print backup codes" : "Vytisknout záložní kódy",
"Save backup codes" : "Uložit záložní kódy",
"Print backup codes" : "Vytisknout záložní kódy",
"Regenerate backup codes" : "Vytvořit nové záložní kódy",
"If you regenerate backup codes, you automatically invalidate old codes." : "Pokud necháte vytvořit nové záložní kódy, staré budou automaticky zneplatněny.",
"{name} backup codes" : "{name} záložní kódy",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Použijte jeden ze svých záložních kódů které jste si uložili při nastavování dvoufázového ověřování.",
+2 -2
View File
@@ -10,9 +10,9 @@
"An error occurred while generating your backup codes" : "Při pokusu o vytvoření záložních kódů nastala chyba.",
"Backup codes have been generated. {used} of {total} codes have been used." : "Záložní kódy byly vytvořeny. Využito {used} z {total} kódů.",
"These are your backup codes. Please save and/or print them as you will not be able to read the codes again later." : "Zde jsou vaše záložní kódy. Kódy si uložte a/nebo vytiskněte, protože už je nebude možné zobrazit znovu.",
"Regenerate backup codes" : "Vytvořit nové záložní kódy",
"Print backup codes" : "Vytisknout záložní kódy",
"Save backup codes" : "Uložit záložní kódy",
"Print backup codes" : "Vytisknout záložní kódy",
"Regenerate backup codes" : "Vytvořit nové záložní kódy",
"If you regenerate backup codes, you automatically invalidate old codes." : "Pokud necháte vytvořit nové záložní kódy, staré budou automaticky zneplatněny.",
"{name} backup codes" : "{name} záložní kódy",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Použijte jeden ze svých záložních kódů které jste si uložili při nastavování dvoufázového ověřování.",
+2 -2
View File
@@ -12,9 +12,9 @@ OC.L10N.register(
"An error occurred while generating your backup codes" : "Der opstod en fejl under genereringen af dine backup-koder",
"Backup codes have been generated. {used} of {total} codes have been used." : "Sikkerhedskopieringskoder er blevet genereret. {used} af {total} koder er blevet brugt.",
"These are your backup codes. Please save and/or print them as you will not be able to read the codes again later." : "Dette er dine backup-koder. Gem og/eller udskriv dem, da du ikke vil kunne se koderne igen senere.",
"Regenerate backup codes" : "Regenerer backup-koder",
"Print backup codes" : "Print backup-koder",
"Save backup codes" : "Gem backup-koder",
"Print backup codes" : "Print backup-koder",
"Regenerate backup codes" : "Regenerer backup-koder",
"If you regenerate backup codes, you automatically invalidate old codes." : "Hvis du genererer nye backupkoder, så vil de gamle koder blive ubrugelige.",
"{name} backup codes" : "{name} backup-koder",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Brug en af de backupkoder, du har gemt, når du konfigurerer to-faktor-godkendelse.",
+2 -2
View File
@@ -10,9 +10,9 @@
"An error occurred while generating your backup codes" : "Der opstod en fejl under genereringen af dine backup-koder",
"Backup codes have been generated. {used} of {total} codes have been used." : "Sikkerhedskopieringskoder er blevet genereret. {used} af {total} koder er blevet brugt.",
"These are your backup codes. Please save and/or print them as you will not be able to read the codes again later." : "Dette er dine backup-koder. Gem og/eller udskriv dem, da du ikke vil kunne se koderne igen senere.",
"Regenerate backup codes" : "Regenerer backup-koder",
"Print backup codes" : "Print backup-koder",
"Save backup codes" : "Gem backup-koder",
"Print backup codes" : "Print backup-koder",
"Regenerate backup codes" : "Regenerer backup-koder",
"If you regenerate backup codes, you automatically invalidate old codes." : "Hvis du genererer nye backupkoder, så vil de gamle koder blive ubrugelige.",
"{name} backup codes" : "{name} backup-koder",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Brug en af de backupkoder, du har gemt, når du konfigurerer to-faktor-godkendelse.",
+2 -4
View File
@@ -12,13 +12,11 @@ OC.L10N.register(
"An error occurred while generating your backup codes" : "Es ist ein Fehler beim Erstellen deiner Backup-Codes aufgetreten",
"Backup codes have been generated. {used} of {total} codes have been used." : "Backup-Codes wurden erzeugt. {used} von {total} Codes wurden benutzt.",
"These are your backup codes. Please save and/or print them as you will not be able to read the codes again later." : "Dies sind deine Backup-Codes. Bitte speichere und/oder drucke diese aus, da du die Codes später nicht mehr abrufen kannst.",
"List of backup codes" : "Liste der Backup-Codes",
"Regenerate backup codes" : "Backup-Codes erneuern",
"Print backup codes" : "Backup-Codes drucken",
"Save backup codes" : "Backup-Codes speichern",
"Print backup codes" : "Backup-Codes drucken",
"Regenerate backup codes" : "Backup-Codes erneuern",
"If you regenerate backup codes, you automatically invalidate old codes." : "Wenn du Backup-Codes erneuerst, werden alte automatisch ungültig.",
"{name} backup codes" : "{name} Backup-Codes",
"Unable to open a new tab for printing" : "Ein neuer Tab zum Drucken kann nicht geöffnet werden",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Verwende einen der Backup-Codes, den du bei der Einrichtung der Zwei-Faktor-Authentifizierung gespeichert hast.",
"Submit" : "Übermitteln"
},
+2 -4
View File
@@ -10,13 +10,11 @@
"An error occurred while generating your backup codes" : "Es ist ein Fehler beim Erstellen deiner Backup-Codes aufgetreten",
"Backup codes have been generated. {used} of {total} codes have been used." : "Backup-Codes wurden erzeugt. {used} von {total} Codes wurden benutzt.",
"These are your backup codes. Please save and/or print them as you will not be able to read the codes again later." : "Dies sind deine Backup-Codes. Bitte speichere und/oder drucke diese aus, da du die Codes später nicht mehr abrufen kannst.",
"List of backup codes" : "Liste der Backup-Codes",
"Regenerate backup codes" : "Backup-Codes erneuern",
"Print backup codes" : "Backup-Codes drucken",
"Save backup codes" : "Backup-Codes speichern",
"Print backup codes" : "Backup-Codes drucken",
"Regenerate backup codes" : "Backup-Codes erneuern",
"If you regenerate backup codes, you automatically invalidate old codes." : "Wenn du Backup-Codes erneuerst, werden alte automatisch ungültig.",
"{name} backup codes" : "{name} Backup-Codes",
"Unable to open a new tab for printing" : "Ein neuer Tab zum Drucken kann nicht geöffnet werden",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Verwende einen der Backup-Codes, den du bei der Einrichtung der Zwei-Faktor-Authentifizierung gespeichert hast.",
"Submit" : "Übermitteln"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
+2 -4
View File
@@ -12,13 +12,11 @@ OC.L10N.register(
"An error occurred while generating your backup codes" : "Es ist ein Fehler beim Erstellen Ihrer Backup-Codes aufgetreten",
"Backup codes have been generated. {used} of {total} codes have been used." : "Backup-Codes wurden erzeugt. {used} von {total} Codes wurden benutzt.",
"These are your backup codes. Please save and/or print them as you will not be able to read the codes again later." : "Dies sind Ihre Backup-Codes. Bitte speichern und/oder drucken Sie diese aus, da Sie die Codes später nicht mehr abrufen können.",
"List of backup codes" : "Liste der Backup-Codes",
"Regenerate backup codes" : "Backup-Codes erneuern",
"Print backup codes" : "Backup-Codes drucken",
"Save backup codes" : "Backup-Codes speichern",
"Print backup codes" : "Backup-Codes drucken",
"Regenerate backup codes" : "Backup-Codes erneuern",
"If you regenerate backup codes, you automatically invalidate old codes." : "Wenn Sie die Backup-Codes erneuern, werden die alten Codes automatisch ungültig.",
"{name} backup codes" : "{name} Backup-Codes",
"Unable to open a new tab for printing" : "Ein neuer Tab zum Drucken kann nicht geöffnet werden",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Verwenden Sie einen der Backup-Codes, den Sie bei der Einrichtung der Zwei-Faktor-Authentifizierung gespeichert haben.",
"Submit" : "Übermitteln"
},
+2 -4
View File
@@ -10,13 +10,11 @@
"An error occurred while generating your backup codes" : "Es ist ein Fehler beim Erstellen Ihrer Backup-Codes aufgetreten",
"Backup codes have been generated. {used} of {total} codes have been used." : "Backup-Codes wurden erzeugt. {used} von {total} Codes wurden benutzt.",
"These are your backup codes. Please save and/or print them as you will not be able to read the codes again later." : "Dies sind Ihre Backup-Codes. Bitte speichern und/oder drucken Sie diese aus, da Sie die Codes später nicht mehr abrufen können.",
"List of backup codes" : "Liste der Backup-Codes",
"Regenerate backup codes" : "Backup-Codes erneuern",
"Print backup codes" : "Backup-Codes drucken",
"Save backup codes" : "Backup-Codes speichern",
"Print backup codes" : "Backup-Codes drucken",
"Regenerate backup codes" : "Backup-Codes erneuern",
"If you regenerate backup codes, you automatically invalidate old codes." : "Wenn Sie die Backup-Codes erneuern, werden die alten Codes automatisch ungültig.",
"{name} backup codes" : "{name} Backup-Codes",
"Unable to open a new tab for printing" : "Ein neuer Tab zum Drucken kann nicht geöffnet werden",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Verwenden Sie einen der Backup-Codes, den Sie bei der Einrichtung der Zwei-Faktor-Authentifizierung gespeichert haben.",
"Submit" : "Übermitteln"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
+2 -2
View File
@@ -12,9 +12,9 @@ OC.L10N.register(
"An error occurred while generating your backup codes" : "Ένα σφάλμα προέκυψε κατά τη δημιουργία των εφεδρικών κωδικών.",
"Backup codes have been generated. {used} of {total} codes have been used." : "Δημιουργήθηκαν εφεδρικοί κωδικοί. Χρησιμοποιήθηκαν {used} από {total} κωδικοί.",
"These are your backup codes. Please save and/or print them as you will not be able to read the codes again later." : "Αυτοί είναι οι εφεδρικοί σας κωδικοί. Παρακαλώ αποθηκεύστε και/ή εκτυπώστε τους καθώς δεν θα μπορείτε να διαβάσετε τους κωδικούς ξανά αργότερα.",
"Regenerate backup codes" : "Δημιουργία εφεδρικών κωδικών",
"Print backup codes" : "Εκτύπωση εφεδρικών κωδικών",
"Save backup codes" : "Αποθήκευση εφεδρικών κωδικών",
"Print backup codes" : "Εκτύπωση εφεδρικών κωδικών",
"Regenerate backup codes" : "Δημιουργία εφεδρικών κωδικών",
"If you regenerate backup codes, you automatically invalidate old codes." : "Εάν αναδημιουργήσετε εφεδρικούς κωδικούς, οι παλιοί κωδικοί ακυρώνονται αυτόματα.",
"{name} backup codes" : "{name} εφεδρικοί κωδικοί",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Χρησιμοποιήστε έναν από τους εφεδρικούς κωδικούς που αποθηκεύσατε όταν ρυθμίζετε τον έλεγχο ταυτότητας δύο παραγόντων.",
+2 -2
View File
@@ -10,9 +10,9 @@
"An error occurred while generating your backup codes" : "Ένα σφάλμα προέκυψε κατά τη δημιουργία των εφεδρικών κωδικών.",
"Backup codes have been generated. {used} of {total} codes have been used." : "Δημιουργήθηκαν εφεδρικοί κωδικοί. Χρησιμοποιήθηκαν {used} από {total} κωδικοί.",
"These are your backup codes. Please save and/or print them as you will not be able to read the codes again later." : "Αυτοί είναι οι εφεδρικοί σας κωδικοί. Παρακαλώ αποθηκεύστε και/ή εκτυπώστε τους καθώς δεν θα μπορείτε να διαβάσετε τους κωδικούς ξανά αργότερα.",
"Regenerate backup codes" : "Δημιουργία εφεδρικών κωδικών",
"Print backup codes" : "Εκτύπωση εφεδρικών κωδικών",
"Save backup codes" : "Αποθήκευση εφεδρικών κωδικών",
"Print backup codes" : "Εκτύπωση εφεδρικών κωδικών",
"Regenerate backup codes" : "Δημιουργία εφεδρικών κωδικών",
"If you regenerate backup codes, you automatically invalidate old codes." : "Εάν αναδημιουργήσετε εφεδρικούς κωδικούς, οι παλιοί κωδικοί ακυρώνονται αυτόματα.",
"{name} backup codes" : "{name} εφεδρικοί κωδικοί",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Χρησιμοποιήστε έναν από τους εφεδρικούς κωδικούς που αποθηκεύσατε όταν ρυθμίζετε τον έλεγχο ταυτότητας δύο παραγόντων.",
+2 -4
View File
@@ -12,13 +12,11 @@ OC.L10N.register(
"An error occurred while generating your backup codes" : "An error occurred while generating your backup codes",
"Backup codes have been generated. {used} of {total} codes have been used." : "Backup codes have been generated. {used} of {total} codes have been used.",
"These are your backup codes. Please save and/or print them as you will not be able to read the codes again later." : "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later.",
"List of backup codes" : "List of backup codes",
"Regenerate backup codes" : "Regenerate backup codes",
"Print backup codes" : "Print backup codes",
"Save backup codes" : "Save backup codes",
"Print backup codes" : "Print backup codes",
"Regenerate backup codes" : "Regenerate backup codes",
"If you regenerate backup codes, you automatically invalidate old codes." : "If you regenerate backup codes, you automatically invalidate old codes.",
"{name} backup codes" : "{name} backup codes",
"Unable to open a new tab for printing" : "Unable to open a new tab for printing",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Use one of the backup codes you saved when setting up two-factor authentication.",
"Submit" : "Submit"
},
+2 -4
View File
@@ -10,13 +10,11 @@
"An error occurred while generating your backup codes" : "An error occurred while generating your backup codes",
"Backup codes have been generated. {used} of {total} codes have been used." : "Backup codes have been generated. {used} of {total} codes have been used.",
"These are your backup codes. Please save and/or print them as you will not be able to read the codes again later." : "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later.",
"List of backup codes" : "List of backup codes",
"Regenerate backup codes" : "Regenerate backup codes",
"Print backup codes" : "Print backup codes",
"Save backup codes" : "Save backup codes",
"Print backup codes" : "Print backup codes",
"Regenerate backup codes" : "Regenerate backup codes",
"If you regenerate backup codes, you automatically invalidate old codes." : "If you regenerate backup codes, you automatically invalidate old codes.",
"{name} backup codes" : "{name} backup codes",
"Unable to open a new tab for printing" : "Unable to open a new tab for printing",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Use one of the backup codes you saved when setting up two-factor authentication.",
"Submit" : "Submit"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
+2 -2
View File
@@ -11,9 +11,9 @@ OC.L10N.register(
"A two-factor auth backup codes provider" : "Provizanto de rezervkodoj por dufaza aŭtentigo",
"An error occurred while generating your backup codes" : "Eraro okazis dum generado de viaj rezervkodoj",
"Backup codes have been generated. {used} of {total} codes have been used." : "Rezervkodoj generiĝis. {used} kodoj el {total} uziĝis.",
"Regenerate backup codes" : "Regeneri rezervkodojn",
"Print backup codes" : "Presi la rezervkodojn",
"Save backup codes" : "Konservi la rezervkodojn",
"Print backup codes" : "Presi la rezervkodojn",
"Regenerate backup codes" : "Regeneri rezervkodojn",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si vi regeneras rezervkodojn, vi aŭtomate senvalidigas la antaŭajn.",
"{name} backup codes" : "{name} rezervkodoj",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Uzu unu el viaj rezervkodoj, kiujn vi konservis dum agordo de dufaza aŭtentigo.",
+2 -2
View File
@@ -9,9 +9,9 @@
"A two-factor auth backup codes provider" : "Provizanto de rezervkodoj por dufaza aŭtentigo",
"An error occurred while generating your backup codes" : "Eraro okazis dum generado de viaj rezervkodoj",
"Backup codes have been generated. {used} of {total} codes have been used." : "Rezervkodoj generiĝis. {used} kodoj el {total} uziĝis.",
"Regenerate backup codes" : "Regeneri rezervkodojn",
"Print backup codes" : "Presi la rezervkodojn",
"Save backup codes" : "Konservi la rezervkodojn",
"Print backup codes" : "Presi la rezervkodojn",
"Regenerate backup codes" : "Regeneri rezervkodojn",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si vi regeneras rezervkodojn, vi aŭtomate senvalidigas la antaŭajn.",
"{name} backup codes" : "{name} rezervkodoj",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Uzu unu el viaj rezervkodoj, kiujn vi konservis dum agordo de dufaza aŭtentigo.",
+2 -2
View File
@@ -12,9 +12,9 @@ OC.L10N.register(
"An error occurred while generating your backup codes" : "Ha ocurrido un error mientras se generaban sus códigos de respaldo.",
"Backup codes have been generated. {used} of {total} codes have been used." : "Se han generado códigos de respaldo. Se han usado {used} de {total} códigos.",
"These are your backup codes. Please save and/or print them as you will not be able to read the codes again later." : "Estos son sus códigos de respaldo. Por favor, guárdelos y/o imprima los mismos, ya que no podrá volver a verlos más tarde.",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Save backup codes" : "Guardar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regenera los códigos de respaldo, automáticamente invalidará los antiguos.",
"{name} backup codes" : "Códigos de respaldo {name}",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Use uno de los códigos de respaldo que guardó cuando activó la autenticación de dos factores.",
+2 -2
View File
@@ -10,9 +10,9 @@
"An error occurred while generating your backup codes" : "Ha ocurrido un error mientras se generaban sus códigos de respaldo.",
"Backup codes have been generated. {used} of {total} codes have been used." : "Se han generado códigos de respaldo. Se han usado {used} de {total} códigos.",
"These are your backup codes. Please save and/or print them as you will not be able to read the codes again later." : "Estos son sus códigos de respaldo. Por favor, guárdelos y/o imprima los mismos, ya que no podrá volver a verlos más tarde.",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Save backup codes" : "Guardar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regenera los códigos de respaldo, automáticamente invalidará los antiguos.",
"{name} backup codes" : "Códigos de respaldo {name}",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Use uno de los códigos de respaldo que guardó cuando activó la autenticación de dos factores.",
+2 -2
View File
@@ -7,9 +7,9 @@ OC.L10N.register(
"Backup code" : "Código de respaldo",
"Use backup code" : "Usa el código de respaldo",
"An error occurred while generating your backup codes" : "Se presentó un error al generar tus códigos de respaldo. ",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Save backup codes" : "Guardar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
"Submit" : "Enviar"
},
+2 -2
View File
@@ -5,9 +5,9 @@
"Backup code" : "Código de respaldo",
"Use backup code" : "Usa el código de respaldo",
"An error occurred while generating your backup codes" : "Se presentó un error al generar tus códigos de respaldo. ",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Save backup codes" : "Guardar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
"Submit" : "Enviar"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
+2 -2
View File
@@ -8,9 +8,9 @@ OC.L10N.register(
"Use backup code" : "Use el código de respaldo",
"Two factor backup codes" : "Códigos de respaldo de dos factores",
"An error occurred while generating your backup codes" : "Se presentó un error al generar sus códigos de respaldo. ",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Save backup codes" : "Guardar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si usted regenera los códigos de respaldo, automáticamente invalidará los anteriores. ",
"Submit" : "Enviar"
},
+2 -2
View File
@@ -6,9 +6,9 @@
"Use backup code" : "Use el código de respaldo",
"Two factor backup codes" : "Códigos de respaldo de dos factores",
"An error occurred while generating your backup codes" : "Se presentó un error al generar sus códigos de respaldo. ",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Save backup codes" : "Guardar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si usted regenera los códigos de respaldo, automáticamente invalidará los anteriores. ",
"Submit" : "Enviar"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
+2 -2
View File
@@ -8,9 +8,9 @@ OC.L10N.register(
"Use backup code" : "Usa el código de respaldo",
"Two factor backup codes" : "Códigos de respaldo de dos factores",
"An error occurred while generating your backup codes" : "Se presentó un error al generar tus códigos de respaldo. ",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Save backup codes" : "Guardar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
"Submit" : "Enviar"
},
+2 -2
View File
@@ -6,9 +6,9 @@
"Use backup code" : "Usa el código de respaldo",
"Two factor backup codes" : "Códigos de respaldo de dos factores",
"An error occurred while generating your backup codes" : "Se presentó un error al generar tus códigos de respaldo. ",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Save backup codes" : "Guardar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
"Submit" : "Enviar"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
+2 -2
View File
@@ -8,9 +8,9 @@ OC.L10N.register(
"Use backup code" : "Usa el código de respaldo",
"Two factor backup codes" : "Códigos de respaldo de dos factores",
"An error occurred while generating your backup codes" : "Se presentó un error al generar tus códigos de respaldo. ",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Save backup codes" : "Guardar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
"Submit" : "Enviar"
},
+2 -2
View File
@@ -6,9 +6,9 @@
"Use backup code" : "Usa el código de respaldo",
"Two factor backup codes" : "Códigos de respaldo de dos factores",
"An error occurred while generating your backup codes" : "Se presentó un error al generar tus códigos de respaldo. ",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Save backup codes" : "Guardar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
"Submit" : "Enviar"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
+2 -2
View File
@@ -8,9 +8,9 @@ OC.L10N.register(
"Use backup code" : "Usa el código de respaldo",
"Two factor backup codes" : "Códigos de respaldo de dos factores",
"An error occurred while generating your backup codes" : "Se presentó un error al generar tus códigos de respaldo. ",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Save backup codes" : "Guardar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
"Submit" : "Enviar"
},
+2 -2
View File
@@ -6,9 +6,9 @@
"Use backup code" : "Usa el código de respaldo",
"Two factor backup codes" : "Códigos de respaldo de dos factores",
"An error occurred while generating your backup codes" : "Se presentó un error al generar tus códigos de respaldo. ",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Save backup codes" : "Guardar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
"Submit" : "Enviar"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
+2 -2
View File
@@ -8,9 +8,9 @@ OC.L10N.register(
"Use backup code" : "Usa el código de respaldo",
"Two factor backup codes" : "Códigos de respaldo de dos factores",
"An error occurred while generating your backup codes" : "Se presentó un error al generar tus códigos de respaldo. ",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Save backup codes" : "Guardar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
"Submit" : "Enviar"
},
+2 -2
View File
@@ -6,9 +6,9 @@
"Use backup code" : "Usa el código de respaldo",
"Two factor backup codes" : "Códigos de respaldo de dos factores",
"An error occurred while generating your backup codes" : "Se presentó un error al generar tus códigos de respaldo. ",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Save backup codes" : "Guardar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
"Submit" : "Enviar"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
+2 -2
View File
@@ -11,9 +11,9 @@ OC.L10N.register(
"A two-factor auth backup codes provider" : "Un proveedor de códigos de respaldo para autenticación de dos factores.",
"An error occurred while generating your backup codes" : "Se presentó un error al generar tus códigos de respaldo. ",
"Backup codes have been generated. {used} of {total} codes have been used." : "Se han generado códigos de respaldo. Se han utilizado {used} de {total} códigos.",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Save backup codes" : "Guardar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
"{name} backup codes" : "Códigos de respaldo de {name}",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Utiliza uno de los códigos de respaldo que guardaste al configurar la autenticación de dos factores.",
+2 -2
View File
@@ -9,9 +9,9 @@
"A two-factor auth backup codes provider" : "Un proveedor de códigos de respaldo para autenticación de dos factores.",
"An error occurred while generating your backup codes" : "Se presentó un error al generar tus códigos de respaldo. ",
"Backup codes have been generated. {used} of {total} codes have been used." : "Se han generado códigos de respaldo. Se han utilizado {used} de {total} códigos.",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Save backup codes" : "Guardar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
"{name} backup codes" : "Códigos de respaldo de {name}",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Utiliza uno de los códigos de respaldo que guardaste al configurar la autenticación de dos factores.",
+2 -2
View File
@@ -8,9 +8,9 @@ OC.L10N.register(
"Use backup code" : "Usa el código de respaldo",
"Two factor backup codes" : "Códigos de respaldo de dos factores",
"An error occurred while generating your backup codes" : "Se presentó un error al generar tus códigos de respaldo. ",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Save backup codes" : "Guardar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
"Submit" : "Enviar"
},
+2 -2
View File
@@ -6,9 +6,9 @@
"Use backup code" : "Usa el código de respaldo",
"Two factor backup codes" : "Códigos de respaldo de dos factores",
"An error occurred while generating your backup codes" : "Se presentó un error al generar tus códigos de respaldo. ",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Save backup codes" : "Guardar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
"Submit" : "Enviar"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
+2 -2
View File
@@ -7,9 +7,9 @@ OC.L10N.register(
"Backup code" : "Código de respaldo",
"Use backup code" : "Usa el código de respaldo",
"An error occurred while generating your backup codes" : "Se presentó un error al generar tus códigos de respaldo. ",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Save backup codes" : "Guardar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
"Submit" : "Enviar"
},
+2 -2
View File
@@ -5,9 +5,9 @@
"Backup code" : "Código de respaldo",
"Use backup code" : "Usa el código de respaldo",
"An error occurred while generating your backup codes" : "Se presentó un error al generar tus códigos de respaldo. ",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Save backup codes" : "Guardar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
"Submit" : "Enviar"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
+2 -2
View File
@@ -12,9 +12,9 @@ OC.L10N.register(
"An error occurred while generating your backup codes" : "Se presentó un error al generar tus códigos de respaldo. ",
"Backup codes have been generated. {used} of {total} codes have been used." : "Se generaron los códigos de respaldo. Se han utilizado {used} de {total} códigos.",
"These are your backup codes. Please save and/or print them as you will not be able to read the codes again later." : "Estos son sus códigos de respaldo. Por favor guárdelos y/o imprímalos ya que no podrá leerlos después.",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Save backup codes" : "Guardar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
"{name} backup codes" : "Códigos de respaldo {name}",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Utilice uno de los códigos de respaldo que guardó al configurar la autentificación de dos factores.",
+2 -2
View File
@@ -10,9 +10,9 @@
"An error occurred while generating your backup codes" : "Se presentó un error al generar tus códigos de respaldo. ",
"Backup codes have been generated. {used} of {total} codes have been used." : "Se generaron los códigos de respaldo. Se han utilizado {used} de {total} códigos.",
"These are your backup codes. Please save and/or print them as you will not be able to read the codes again later." : "Estos son sus códigos de respaldo. Por favor guárdelos y/o imprímalos ya que no podrá leerlos después.",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Save backup codes" : "Guardar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
"{name} backup codes" : "Códigos de respaldo {name}",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Utilice uno de los códigos de respaldo que guardó al configurar la autentificación de dos factores.",
+2 -2
View File
@@ -7,9 +7,9 @@ OC.L10N.register(
"Backup code" : "Código de respaldo",
"Use backup code" : "Usa el código de respaldo",
"An error occurred while generating your backup codes" : "Se presentó un error al generar tus códigos de respaldo. ",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Save backup codes" : "Guardar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
"Submit" : "Enviar"
},
+2 -2
View File
@@ -5,9 +5,9 @@
"Backup code" : "Código de respaldo",
"Use backup code" : "Usa el código de respaldo",
"An error occurred while generating your backup codes" : "Se presentó un error al generar tus códigos de respaldo. ",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Save backup codes" : "Guardar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
"Submit" : "Enviar"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
+2 -2
View File
@@ -7,9 +7,9 @@ OC.L10N.register(
"Backup code" : "Código de respaldo",
"Use backup code" : "Usa el código de respaldo",
"An error occurred while generating your backup codes" : "Se presentó un error al generar tus códigos de respaldo. ",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Save backup codes" : "Guardar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
"Submit" : "Enviar"
},
+2 -2
View File
@@ -5,9 +5,9 @@
"Backup code" : "Código de respaldo",
"Use backup code" : "Usa el código de respaldo",
"An error occurred while generating your backup codes" : "Se presentó un error al generar tus códigos de respaldo. ",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Save backup codes" : "Guardar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
"Submit" : "Enviar"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
+2 -2
View File
@@ -7,9 +7,9 @@ OC.L10N.register(
"Backup code" : "Código de respaldo",
"Use backup code" : "Usa el código de respaldo",
"An error occurred while generating your backup codes" : "Se presentó un error al generar tus códigos de respaldo. ",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Save backup codes" : "Guardar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
"Submit" : "Enviar"
},
+2 -2
View File
@@ -5,9 +5,9 @@
"Backup code" : "Código de respaldo",
"Use backup code" : "Usa el código de respaldo",
"An error occurred while generating your backup codes" : "Se presentó un error al generar tus códigos de respaldo. ",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Save backup codes" : "Guardar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
"Submit" : "Enviar"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
+2 -2
View File
@@ -7,9 +7,9 @@ OC.L10N.register(
"Backup code" : "Código de respaldo",
"Use backup code" : "Usa el código de respaldo",
"An error occurred while generating your backup codes" : "Se presentó un error al generar tus códigos de respaldo. ",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Save backup codes" : "Guardar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
"Submit" : "Enviar"
},
+2 -2
View File
@@ -5,9 +5,9 @@
"Backup code" : "Código de respaldo",
"Use backup code" : "Usa el código de respaldo",
"An error occurred while generating your backup codes" : "Se presentó un error al generar tus códigos de respaldo. ",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Save backup codes" : "Guardar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
"Submit" : "Enviar"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
+2 -2
View File
@@ -7,9 +7,9 @@ OC.L10N.register(
"Backup code" : "Código de respaldo",
"Use backup code" : "Usa el código de respaldo",
"An error occurred while generating your backup codes" : "Se presentó un error al generar tus códigos de respaldo. ",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Save backup codes" : "Guardar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
"Submit" : "Enviar"
},
+2 -2
View File
@@ -5,9 +5,9 @@
"Backup code" : "Código de respaldo",
"Use backup code" : "Usa el código de respaldo",
"An error occurred while generating your backup codes" : "Se presentó un error al generar tus códigos de respaldo. ",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Save backup codes" : "Guardar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
"Submit" : "Enviar"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
+2 -2
View File
@@ -8,9 +8,9 @@ OC.L10N.register(
"Use backup code" : "Usa el código de respaldo",
"Two factor backup codes" : "Códigos de respaldo de dos factores",
"An error occurred while generating your backup codes" : "Se presentó un error al generar tus códigos de respaldo. ",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Save backup codes" : "Guardar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
"Submit" : "Enviar"
},
+2 -2
View File
@@ -6,9 +6,9 @@
"Use backup code" : "Usa el código de respaldo",
"Two factor backup codes" : "Códigos de respaldo de dos factores",
"An error occurred while generating your backup codes" : "Se presentó un error al generar tus códigos de respaldo. ",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Save backup codes" : "Guardar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
"Submit" : "Enviar"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
+2 -2
View File
@@ -7,9 +7,9 @@ OC.L10N.register(
"Backup code" : "Código de respaldo",
"Use backup code" : "Usa el código de respaldo",
"An error occurred while generating your backup codes" : "Se presentó un error al generar tus códigos de respaldo. ",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Save backup codes" : "Guardar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
"Submit" : "Enviar"
},
+2 -2
View File
@@ -5,9 +5,9 @@
"Backup code" : "Código de respaldo",
"Use backup code" : "Usa el código de respaldo",
"An error occurred while generating your backup codes" : "Se presentó un error al generar tus códigos de respaldo. ",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Save backup codes" : "Guardar códigos de respaldo",
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
"Submit" : "Enviar"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
+2 -4
View File
@@ -12,13 +12,11 @@ OC.L10N.register(
"An error occurred while generating your backup codes" : "Varukoodide genereerimisel tekkis tõrge",
"Backup codes have been generated. {used} of {total} codes have been used." : "Varukoodid genereeritud. {used} koodi {total}-st on kasutatud.",
"These are your backup codes. Please save and/or print them as you will not be able to read the codes again later." : "Need on su tagavarakoodid. Palun salvesta ja/või prindi need välja kuna sa ei saa neid koode hiljem uuesti lugeda.",
"List of backup codes" : "Varukoodide loend",
"Regenerate backup codes" : "Genereeri varukoodid uuesti",
"Print backup codes" : "Trüki varukoodid",
"Save backup codes" : "Salvesta varukoodid",
"Print backup codes" : "Trüki varukoodid",
"Regenerate backup codes" : "Genereeri varukoodid uuesti",
"If you regenerate backup codes, you automatically invalidate old codes." : "Kui genereerid varukoodid uuesti, muudad vanad koodid automaatselt kehtetuks.",
"{name} backup codes" : "{name} varukoodid",
"Unable to open a new tab for printing" : "Uue vaahekaardi avamine trükkimiseks ei õnnestu",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Kasuta üht kaheastmelise autentimise seadistamisel salvestatud varukoodidest.",
"Submit" : "Saada"
},
+2 -4
View File
@@ -10,13 +10,11 @@
"An error occurred while generating your backup codes" : "Varukoodide genereerimisel tekkis tõrge",
"Backup codes have been generated. {used} of {total} codes have been used." : "Varukoodid genereeritud. {used} koodi {total}-st on kasutatud.",
"These are your backup codes. Please save and/or print them as you will not be able to read the codes again later." : "Need on su tagavarakoodid. Palun salvesta ja/või prindi need välja kuna sa ei saa neid koode hiljem uuesti lugeda.",
"List of backup codes" : "Varukoodide loend",
"Regenerate backup codes" : "Genereeri varukoodid uuesti",
"Print backup codes" : "Trüki varukoodid",
"Save backup codes" : "Salvesta varukoodid",
"Print backup codes" : "Trüki varukoodid",
"Regenerate backup codes" : "Genereeri varukoodid uuesti",
"If you regenerate backup codes, you automatically invalidate old codes." : "Kui genereerid varukoodid uuesti, muudad vanad koodid automaatselt kehtetuks.",
"{name} backup codes" : "{name} varukoodid",
"Unable to open a new tab for printing" : "Uue vaahekaardi avamine trükkimiseks ei õnnestu",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Kasuta üht kaheastmelise autentimise seadistamisel salvestatud varukoodidest.",
"Submit" : "Saada"
},"pluralForm" :"nplurals=2; plural=(n != 1);"

Some files were not shown because too many files have changed in this diff Show More