From 8aed52b7781e72297dd8965a306bb82eaa26d31a Mon Sep 17 00:00:00 2001 From: M M Arif Date: Sun, 24 Mar 2024 11:16:17 +0000 Subject: [PATCH] Export/import app data (#1339) Closes #788 Closes #1338 Reviewed-on: https://codeberg.org/gitnex/GitNex/pulls/1339 Co-authored-by: M M Arif Co-committed-by: M M Arif --- README.md | 1 + app/src/main/AndroidManifest.xml | 3 + .../activities/AddNewAccountActivity.java | 4 +- .../activities/CreateIssueActivity.java | 8 +- .../mian/gitnex/activities/LoginActivity.java | 230 ++++- .../SettingsBackupRestoreActivity.java | 285 +++++ .../org/mian/gitnex/core/MainApplication.java | 20 +- .../BottomSheetSingleIssueFragment.java | 6 +- .../gitnex/fragments/SettingsFragment.java | 55 +- .../gitnex/helpers/AppDatabaseSettings.java | 3 - .../java/org/mian/gitnex/helpers/AppUtil.java | 13 +- .../org/mian/gitnex/helpers/BackupUtil.java | 209 ++++ .../helpers/ssl/MemorizingTrustManager.java | 25 +- app/src/main/res/drawable/ic_export.xml | 48 + app/src/main/res/layout/activity_login.xml | 13 +- .../activity_settings_backup_restore.xml | 108 ++ app/src/main/res/layout/fragment_settings.xml | 199 ++-- app/src/main/res/values-ar-rSA/strings.xml | 92 +- app/src/main/res/values-cs-rCZ/strings.xml | 972 ++++++++++-------- app/src/main/res/values-el-rGR/strings.xml | 92 +- app/src/main/res/values-eo-rEO/strings.xml | 1 + app/src/main/res/values-es-rES/strings.xml | 52 +- app/src/main/res/values-fa-rIR/strings.xml | 92 +- app/src/main/res/values-fi-rFI/strings.xml | 92 +- app/src/main/res/values-it-rIT/strings.xml | 92 +- app/src/main/res/values-ja-rJP/strings.xml | 92 +- app/src/main/res/values-ko-rKR/strings.xml | 92 +- app/src/main/res/values-lv-rLV/strings.xml | 92 +- app/src/main/res/values-nl-rNL/strings.xml | 186 ++-- app/src/main/res/values-pl-rPL/strings.xml | 126 ++- app/src/main/res/values-pt-rBR/strings.xml | 141 ++- app/src/main/res/values-ru-rRU/strings.xml | 240 +++-- app/src/main/res/values-si-rLK/strings.xml | 92 +- app/src/main/res/values-sk-rSK/strings.xml | 92 +- app/src/main/res/values-sr-rRS/strings.xml | 92 +- app/src/main/res/values-tr-rTR/strings.xml | 92 +- app/src/main/res/values-uk-rUA/strings.xml | 92 +- app/src/main/res/values-zh-rCN/strings.xml | 103 +- app/src/main/res/values-zh-rTW/strings.xml | 7 +- app/src/main/res/values/strings.xml | 13 + 40 files changed, 3156 insertions(+), 1111 deletions(-) create mode 100644 app/src/main/java/org/mian/gitnex/activities/SettingsBackupRestoreActivity.java create mode 100644 app/src/main/java/org/mian/gitnex/helpers/BackupUtil.java create mode 100644 app/src/main/res/drawable/ic_export.xml create mode 100644 app/src/main/res/layout/activity_settings_backup_restore.xml diff --git a/README.md b/README.md index eeaedf1a..7ec2af0d 100644 --- a/README.md +++ b/README.md @@ -99,6 +99,7 @@ Thanks to all the open source libraries, contributors, and donors. - [lucide-icons/lucide](https://github.com/lucide-icons/lucide) - [primer/octicons](https://github.com/primer/octicons) - [google/material-design-icons](https://github.com/google/material-design-icons) +- [tabler/tabler-icons](https://github.com/tabler/tabler-icons) [Follow me on Fediverse - mastodon.social/@mmarif](https://mastodon.social/@mmarif) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9d0af8f6..14807429 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -177,6 +177,9 @@ android:name=".activities.CreateNoteActivity" android:configChanges="orientation|screenSize|smallestScreenSize|density|screenLayout|keyboard|keyboardHidden|navigation" android:windowSoftInputMode="adjustResize"/> + 0) { + if (!contentUri.isEmpty()) { BottomSheetAttachmentsBinding bottomSheetAttachmentsBinding = BottomSheetAttachmentsBinding.inflate(getLayoutInflater()); @@ -409,7 +409,7 @@ public class CreateIssueActivity extends BaseActivity String newIssueDueDateForm = Objects.requireNonNull(viewBinding.newIssueDueDate.getText()).toString(); - if (newIssueTitleForm.equals("")) { + if (newIssueTitleForm.isEmpty()) { SnackBar.error( ctx, findViewById(android.R.id.content), getString(R.string.issueTitleEmpty)); @@ -479,7 +479,7 @@ public class CreateIssueActivity extends BaseActivity assert response2.body() != null; - if (contentUri.size() > 0) { + if (!contentUri.isEmpty()) { processAttachments(response2.body().getNumber()); contentUri.clear(); } else { @@ -536,7 +536,7 @@ public class CreateIssueActivity extends BaseActivity milestonesList.put(ms.getTitle(), ms); assert milestonesList_ != null; - if (milestonesList_.size() > 0) { + if (!milestonesList_.isEmpty()) { for (Milestone milestone : milestonesList_) { diff --git a/app/src/main/java/org/mian/gitnex/activities/LoginActivity.java b/app/src/main/java/org/mian/gitnex/activities/LoginActivity.java index deaca867..67867dda 100644 --- a/app/src/main/java/org/mian/gitnex/activities/LoginActivity.java +++ b/app/src/main/java/org/mian/gitnex/activities/LoginActivity.java @@ -1,19 +1,30 @@ package org.mian.gitnex.activities; +import static org.mian.gitnex.helpers.BackupUtil.checkpointIfWALEnabled; +import static org.mian.gitnex.helpers.BackupUtil.copyFile; +import static org.mian.gitnex.helpers.BackupUtil.getTempDir; +import static org.mian.gitnex.helpers.BackupUtil.unzip; + +import android.app.Activity; +import android.content.Context; import android.content.Intent; +import android.net.Uri; import android.os.Bundle; import android.view.View; import android.widget.ArrayAdapter; -import android.widget.AutoCompleteTextView; -import android.widget.Button; -import android.widget.EditText; -import android.widget.RadioGroup; +import androidx.activity.result.ActivityResultLauncher; +import androidx.activity.result.contract.ActivityResultContracts; import androidx.annotation.NonNull; import com.google.android.material.dialog.MaterialAlertDialogBuilder; import io.mikael.urlbuilder.UrlBuilder; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; import java.net.URI; import java.nio.charset.StandardCharsets; import java.util.List; +import java.util.Objects; import java.util.UUID; import okhttp3.Credentials; import org.gitnex.tea4j.v2.models.AccessToken; @@ -42,48 +53,36 @@ import retrofit2.Callback; */ public class LoginActivity extends BaseActivity { - private Button loginButton; - private EditText instanceUrlET, loginUidET, loginPassword, otpCode, loginTokenCode; - private AutoCompleteTextView protocolSpinner; - private RadioGroup loginMethod; + private ActivityLoginBinding activityLoginBinding; private String device_id = "token"; private String selectedProtocol; private URI instanceUrl; private Version giteaVersion; private int maxResponseItems = 50; private int defaultPagingNumber = 25; + private final String DATABASE_NAME = "gitnex"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ActivityLoginBinding activityLoginBinding = - ActivityLoginBinding.inflate(getLayoutInflater()); + activityLoginBinding = ActivityLoginBinding.inflate(getLayoutInflater()); setContentView(activityLoginBinding.getRoot()); NetworkStatusObserver networkStatusObserver = NetworkStatusObserver.getInstance(ctx); - loginButton = activityLoginBinding.loginButton; - instanceUrlET = activityLoginBinding.instanceUrl; - loginUidET = activityLoginBinding.loginUid; - loginPassword = activityLoginBinding.loginPasswd; - otpCode = activityLoginBinding.otpCode; - protocolSpinner = activityLoginBinding.httpsSpinner; - loginMethod = activityLoginBinding.loginMethod; - loginTokenCode = activityLoginBinding.loginTokenCode; - activityLoginBinding.appVersion.setText(AppUtil.getAppVersion(appCtx)); ArrayAdapter adapterProtocols = new ArrayAdapter<>( LoginActivity.this, R.layout.list_spinner_items, Protocol.values()); - instanceUrlET.setText(getIntent().getStringExtra("instanceUrl")); + activityLoginBinding.instanceUrl.setText(getIntent().getStringExtra("instanceUrl")); - protocolSpinner.setAdapter(adapterProtocols); - protocolSpinner.setSelection(0); - protocolSpinner.setOnItemClickListener( + activityLoginBinding.httpsSpinner.setAdapter(adapterProtocols); + activityLoginBinding.httpsSpinner.setSelection(0); + activityLoginBinding.httpsSpinner.setOnItemClickListener( (parent, view, position, id) -> { selectedProtocol = String.valueOf(parent.getItemAtPosition(position)); @@ -95,7 +94,7 @@ public class LoginActivity extends BaseActivity { } }); - if (R.id.loginToken == loginMethod.getCheckedRadioButtonId()) { + if (R.id.loginToken == activityLoginBinding.loginMethod.getCheckedRadioButtonId()) { AppUtil.setMultiVisibility( View.GONE, findViewById(R.id.login_uidLayout), @@ -111,7 +110,7 @@ public class LoginActivity extends BaseActivity { findViewById(R.id.loginTokenCodeLayout).setVisibility(View.GONE); } - loginMethod.setOnCheckedChangeListener( + activityLoginBinding.loginMethod.setOnCheckedChangeListener( (group, checkedId) -> { if (checkedId == R.id.loginToken) { AppUtil.setMultiVisibility( @@ -138,7 +137,7 @@ public class LoginActivity extends BaseActivity { enableProcessButton(); } else { disableProcessButton(); - loginButton.setText( + activityLoginBinding.loginButton.setText( getResources().getString(R.string.btnLogin)); SnackBar.error( ctx, @@ -149,11 +148,29 @@ public class LoginActivity extends BaseActivity { loadDefaults(); - loginButton.setOnClickListener( + activityLoginBinding.loginButton.setOnClickListener( view -> { disableProcessButton(); login(); }); + + activityLoginBinding.restoreFromBackup.setOnClickListener( + restoreDb -> { + MaterialAlertDialogBuilder materialAlertDialogBuilder = + new MaterialAlertDialogBuilder(ctx) + .setTitle(R.string.restore) + .setMessage( + getResources() + .getString(R.string.restoreFromBackupPopupText)) + .setNeutralButton( + R.string.cancelButton, + (dialog, which) -> dialog.dismiss()) + .setPositiveButton( + R.string.restore, + (dialog, which) -> requestRestoreFile()); + + materialAlertDialogBuilder.create().show(); + }); } private void login() { @@ -170,21 +187,33 @@ public class LoginActivity extends BaseActivity { return; } - String loginUid = loginUidET.getText().toString().replaceAll("[\\uFEFF]", "").trim(); - String loginPass = loginPassword.getText().toString().trim(); + String loginUid = + Objects.requireNonNull(activityLoginBinding.loginUid.getText()) + .toString() + .replaceAll("[\\uFEFF]", "") + .trim(); + String loginPass = + Objects.requireNonNull(activityLoginBinding.loginPasswd.getText()) + .toString() + .trim(); String loginToken = - loginTokenCode.getText().toString().replaceAll("[\\uFEFF|#]", "").trim(); + Objects.requireNonNull(activityLoginBinding.loginTokenCode.getText()) + .toString() + .replaceAll("[\\uFEFF|#]", "") + .trim(); LoginType loginType = - (loginMethod.getCheckedRadioButtonId() == R.id.loginUsernamePassword) + (activityLoginBinding.loginMethod.getCheckedRadioButtonId() + == R.id.loginUsernamePassword) ? LoginType.BASIC : LoginType.TOKEN; URI rawInstanceUrl = UrlBuilder.fromString( UrlHelper.fixScheme( - instanceUrlET - .getText() + Objects.requireNonNull( + activityLoginBinding.instanceUrl + .getText()) .toString() .replaceAll("[\\uFEFF|#]", "") .trim(), @@ -199,9 +228,10 @@ public class LoginActivity extends BaseActivity { // cache values to make them available the next time the user wants to log in tinyDB.putString("loginType", loginType.name().toLowerCase()); - tinyDB.putString("instanceUrlRaw", instanceUrlET.getText().toString()); + tinyDB.putString( + "instanceUrlRaw", activityLoginBinding.instanceUrl.getText().toString()); - if (instanceUrlET.getText().toString().equals("")) { + if (activityLoginBinding.instanceUrl.getText().toString().isEmpty()) { SnackBar.error( ctx, findViewById(android.R.id.content), getString(R.string.emptyFieldURL)); @@ -211,7 +241,8 @@ public class LoginActivity extends BaseActivity { if (loginType == LoginType.BASIC) { - if (otpCode.length() != 0 && otpCode.length() != 6) { + if (activityLoginBinding.otpCode.length() != 0 + && activityLoginBinding.otpCode.length() != 6) { SnackBar.error( ctx, @@ -221,7 +252,7 @@ public class LoginActivity extends BaseActivity { return; } - if (loginUid.equals("")) { + if (loginUid.isEmpty()) { SnackBar.error( ctx, findViewById(android.R.id.content), @@ -230,7 +261,7 @@ public class LoginActivity extends BaseActivity { return; } - if (loginPass.equals("")) { + if (loginPass.isEmpty()) { SnackBar.error( ctx, findViewById(android.R.id.content), @@ -240,15 +271,19 @@ public class LoginActivity extends BaseActivity { } int loginOTP = - (otpCode.length() > 0) - ? Integer.parseInt(otpCode.getText().toString().trim()) + (activityLoginBinding.otpCode.length() > 0) + ? Integer.parseInt( + Objects.requireNonNull( + activityLoginBinding.otpCode.getText()) + .toString() + .trim()) : 0; versionCheck(loginUid, loginPass, loginOTP, loginToken, loginType); } else { - if (loginToken.equals("")) { + if (loginToken.isEmpty()) { SnackBar.error( ctx, @@ -311,7 +346,7 @@ public class LoginActivity extends BaseActivity { Call callVersion; - if (!loginToken.equals("")) { + if (!loginToken.isEmpty()) { callVersion = RetrofitClient.getApiInterface( @@ -700,7 +735,7 @@ public class LoginActivity extends BaseActivity { AccessToken newToken = responseCreate.body(); assert newToken != null; - if (!newToken.getSha1().equals("")) { + if (!newToken.getSha1().isEmpty()) { Call call = RetrofitClient.getApiInterface( @@ -836,20 +871,20 @@ public class LoginActivity extends BaseActivity { if (tinyDB.getString("loginType").equals(LoginType.BASIC.name().toLowerCase())) { - loginMethod.check(R.id.loginUsernamePassword); + activityLoginBinding.loginMethod.check(R.id.loginUsernamePassword); } else { - loginMethod.check(R.id.loginToken); + activityLoginBinding.loginMethod.check(R.id.loginToken); } - if (!tinyDB.getString("instanceUrlRaw").equals("")) { + if (!tinyDB.getString("instanceUrlRaw").isEmpty()) { - instanceUrlET.setText(tinyDB.getString("instanceUrlRaw")); + activityLoginBinding.instanceUrl.setText(tinyDB.getString("instanceUrlRaw")); } if (getAccount() != null && getAccount().getAccount() != null) { - loginUidET.setText(getAccount().getAccount().getUserName()); + activityLoginBinding.loginUid.setText(getAccount().getAccount().getUserName()); } if (!tinyDB.getString("uniqueAppId").isEmpty()) { @@ -863,18 +898,109 @@ public class LoginActivity extends BaseActivity { private void disableProcessButton() { - loginButton.setText(R.string.processingText); - loginButton.setEnabled(false); + activityLoginBinding.loginButton.setText(R.string.processingText); + activityLoginBinding.loginButton.setEnabled(false); } private void enableProcessButton() { - loginButton.setText(R.string.btnLogin); - loginButton.setEnabled(true); + activityLoginBinding.loginButton.setText(R.string.btnLogin); + activityLoginBinding.loginButton.setEnabled(true); } private enum LoginType { BASIC, TOKEN } + + private void requestRestoreFile() { + + Intent intentRestore = new Intent(Intent.ACTION_OPEN_DOCUMENT); + intentRestore.addCategory(Intent.CATEGORY_OPENABLE); + intentRestore.setType("*/*"); + String[] mimeTypes = {"application/octet-stream", "application/x-zip"}; + intentRestore.putExtra(Intent.EXTRA_MIME_TYPES, mimeTypes); + + activityRestoreFileLauncher.launch(intentRestore); + } + + ActivityResultLauncher activityRestoreFileLauncher = + registerForActivityResult( + new ActivityResultContracts.StartActivityForResult(), + result -> { + if (result.getResultCode() == Activity.RESULT_OK) { + + assert result.getData() != null; + + Uri restoreFileUri = result.getData().getData(); + assert restoreFileUri != null; + + try { + InputStream inputStream = + getContentResolver().openInputStream(restoreFileUri); + restoreDatabaseThread(inputStream); + } catch (FileNotFoundException e) { + SnackBar.error( + ctx, + findViewById(android.R.id.content), + getString(R.string.restoreError)); + } + } + }); + + private void restoreDatabaseThread(InputStream inputStream) { + + Thread restoreDatabaseThread = + new Thread( + () -> { + boolean exceptionOccurred = false; + + try { + + String tempDir = getTempDir(ctx).getPath(); + + unzip(inputStream, tempDir); + checkpointIfWALEnabled(ctx, DATABASE_NAME); + restoreDatabaseFile(ctx, tempDir, DATABASE_NAME); + + UserAccountsApi userAccountsApi = + BaseApi.getInstance(ctx, UserAccountsApi.class); + assert userAccountsApi != null; + UserAccount account = userAccountsApi.getAccountById(1); + AppUtil.switchToAccount(ctx, account); + } catch (final Exception e) { + + exceptionOccurred = true; + SnackBar.error( + ctx, + findViewById(android.R.id.content), + getString(R.string.restoreError)); + } finally { + if (!exceptionOccurred) { + + runOnUiThread(this::restartApp); + } + } + }); + + restoreDatabaseThread.setDaemon(false); + restoreDatabaseThread.start(); + } + + public void restoreDatabaseFile(Context context, String tempDir, String nameOfFileToRestore) + throws IOException { + + File currentDbFile = new File(context.getDatabasePath(DATABASE_NAME).getPath()); + File newDbFile = new File(tempDir + "/" + nameOfFileToRestore); + if (newDbFile.exists()) { + copyFile(newDbFile, currentDbFile, false); + } + } + + public void restartApp() { + Intent i = ctx.getPackageManager().getLaunchIntentForPackage(ctx.getPackageName()); + assert i != null; + startActivity(Intent.makeRestartActivityTask(i.getComponent())); + Runtime.getRuntime().exit(0); + } } diff --git a/app/src/main/java/org/mian/gitnex/activities/SettingsBackupRestoreActivity.java b/app/src/main/java/org/mian/gitnex/activities/SettingsBackupRestoreActivity.java new file mode 100644 index 00000000..f420fc30 --- /dev/null +++ b/app/src/main/java/org/mian/gitnex/activities/SettingsBackupRestoreActivity.java @@ -0,0 +1,285 @@ +package org.mian.gitnex.activities; + +import static org.mian.gitnex.helpers.BackupUtil.backupDatabaseFile; +import static org.mian.gitnex.helpers.BackupUtil.checkpointIfWALEnabled; +import static org.mian.gitnex.helpers.BackupUtil.copyFile; +import static org.mian.gitnex.helpers.BackupUtil.copyFileWithStreams; +import static org.mian.gitnex.helpers.BackupUtil.getTempDir; +import static org.mian.gitnex.helpers.BackupUtil.unzip; +import static org.mian.gitnex.helpers.BackupUtil.zip; + +import android.app.Activity; +import android.content.Context; +import android.content.Intent; +import android.net.Uri; +import android.os.Bundle; +import androidx.activity.result.ActivityResultLauncher; +import androidx.activity.result.contract.ActivityResultContracts; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; +import org.mian.gitnex.R; +import org.mian.gitnex.database.api.BaseApi; +import org.mian.gitnex.database.api.UserAccountsApi; +import org.mian.gitnex.database.models.UserAccount; +import org.mian.gitnex.databinding.ActivitySettingsBackupRestoreBinding; +import org.mian.gitnex.helpers.AppUtil; +import org.mian.gitnex.helpers.SnackBar; + +/** + * @author M M Arif + */ +public class SettingsBackupRestoreActivity extends BaseActivity { + + private final String DATABASE_NAME = "gitnex"; + private String BACKUP_DATABASE_NAME; + + @Override + public void onCreate(Bundle savedInstanceState) { + + super.onCreate(savedInstanceState); + + ActivitySettingsBackupRestoreBinding viewBinding = + ActivitySettingsBackupRestoreBinding.inflate(getLayoutInflater()); + setContentView(viewBinding.getRoot()); + + viewBinding.topAppBar.setNavigationOnClickListener(v -> finish()); + viewBinding.topAppBar.setTitle( + getResources() + .getString( + R.string.backupRestore, + getString(R.string.backup), + getString(R.string.restore))); + + BACKUP_DATABASE_NAME = ctx.getString(R.string.appName) + "-" + LocalDate.now() + ".backup"; + + viewBinding.backupDataFrame.setOnClickListener( + v -> { + MaterialAlertDialogBuilder materialAlertDialogBuilder = + new MaterialAlertDialogBuilder(ctx) + .setTitle(R.string.backup) + .setMessage( + getResources().getString(R.string.backupFilePopupText)) + .setNeutralButton( + R.string.cancelButton, + (dialog, which) -> dialog.dismiss()) + .setPositiveButton( + R.string.backup, + (dialog, which) -> requestBackupFileDownload()); + + materialAlertDialogBuilder.create().show(); + }); + + viewBinding.restoreDataFrame.setOnClickListener( + restoreDb -> { + MaterialAlertDialogBuilder materialAlertDialogBuilder = + new MaterialAlertDialogBuilder(ctx) + .setTitle(R.string.restore) + .setMessage( + getResources().getString(R.string.restoreFilePopupText)) + .setNeutralButton( + R.string.cancelButton, + (dialog, which) -> dialog.dismiss()) + .setPositiveButton( + R.string.restore, + (dialog, which) -> requestRestoreFile()); + + materialAlertDialogBuilder.create().show(); + }); + } + + ActivityResultLauncher activityBackupFileLauncher = + registerForActivityResult( + new ActivityResultContracts.StartActivityForResult(), + result -> { + if (result.getResultCode() == Activity.RESULT_OK) { + + assert result.getData() != null; + + Uri backupFileUri = result.getData().getData(); + backupDatabaseThread(backupFileUri); + } + }); + + private void requestBackupFileDownload() { + + Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT); + intent.addCategory(Intent.CATEGORY_OPENABLE); + intent.putExtra(Intent.EXTRA_TITLE, BACKUP_DATABASE_NAME); + intent.setType("application/octet-stream"); + + activityBackupFileLauncher.launch(intent); + } + + private void backupDatabaseThread(Uri backupFileUri) { + + List filesToZip = new ArrayList<>(); + + Thread backupDatabaseThread = + new Thread( + () -> { + File tempDir = getTempDir(ctx); + + try { + + checkpointIfWALEnabled(ctx, DATABASE_NAME); + + File databaseBackupFile = + backupDatabaseFile( + getDatabasePath(DATABASE_NAME).getPath(), + tempDir.getPath() + "/" + DATABASE_NAME); + + filesToZip.add(databaseBackupFile); + String tempZipFilename = "temp.backup"; + + boolean zipFileStatus = + zip(filesToZip, tempDir.getPath(), tempZipFilename); + + if (zipFileStatus) { + + File tempZipFile = new File(tempDir, tempZipFilename); + Uri zipFileUri = Uri.fromFile(tempZipFile); + + InputStream inputStream = + getContentResolver().openInputStream(zipFileUri); + OutputStream outputStream = + getContentResolver().openOutputStream(backupFileUri); + + boolean copySucceeded = + copyFileWithStreams(inputStream, outputStream); + + SnackBar.success( + ctx, + findViewById(android.R.id.content), + getString(R.string.backupFileSuccess)); + + if (copySucceeded) { + tempZipFile.delete(); + } else { + SnackBar.error( + ctx, + findViewById(android.R.id.content), + getString(R.string.backupFileError)); + } + } else { + SnackBar.error( + ctx, + findViewById(android.R.id.content), + getString(R.string.backupFileError)); + } + + } catch (final Exception e) { + SnackBar.error( + ctx, + findViewById(android.R.id.content), + getString(R.string.backupFileError)); + } finally { + for (File file : filesToZip) { + if (file != null && file.exists()) { + file.delete(); + } + } + } + }); + + backupDatabaseThread.setDaemon(false); + backupDatabaseThread.start(); + } + + private void requestRestoreFile() { + + Intent intentRestore = new Intent(Intent.ACTION_OPEN_DOCUMENT); + intentRestore.addCategory(Intent.CATEGORY_OPENABLE); + intentRestore.setType("*/*"); + String[] mimeTypes = {"application/octet-stream", "application/x-zip"}; + intentRestore.putExtra(Intent.EXTRA_MIME_TYPES, mimeTypes); + + activityRestoreFileLauncher.launch(intentRestore); + } + + ActivityResultLauncher activityRestoreFileLauncher = + registerForActivityResult( + new ActivityResultContracts.StartActivityForResult(), + result -> { + if (result.getResultCode() == Activity.RESULT_OK) { + + assert result.getData() != null; + + Uri restoreFileUri = result.getData().getData(); + assert restoreFileUri != null; + + try { + InputStream inputStream = + getContentResolver().openInputStream(restoreFileUri); + restoreDatabaseThread(inputStream); + } catch (FileNotFoundException e) { + SnackBar.error( + ctx, + findViewById(android.R.id.content), + getString(R.string.restoreError)); + } + } + }); + + private void restoreDatabaseThread(InputStream inputStream) { + + Thread restoreDatabaseThread = + new Thread( + () -> { + boolean exceptionOccurred = false; + + try { + + String tempDir = getTempDir(ctx).getPath(); + + unzip(inputStream, tempDir); + checkpointIfWALEnabled(ctx, DATABASE_NAME); + restoreDatabaseFile(ctx, tempDir, DATABASE_NAME); + + UserAccountsApi userAccountsApi = + BaseApi.getInstance(ctx, UserAccountsApi.class); + assert userAccountsApi != null; + UserAccount account = userAccountsApi.getAccountById(1); + AppUtil.switchToAccount(ctx, account); + } catch (final Exception e) { + + exceptionOccurred = true; + SnackBar.error( + ctx, + findViewById(android.R.id.content), + getString(R.string.restoreError)); + } finally { + if (!exceptionOccurred) { + + runOnUiThread(this::restartApp); + } + } + }); + + restoreDatabaseThread.setDaemon(false); + restoreDatabaseThread.start(); + } + + public void restoreDatabaseFile(Context context, String tempDir, String nameOfFileToRestore) + throws IOException { + + File currentDbFile = new File(context.getDatabasePath(DATABASE_NAME).getPath()); + File newDbFile = new File(tempDir + "/" + nameOfFileToRestore); + if (newDbFile.exists()) { + copyFile(newDbFile, currentDbFile, false); + } + } + + public void restartApp() { + Intent i = ctx.getPackageManager().getLaunchIntentForPackage(ctx.getPackageName()); + assert i != null; + startActivity(Intent.makeRestartActivityTask(i.getComponent())); + Runtime.getRuntime().exit(0); + } +} diff --git a/app/src/main/java/org/mian/gitnex/core/MainApplication.java b/app/src/main/java/org/mian/gitnex/core/MainApplication.java index a6c07f8e..34cd7e0b 100644 --- a/app/src/main/java/org/mian/gitnex/core/MainApplication.java +++ b/app/src/main/java/org/mian/gitnex/core/MainApplication.java @@ -52,18 +52,10 @@ public class MainApplication extends Application { Notifications.createChannels(appCtx); DynamicColors.applyToActivitiesIfAvailable(this); - } - - @Override - protected void attachBaseContext(Context context) { - - super.attachBaseContext(context); - - tinyDB = TinyDB.getInstance(context); if (Boolean.parseBoolean( AppDatabaseSettings.getSettingsValue( - context, AppDatabaseSettings.APP_CRASH_REPORTS_KEY))) { + getApplicationContext(), AppDatabaseSettings.APP_CRASH_REPORTS_KEY))) { CoreConfigurationBuilder ACRABuilder = new CoreConfigurationBuilder(); @@ -91,7 +83,7 @@ public class MainApplication extends Application { getResources() .getString( R.string.crashReportEmailSubject, - AppUtil.getAppBuildNo(context))) + AppUtil.getAppBuildNo(getApplicationContext()))) .withReportAsFile(true) .build()); @@ -102,6 +94,14 @@ public class MainApplication extends Application { } } + @Override + protected void attachBaseContext(Context context) { + + super.attachBaseContext(context); + + tinyDB = TinyDB.getInstance(context); + } + public boolean switchToAccount(UserAccount userAccount, boolean tmp) { if (!tmp || tinyDB.getInt("currentActiveAccountId") != userAccount.getAccountId()) { currentAccount = new AccountContext(userAccount); diff --git a/app/src/main/java/org/mian/gitnex/fragments/BottomSheetSingleIssueFragment.java b/app/src/main/java/org/mian/gitnex/fragments/BottomSheetSingleIssueFragment.java index 18a12ffc..b54d6c6c 100644 --- a/app/src/main/java/org/mian/gitnex/fragments/BottomSheetSingleIssueFragment.java +++ b/app/src/main/java/org/mian/gitnex/fragments/BottomSheetSingleIssueFragment.java @@ -279,7 +279,11 @@ public class BottomSheetSingleIssueFragment extends BottomSheetDialogFragment { if (issue.getIssueType().equalsIgnoreCase("issue")) { binding.issuePrDivider.setVisibility(View.GONE); } - } else if (!canPush) { + } + if (isRepoAdmin || canPush) { + binding.addRemoveAssignees.setVisibility(View.VISIBLE); + binding.editLabels.setVisibility(View.VISIBLE); + } else { binding.addRemoveAssignees.setVisibility(View.GONE); binding.editLabels.setVisibility(View.GONE); } diff --git a/app/src/main/java/org/mian/gitnex/fragments/SettingsFragment.java b/app/src/main/java/org/mian/gitnex/fragments/SettingsFragment.java index 9533a6dc..b5677309 100644 --- a/app/src/main/java/org/mian/gitnex/fragments/SettingsFragment.java +++ b/app/src/main/java/org/mian/gitnex/fragments/SettingsFragment.java @@ -16,6 +16,7 @@ import org.mian.gitnex.R; import org.mian.gitnex.activities.BaseActivity; import org.mian.gitnex.activities.MainActivity; import org.mian.gitnex.activities.SettingsAppearanceActivity; +import org.mian.gitnex.activities.SettingsBackupRestoreActivity; import org.mian.gitnex.activities.SettingsCodeEditorActivity; import org.mian.gitnex.activities.SettingsGeneralActivity; import org.mian.gitnex.activities.SettingsNotificationsActivity; @@ -44,16 +45,14 @@ public class SettingsFragment extends Fragment { FragmentSettingsBinding.inflate(inflater, container, false); ctx = getContext(); + assert ctx != null; materialAlertDialogBuilder = new MaterialAlertDialogBuilder(ctx, R.style.ThemeOverlay_Material3_Dialog_Alert); ((MainActivity) requireActivity()) .setActionBarTitle(getResources().getString(R.string.navSettings)); - if (((BaseActivity) requireActivity()).getAccount().requiresVersion("1.12.3")) { - - fragmentSettingsBinding.notificationsFrame.setVisibility(View.VISIBLE); - } + fragmentSettingsBinding.notificationsFrame.setVisibility(View.VISIBLE); fragmentSettingsBinding.generalFrame.setOnClickListener( generalFrameCall -> startActivity(new Intent(ctx, SettingsGeneralActivity.class))); @@ -70,6 +69,14 @@ public class SettingsFragment extends Fragment { fragmentSettingsBinding.notificationsFrame.setOnClickListener( v1 -> startActivity(new Intent(ctx, SettingsNotificationsActivity.class))); + fragmentSettingsBinding.backupData.setText( + getString( + R.string.backupRestore, + getString(R.string.backup), + getString(R.string.restore))); + fragmentSettingsBinding.backupFrame.setOnClickListener( + v1 -> startActivity(new Intent(ctx, SettingsBackupRestoreActivity.class))); + fragmentSettingsBinding.rateAppFrame.setOnClickListener(rateApp -> rateThisApp()); fragmentSettingsBinding.aboutAppFrame.setOnClickListener(aboutApp -> showAboutAppDialog()); @@ -102,36 +109,32 @@ public class SettingsFragment extends Fragment { ((BaseActivity) requireActivity()).getAccount().getServerVersion().toString()); aboutAppDialogBinding.donationLinkPatreon.setOnClickListener( - v12 -> { - AppUtil.openUrlInBrowser( - requireContext(), - getResources().getString(R.string.supportLinkPatreon)); - }); + v12 -> + AppUtil.openUrlInBrowser( + requireContext(), + getResources().getString(R.string.supportLinkPatreon))); aboutAppDialogBinding.donationLinkBuyMeaCoffee.setOnClickListener( - v11 -> { - AppUtil.openUrlInBrowser( - requireContext(), - getResources().getString(R.string.supportLinkBuyMeaCoffee)); - }); + v11 -> + AppUtil.openUrlInBrowser( + requireContext(), + getResources().getString(R.string.supportLinkBuyMeaCoffee))); aboutAppDialogBinding.translateLink.setOnClickListener( - v13 -> { - AppUtil.openUrlInBrowser( - requireContext(), getResources().getString(R.string.crowdInLink)); - }); + v13 -> + AppUtil.openUrlInBrowser( + requireContext(), getResources().getString(R.string.crowdInLink))); aboutAppDialogBinding.appWebsite.setOnClickListener( - v14 -> { - AppUtil.openUrlInBrowser( - requireContext(), getResources().getString(R.string.appWebsiteLink)); - }); + v14 -> + AppUtil.openUrlInBrowser( + requireContext(), + getResources().getString(R.string.appWebsiteLink))); aboutAppDialogBinding.feedback.setOnClickListener( - v14 -> { - AppUtil.openUrlInBrowser( - requireContext(), getResources().getString(R.string.feedbackLink)); - }); + v14 -> + AppUtil.openUrlInBrowser( + requireContext(), getResources().getString(R.string.feedbackLink))); if (AppUtil.isPro(requireContext())) { aboutAppDialogBinding.layoutFrame1.setVisibility(View.GONE); diff --git a/app/src/main/java/org/mian/gitnex/helpers/AppDatabaseSettings.java b/app/src/main/java/org/mian/gitnex/helpers/AppDatabaseSettings.java index 59a315d3..43c4a0f8 100644 --- a/app/src/main/java/org/mian/gitnex/helpers/AppDatabaseSettings.java +++ b/app/src/main/java/org/mian/gitnex/helpers/AppDatabaseSettings.java @@ -1,7 +1,6 @@ package org.mian.gitnex.helpers; import android.content.Context; -import android.util.Log; import org.mian.gitnex.database.api.AppSettingsApi; import org.mian.gitnex.database.api.BaseApi; import org.mian.gitnex.database.models.AppSettings; @@ -217,8 +216,6 @@ public class AppDatabaseSettings { TinyDB tinyDB = TinyDB.getInstance(ctx); - Log.e("TestVal", "prefsMigration-ran"); - if (tinyDB.checkForExistingPref("themeId")) { AppDatabaseSettings.updateSettingsValue( ctx, diff --git a/app/src/main/java/org/mian/gitnex/helpers/AppUtil.java b/app/src/main/java/org/mian/gitnex/helpers/AppUtil.java index d228727d..4bae20cf 100644 --- a/app/src/main/java/org/mian/gitnex/helpers/AppUtil.java +++ b/app/src/main/java/org/mian/gitnex/helpers/AppUtil.java @@ -290,7 +290,7 @@ public class AppUtil { } public static Boolean checkStringsWithAlphaNumeric(String str) { // [a-zA-Z0-9] - return str.matches("^[\\w]+$"); + return str.matches("^\\w+$"); } public static Boolean checkStrings(String str) { // [a-zA-Z0-9-_. ] @@ -416,7 +416,7 @@ public class AppUtil { public static String decodeBase64(String str) { String base64Str = str; - if (!str.equals("")) { + if (!str.isEmpty()) { byte[] data = Base64.decode(base64Str, Base64.DEFAULT); base64Str = new String(data, StandardCharsets.UTF_8); } @@ -444,7 +444,7 @@ public class AppUtil { public static long getLineCount(String s) { - if (s.length() < 1) { + if (s.isEmpty()) { return 0; } @@ -476,9 +476,8 @@ public class AppUtil { .switchToAccount(userAccount, false); } - public static boolean switchToAccount(Context context, UserAccount userAccount, boolean tmp) { - return ((MainApplication) context.getApplicationContext()) - .switchToAccount(userAccount, tmp); + public static void switchToAccount(Context context, UserAccount userAccount, boolean tmp) { + ((MainApplication) context.getApplicationContext()).switchToAccount(userAccount, tmp); } public static void sharingIntent(Context ctx, String url) { @@ -497,7 +496,7 @@ public class AppUtil { pm.queryIntentActivities( new Intent(intent) .setData( - intent.getData() + Objects.requireNonNull(intent.getData()) .buildUpon() .authority("example.com") .scheme("https") diff --git a/app/src/main/java/org/mian/gitnex/helpers/BackupUtil.java b/app/src/main/java/org/mian/gitnex/helpers/BackupUtil.java new file mode 100644 index 00000000..4e768564 --- /dev/null +++ b/app/src/main/java/org/mian/gitnex/helpers/BackupUtil.java @@ -0,0 +1,209 @@ +package org.mian.gitnex.helpers; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.database.Cursor; +import android.database.sqlite.SQLiteDatabase; +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.nio.channels.FileChannel; +import java.util.List; +import java.util.zip.ZipEntry; +import java.util.zip.ZipInputStream; +import java.util.zip.ZipOutputStream; + +/** + * @author M M Arif + */ +public class BackupUtil { + + public static File getTempDir(Context context) { + String backupDirectoryPath = String.valueOf(context.getExternalFilesDir(null)); + return new File(backupDirectoryPath); + } + + public static boolean copyFile(File fromFile, File toFile, boolean bDeleteOriginalFile) + throws IOException { + + boolean bSuccess = true; + FileInputStream inputStream = new FileInputStream(fromFile); + FileOutputStream outputStream = new FileOutputStream(toFile); + + FileChannel fromChannel = null; + FileChannel toChannel = null; + try { + fromChannel = inputStream.getChannel(); + toChannel = outputStream.getChannel(); + fromChannel.transferTo(0, fromChannel.size(), toChannel); + } catch (Exception e) { + bSuccess = false; + } finally { + try { + if (fromChannel != null) { + fromChannel.close(); + } + } finally { + if (toChannel != null) { + toChannel.close(); + } + } + + if (bDeleteOriginalFile) { + fromFile.delete(); + } + } + return bSuccess; + } + + public static File backupDatabaseFile(String pathOfFileToBackUp, String destinationFilePath) + throws IOException { + + File currentDbFile = new File(pathOfFileToBackUp); + File newDb = new File(destinationFilePath); + if (currentDbFile.exists()) { + copyFile(currentDbFile, newDb, false); + return newDb; + } + return null; + } + + public static boolean copyFileWithStreams(InputStream inputStream, OutputStream outputStream) + throws IOException { + + boolean bSuccess = true; + + try { + byte[] buffer = new byte[1024]; + int length; + + while ((length = inputStream.read(buffer)) > 0) { + outputStream.write(buffer, 0, length); + } + } catch (Exception e) { + bSuccess = false; + } finally { + try { + if (inputStream != null) { + inputStream.close(); + } + } finally { + if (outputStream != null) { + outputStream.close(); + } + } + } + return bSuccess; + } + + @SuppressLint("Recycle") + public static void checkpointIfWALEnabled(Context ctx, String DATABASE_NAME) { + + Cursor csr; + int wal_busy = -99; + int wal_log = -99; + int wal_checkpointed = -99; + + SQLiteDatabase db = + SQLiteDatabase.openDatabase( + ctx.getDatabasePath(DATABASE_NAME).getPath(), + null, + SQLiteDatabase.OPEN_READWRITE); + csr = db.rawQuery("PRAGMA journal_mode", null); + + if (csr.moveToFirst()) { + + String mode = csr.getString(0); + if (mode.equalsIgnoreCase("wal")) { + + csr = db.rawQuery("PRAGMA wal_checkpoint", null); + + if (csr.moveToFirst()) { + wal_busy = csr.getInt(0); + wal_log = csr.getInt(1); + wal_checkpointed = csr.getInt(2); + } + + csr = db.rawQuery("PRAGMA wal_checkpoint(TRUNCATE)", null); + csr.getCount(); + csr = db.rawQuery("PRAGMA wal_checkpoint", null); + + if (csr.moveToFirst()) { + wal_busy = csr.getInt(0); + wal_log = csr.getInt(1); + wal_checkpointed = csr.getInt(2); + } + } + } + csr.close(); + db.close(); + } + + public static boolean zip( + List filesBeingZipped, String zipDirectory, String zipFileName) { + + boolean success = true; + + try { + + int BUFFER = 80000; + BufferedInputStream origin; + FileOutputStream dest = new FileOutputStream(zipDirectory + "/" + zipFileName); + ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(dest)); + byte[] data = new byte[BUFFER]; + + for (File fileBeingZipped : filesBeingZipped) { + + FileInputStream fi = new FileInputStream(fileBeingZipped); + origin = new BufferedInputStream(fi, BUFFER); + + ZipEntry entry = + new ZipEntry( + fileBeingZipped + .getPath() + .substring(fileBeingZipped.getPath().lastIndexOf("/") + 1)); + out.putNextEntry(entry); + int count; + + while ((count = origin.read(data, 0, BUFFER)) != -1) { + out.write(data, 0, count); + } + origin.close(); + } + out.close(); + } catch (Exception e) { + success = false; + } + + return success; + } + + public static void unzip(InputStream uriInputStream, String unzipDirectory) throws Exception { + + ZipInputStream zipInputStream = new ZipInputStream(uriInputStream); + ZipEntry ze; + + while ((ze = zipInputStream.getNextEntry()) != null) { + + FileOutputStream fileOutputStream = + new FileOutputStream(unzipDirectory + "/" + ze.getName()); + + BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(fileOutputStream); + byte[] buffer = new byte[1024]; + int read = 0; + while ((read = zipInputStream.read(buffer)) != -1) { + bufferedOutputStream.write(buffer, 0, read); + } + + zipInputStream.closeEntry(); + bufferedOutputStream.close(); + fileOutputStream.close(); + } + zipInputStream.close(); + } +} diff --git a/app/src/main/java/org/mian/gitnex/helpers/ssl/MemorizingTrustManager.java b/app/src/main/java/org/mian/gitnex/helpers/ssl/MemorizingTrustManager.java index bde77d76..7dcf8580 100644 --- a/app/src/main/java/org/mian/gitnex/helpers/ssl/MemorizingTrustManager.java +++ b/app/src/main/java/org/mian/gitnex/helpers/ssl/MemorizingTrustManager.java @@ -1,5 +1,8 @@ package org.mian.gitnex.helpers.ssl; +import static android.app.PendingIntent.FLAG_IMMUTABLE; + +import android.annotation.SuppressLint; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; @@ -7,6 +10,7 @@ import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.util.Base64; +import android.util.Log; import android.util.SparseArray; import androidx.core.app.NotificationCompat; import com.google.android.material.dialog.MaterialAlertDialogBuilder; @@ -31,6 +35,7 @@ import java.util.Collection; import java.util.Enumeration; import java.util.List; import java.util.Locale; +import java.util.Objects; import javax.net.ssl.HostnameVerifier; import javax.net.ssl.SSLSession; import javax.net.ssl.TrustManager; @@ -42,6 +47,7 @@ import org.mian.gitnex.activities.BaseActivity; /** * @author Georg Lukas, modified by opyale */ +@SuppressLint("CustomX509TrustManager") public class MemorizingTrustManager implements X509TrustManager { public static final String KEYSTORE_NAME = "keystore"; @@ -295,7 +301,7 @@ public class MemorizingTrustManager implements X509TrustManager { } } } catch (Exception e) { - e.printStackTrace(); + Log.e("MemorizingTrustManager", Objects.requireNonNull(e.getMessage())); } return null; @@ -308,14 +314,13 @@ public class MemorizingTrustManager implements X509TrustManager { try { keyStore = KeyStore.getInstance(KeyStore.getDefaultType()); } catch (KeyStoreException e) { - e.printStackTrace(); return null; } try { keyStore.load(null, null); } catch (NoSuchAlgorithmException | CertificateException | IOException e) { - e.printStackTrace(); + e.getMessage(); } String keystore = keyStoreStorage.getString(KEYSTORE_KEY, null); @@ -328,7 +333,7 @@ public class MemorizingTrustManager implements X509TrustManager { keyStore.load(inputStream, "MTM".toCharArray()); inputStream.close(); } catch (Exception e) { - e.printStackTrace(); + Log.e("MemorizingTrustManager", Objects.requireNonNull(e.getMessage())); } } @@ -340,7 +345,6 @@ public class MemorizingTrustManager implements X509TrustManager { try { appKeyStore.setCertificateEntry(alias, cert); } catch (KeyStoreException e) { - e.printStackTrace(); return; } @@ -372,7 +376,7 @@ public class MemorizingTrustManager implements X509TrustManager { byteArrayOutputStream.toByteArray(), Base64.DEFAULT)) .apply(); } catch (Exception e) { - e.printStackTrace(); + Log.e("MemorizingTrustManager", Objects.requireNonNull(e.getMessage())); } } @@ -396,7 +400,7 @@ public class MemorizingTrustManager implements X509TrustManager { appTrustManager.checkClientTrusted(chain, authType); } } catch (CertificateException ae) { - // if the cert is stored in our appTrustManager, we ignore expiredness + // if the cert is stored in our appTrustManager, we ignore expired ones if (isExpiredException(ae) || isCertKnown(chain[0])) { return; } @@ -522,7 +526,7 @@ public class MemorizingTrustManager implements X509TrustManager { } } } catch (CertificateParsingException e) { - e.printStackTrace(); + Log.e("MemorizingTrustManager", Objects.requireNonNull(e.getMessage())); stringBuilder.append("\n"); @@ -538,7 +542,7 @@ public class MemorizingTrustManager implements X509TrustManager { private void startActivityNotification(Intent intent, int decisionId, String certName) { - final PendingIntent call = PendingIntent.getActivity(context, 0, intent, 0); + final PendingIntent call = PendingIntent.getActivity(context, 0, intent, FLAG_IMMUTABLE); final String mtmNotification = context.getString(R.string.mtmNotification); NotificationCompat.Builder builder = @@ -591,7 +595,7 @@ public class MemorizingTrustManager implements X509TrustManager { choice.wait(); } } catch (InterruptedException e) { - e.printStackTrace(); + Log.e("MemorizingTrustManager", Objects.requireNonNull(e.getMessage())); } return choice.state; @@ -665,7 +669,6 @@ public class MemorizingTrustManager implements X509TrustManager { return interactHostname(cert, hostname); } } catch (Exception e) { - e.printStackTrace(); return false; } } diff --git a/app/src/main/res/drawable/ic_export.xml b/app/src/main/res/drawable/ic_export.xml new file mode 100644 index 00000000..ecc75074 --- /dev/null +++ b/app/src/main/res/drawable/ic_export.xml @@ -0,0 +1,48 @@ + + + + + + + + diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index a78ebe6f..76cb6fd5 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -256,12 +256,23 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="@dimen/dimen8dp" - android:layout_marginBottom="@dimen/dimen16dp" + android:layout_marginBottom="@dimen/dimen8dp" android:text="@string/btnLogin" android:textColor="?attr/materialCardBackgroundColor" android:letterSpacing="0.1" android:textStyle="bold" /> + + diff --git a/app/src/main/res/layout/activity_settings_backup_restore.xml b/app/src/main/res/layout/activity_settings_backup_restore.xml new file mode 100644 index 00000000..78020034 --- /dev/null +++ b/app/src/main/res/layout/activity_settings_backup_restore.xml @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/fragment_settings.xml b/app/src/main/res/layout/fragment_settings.xml index 0d2f899e..907184e7 100644 --- a/app/src/main/res/layout/fragment_settings.xml +++ b/app/src/main/res/layout/fragment_settings.xml @@ -16,17 +16,17 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" - android:paddingTop="10dp"> + android:paddingTop="@dimen/dimen10dp"> + android:padding="@dimen/dimen16dp"> @@ -46,22 +46,22 @@ android:id="@+id/tvGeneral" android:layout_width="match_parent" android:layout_height="wrap_content" - android:paddingStart="12dp" - android:paddingEnd="12dp" + android:paddingStart="@dimen/dimen12dp" + android:paddingEnd="@dimen/dimen12dp" android:text="@string/settingsGeneralHeader" android:textColor="?attr/primaryTextColor" - android:textSize="18sp"/> + android:textSize="@dimen/dimen18sp" /> + android:textSize="@dimen/dimen12sp" /> @@ -77,11 +77,11 @@ android:id="@+id/appearanceFrame" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginBottom="5dp" + android:layout_marginBottom="@dimen/dimen6dp" android:background="?android:attr/selectableItemBackground" android:gravity="center_vertical" android:orientation="horizontal" - android:padding="15dp"> + android:padding="@dimen/dimen16dp"> @@ -101,22 +101,22 @@ android:id="@+id/tvAppearance" android:layout_width="match_parent" android:layout_height="wrap_content" - android:paddingStart="12dp" - android:paddingEnd="12dp" + android:paddingStart="@dimen/dimen12dp" + android:paddingEnd="@dimen/dimen12dp" android:text="@string/settingsAppearanceHeader" android:textColor="?attr/primaryTextColor" - android:textSize="18sp"/> + android:textSize="@dimen/dimen18sp" /> + android:textSize="@dimen/dimen12sp" /> @@ -132,11 +132,11 @@ android:id="@+id/codeEditorFrame" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginBottom="5dp" + android:layout_marginBottom="@dimen/dimen6dp" android:background="?android:attr/selectableItemBackground" android:gravity="center_vertical" android:orientation="horizontal" - android:padding="15dp"> + android:padding="@dimen/dimen16dp"> @@ -156,22 +156,22 @@ android:id="@+id/codeEditor" android:layout_width="match_parent" android:layout_height="wrap_content" - android:paddingStart="12dp" - android:paddingEnd="12dp" + android:paddingStart="@dimen/dimen12dp" + android:paddingEnd="@dimen/dimen12dp" android:text="@string/codeEditor" android:textColor="?attr/primaryTextColor" - android:textSize="18sp"/> + android:textSize="@dimen/dimen18sp" /> + android:textSize="@dimen/dimen12sp" /> @@ -179,7 +179,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:contentDescription="@string/generalImgContentText" - app:srcCompat="@drawable/ic_chevron_right"/> + app:srcCompat="@drawable/ic_chevron_right" /> @@ -187,23 +187,23 @@ android:id="@+id/securityFrame" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginBottom="5dp" + android:layout_marginBottom="@dimen/dimen6dp" android:background="?android:attr/selectableItemBackground" android:gravity="center_vertical" android:orientation="horizontal" - android:padding="15dp"> + android:padding="@dimen/dimen16dp"> + app:srcCompat="@drawable/ic_security" /> @@ -211,22 +211,22 @@ android:id="@+id/tvSecurity" android:layout_width="match_parent" android:layout_height="wrap_content" - android:paddingStart="12dp" - android:paddingEnd="12dp" + android:paddingStart="@dimen/dimen12dp" + android:paddingEnd="@dimen/dimen12dp" android:text="@string/settingsSecurityHeader" android:textColor="?attr/primaryTextColor" - android:textSize="18sp"/> + android:textSize="@dimen/dimen18sp" /> + android:textSize="@dimen/dimen12sp" /> @@ -234,7 +234,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:contentDescription="@string/generalImgContentText" - app:srcCompat="@drawable/ic_chevron_right"/> + app:srcCompat="@drawable/ic_chevron_right" /> @@ -242,23 +242,23 @@ android:id="@+id/notificationsFrame" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginBottom="5dp" + android:layout_marginBottom="@dimen/dimen6dp" android:background="?android:attr/selectableItemBackground" android:gravity="center_vertical" android:orientation="horizontal" - android:padding="15dp"> + android:padding="@dimen/dimen16dp"> + app:srcCompat="@drawable/ic_notifications" /> @@ -266,22 +266,22 @@ android:id="@+id/notificationsHeader" android:layout_width="match_parent" android:layout_height="wrap_content" - android:paddingStart="12dp" - android:paddingEnd="12dp" + android:paddingStart="@dimen/dimen12dp" + android:paddingEnd="@dimen/dimen12dp" android:text="@string/pageTitleNotifications" android:textColor="?attr/primaryTextColor" - android:textSize="18sp"/> + android:textSize="@dimen/dimen18sp" /> + android:textSize="@dimen/dimen12sp" /> @@ -289,7 +289,62 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:contentDescription="@string/generalImgContentText" - app:srcCompat="@drawable/ic_chevron_right"/> + app:srcCompat="@drawable/ic_chevron_right" /> + + + + + + + + + + + + + + + + @@ -297,23 +352,23 @@ android:id="@+id/rateAppFrame" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginBottom="5dp" + android:layout_marginBottom="@dimen/dimen6dp" android:background="?android:attr/selectableItemBackground" android:gravity="center_vertical" android:orientation="horizontal" - android:padding="15dp"> + android:padding="@dimen/dimen16dp"> + app:srcCompat="@drawable/ic_like" /> @@ -321,22 +376,22 @@ android:id="@+id/rateApp" android:layout_width="match_parent" android:layout_height="wrap_content" - android:paddingStart="12dp" - android:paddingEnd="12dp" + android:paddingStart="@dimen/dimen12dp" + android:paddingEnd="@dimen/dimen12dp" android:text="@string/navRate" android:textColor="?attr/primaryTextColor" - android:textSize="18sp"/> + android:textSize="@dimen/dimen18sp" /> + android:textSize="@dimen/dimen12sp" /> @@ -356,7 +411,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:contentDescription="@string/generalImgContentText" - app:srcCompat="@drawable/ic_info"/> + app:srcCompat="@drawable/ic_info" /> + android:textSize="@dimen/dimen18sp" /> + android:textSize="@dimen/dimen12sp" /> @@ -405,7 +460,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:contentDescription="@string/generalImgContentText" - app:srcCompat="@drawable/ic_logout"/> + app:srcCompat="@drawable/ic_logout" /> + android:textSize="@dimen/dimen18sp" /> diff --git a/app/src/main/res/values-ar-rSA/strings.xml b/app/src/main/res/values-ar-rSA/strings.xml index 5a9bfe0b..91c6194d 100644 --- a/app/src/main/res/values-ar-rSA/strings.xml +++ b/app/src/main/res/values-ar-rSA/strings.xml @@ -14,6 +14,8 @@ قضاياي المستودعات الأكثر زيارة الملاحظات + Account Settings + Watched Repositories مستودع جديد @@ -33,6 +35,7 @@ Administration طلب دمج جديد المُستخدمون + Add Repository Demo repo مثال عن الوصف @@ -43,8 +46,11 @@ وصف المستودَع خاص المالك + Issue Labels + Make repository a template اسم المنظمة وصف المنظمة + %1$s - %2$s اسم المستخدم كلمة المرور لِج @@ -60,6 +66,7 @@ اسم المستخدم مطلوب كلمة المرور مطلوبة البروتوكول مطلوب + Enter URL without http or https. Example: codeberg.org لا يمكن الوصول إلى الشبكة، رجاءً تحقق اتصالك بالإنترنت اسم المستودع فارغ اسم المستودع غير صالح. [a–z A–Z 0–9 – _] @@ -69,6 +76,7 @@ أُنشئ المستودع بنجاح يوجد مستودع بهذا الاسم للمالك المحدد فعلًا اِختر مالك المستودع + The default branch must not be empty اسم المنظمة فارغ اسم المنظمة غير صالح. [a–z A–Z 0–9 – _] تجاوز وصف المنظمة عدد الحروف الأقصى 255 حرفاً @@ -100,7 +108,6 @@ المُشتقّات أُنشئ آخر تحديث - إظهار المزيد من المعلومات المزيد من المعلومات على المرحلة %1$s @@ -180,14 +187,20 @@ تمكين حذف المسودات حذف مسودة التعليق عندما يُنشر الإعدادات العامّة - الصفحة الرئيسة، معالج الرابط الافتراضي + Home screen, drafts, crash reports معالج الرابط الافتراضي اختر الشاشة التي يجب عرضها إذا لم يستطع التطبيق التعامل مع الروابط الخارجية سيعيد توجيهك تلقائيًا إليها. - غير متاح اِختر صفحة معالج الرابط الافتراضية دعم القُفْل الحيوي أوسمة مع دعم النصوص سيؤدي تمكين هذا إلى إظهار الأوسمة التي تحوي نصاً في المشكلات وطلبات الدمج، بشكل افتراضي ستعرض نُقَطٌ ملونة + Syntax Highlighting Color + Indentation + Tabs Width + System Default Font + Tabs Animation + Fade Out + Zoom Out لا يوجد المزيد من البيانات المتاحة وسم جديد @@ -228,6 +241,7 @@ أُزيل المستودع من الفريق بنجاح إضافة المستودع %1$s لمنظمة %2$s فريق %3$s إزالة المستودع %1$s من الفريق %2$s + Add / Remove Member اسم الفريق @@ -262,15 +276,17 @@ المتابِعون المتابَعون - إضافة عنوان بريد إلكتروني - عنوان البريد الإلكتروني + + + Emails + Email Address أُضيف البريد الإلكتروني الجديد بنجاح عنوان البريد الإلكتروني فارغ عنوان البريد الإلكتروني غير صالح عنوان البريد الإلكتروني مستخدم مسبقاً أساسي - العناوين البريدية - + SSH Keys + إضافة / حذف الأوسمة حُدِّثت الأوسمة @@ -412,6 +428,10 @@ فتح في المتصفح حذف %s إعادة تعيين + BETA + None + main + License استكشاف المستخدمين استكشاف القضايا @@ -425,8 +445,7 @@ أُكتشف إصدار جديد من Gitea! يرجى تحديث GitNex! لم يُكتشف Gitea! إصدار غير مدعوم من Gitea - اسم المستخدم / كلمة المرور - اِختر طريقتك المفضلة لتسجيل الدخول للوصول لحسابك. الرمز أكثر أماناً! + Basic Auth أرجع المثيل خطأ - غير مصرح به. تحقق من بيانات تسجيل دخولك وحاول مرة أخرى الرمز مطلوب اشتقاق محذوف @@ -509,19 +528,20 @@ أُعيد تعيين العداد بنجاح أتريد إعادة تعيين عداد المستودع %s؟ سيعيد هذا تعيين جميع العدادات لمستودعات هذا الحساب. - السمات، الخطوط، الشارات + Themes, fonts, badges, translation المصادقة الحيوية، شهادات SSL، التخزين المؤقت اللغات تقارير الأعطال إذا أحببت GitNex يمكنك الإعجاب به App version, build, user instance version + Syntax color, indentation مؤرشف المستودع مؤرشف. يمكنك رؤية الملفات لكن لا يمكنك الدفع أو فتح قضية/طلب دمج. حُذف الحساب بنجاح حذف الحساب أمتأكد أنك تريد إزالة هذا الحساب من التطبيق؟\n\nسيحذف هذا جميع البيانات المتعلقة بهذا الحساب من التطبيق فقط. حساب جديد - إضافة حساب جديد + Add Account الحساب موجود في التطبيق فعلًا أُضيف الحساب بنجاح حُوُّلَ للحساب: %1$s@%2$s @@ -529,14 +549,17 @@ الإشعارات إطَّلعت على جميعها 🚀 تأخير تحديث الإشعارات - %d دقائق + 15 Minutes + 30 Minutes + 45 Minutes + 1 Hour اِختر تأخير التحديث اِختر تأخيراً بالدقائق ليحاول GitNex جلب إشعارات جديدة الوسم كمقروء الوسم كغير مقروء تثبيت وُسِمت جميع الإشعارات كمقروءة بنجاح - تأخير الطلبات، الإضاءة، الاهتزاز + Polling delay تمكين الإشعارات تمكين الإضاءة تمكين الاهتزاز @@ -553,6 +576,7 @@ You have %s new notifications You have %s new notifications + To receive notifications, you must enable notifications for GitNex. Tap Open to access your phone settings and enable notifications. مقروء غير مقروء إعدادات المستودع @@ -599,9 +623,9 @@ أُغلق طلب الدمج أُعيد فتح طلب الدمج معلومات طلب الدمج - يبدو أن الحساب للرابط %1$s غير موجود في التطبيق. يمكنك إضافة حساب بالنقر على زر إضافة حساب جديد. + It seems that the account for URI %1$s does not exist in the app. You can add one by tapping on the Add New Account button. انتقل إلى التطبيق - لا يستطيع GitNex التعامل مع الموارد المطلوبة، يمكنك فتح مشكلة في مستودع المشروع كتحسين مع توفير تفاصيل العمل. ما عليك سوى تشغيل الشاشة الافتراضية الآن من الأزرار أدناه، ويمكن تغييرها من الإعدادات. + GitNex cannot handle the requested resource. You can open an issue at the project repository as an improvement, providing details of the work. Just launch a default screen for now from the buttons below; it can be changed from settings. المصادقة الحيوية فتح القُفْل باستخدام المصادقة الحيوية لا يوجد ميزات مصادقة حيوية متوفرة في هذا الجهاز @@ -646,6 +670,8 @@ %s \u25CF not logged in Follow system (Light/Dark) Follow system (Light/Pitch Black) + Dynamic colors - Follow system (Light/Dark) + Codeberg (Dark) Fork of: %s Adopt Adopted repository %s @@ -669,7 +695,7 @@ Start taking your notes here Created %s Updated %s - Do you really want to delete this note? + Do you really want to delete this note? Notes deleted successfully Note deleted successfully @@ -680,6 +706,7 @@ This will delete all of your notes. This action cannot be undone. + commit commit %1$s added %2$s %3$s @@ -692,6 +719,7 @@ %1$s وُكِّل بواسطة %2$s %3$s %1$s أضاف إلى مرحلة %2$s %3$s %1$s أزال من مرحلة %2$s %3$s + %1$s added this to a deleted milestone %2$s %1$s أغلق قضية %2$s %1$s أعاد فتح قضية %2$s %1$s أعاد فتح طلب الدمج %2$s @@ -720,7 +748,39 @@ %1$s أشار إلى هذه القضية في #%2$d %3$s %1$s أشار إلى طلب الدمج هذا في #%2$d %3$s %3$s %4$s]]> + %1$s left a comment: %2$s %3$s + %1$s pinned this %2$s الحالات هذه الحالة ليس لها عنوان URL مستهدف مرتبط. Starred Repos + Language Statistics + Dashboard + created repository + renamed repository from %1$s to + starred + transferred repository %1$s to + created branch %1$s in + pushed to %1$s at + opened issue + commented on issue + closed issue + reopened issue + created pull request + closed pull request + reopened pull request + merged pull request + approved + suggested changes for + commented on pull request + automatically merged pull request + deleted branch %1$s at + pushed tag %1$s to + deleted tag %1$s from + released %1$s at + synced commits to %1$s at + synced new reference %1$s to + synced and deleted reference %1$s at + Attachment + Attachments + An issue was created but cannot process attachments at this time. Check the server logs for more details. diff --git a/app/src/main/res/values-cs-rCZ/strings.xml b/app/src/main/res/values-cs-rCZ/strings.xml index 33b393f2..79a54015 100644 --- a/app/src/main/res/values-cs-rCZ/strings.xml +++ b/app/src/main/res/values-cs-rCZ/strings.xml @@ -10,17 +10,19 @@ O aplikaci Ohodnotit GitNex Odhlásit se - Instance Administration - My Issues - Most Visited Repos - Notes + Administrativa instance + Moje issues + Nejnavštěvovanější repozitáře + Poznámky + Account Settings + Watched Repositories Nový repozitář Issues Nová organizace Nový milník - Nový problém + Nová issue Nový štítek Poděkování Vybrat větev @@ -30,9 +32,10 @@ Přidat e-mailovou adresu Nový soubor Prozkoumat - Administration - Nová žádost o přijetí změn + Administrace + Nový pull request Uživatelé + Přidat repozitář Demo repozitář Demo popis @@ -43,8 +46,11 @@ Popis repozitáře Soukromé Vlastník + Issue Labels + Make repository a template Název organizace Popis organizace + %1$s - %2$s Uživatelské jméno Heslo Přihlásit se @@ -52,7 +58,7 @@ Otevřít navigační menu Zavřít navigační menu Protokol - 1- Choose the correct protocol(https or http). \n2- Enter instance url e.g: try.gitea.io. \n3- If you have enabled 2FA for your account, enter the code in the OTP Code field. \n4- For HTTP basic auth use USERNAME@DOMAIN.COM in the URL field. + 1- Vyberte správný protokol (https nebo http). \n2- Zadejte URL instance např.: try.gitea.io. \n3- Pokud máte na svém účtě dvoufázové ověření, zadejte do políčka OTP kód. \n4- Pro HTTP basic auth použijte USERNAME@DOMAIN.COM v poli pro URL. Nelze se připojit k serveru. Zkontrolujte prosím URL nebo port pro případné chyby Není doporučeno používat HTTP protokol, pokud netestujete na místní síti Byl přijat chybný JSON. Odpověď od serveru nebyla úspěšná @@ -60,8 +66,9 @@ Uživatelské jméno je vyžadováno Heslo je vyžadováno Protokol je vyžadován - Nelze se přihlásit, zkontrolujte prosím vaše připojení k internetu - Název repozitáře není vyplněn + Zadejte URL bez http nebo https. Např.: codeberg.org + Nelze získat přístup k síti, zkontrolujte prosím vaše připojení k internetu + Název repozitáře je prázdný Název repositáře není platný. [a–z A–Z 0–9 – _] Název repozitáře je rezervován Název repozitáře obsahuje vyhrazená slova @@ -69,21 +76,22 @@ Repozitář byl úspěšně vytvořen Repozitář tohoto jména již existuje pod vybraným vlastníkem Zvolte vlastníka repozitáře + The default branch must not be empty Název organizace je prázdný Název organizace není platný, [a–z A–Z 0–9 – _] Popis organizace překračuje maximální limit 255 znaků Organizace byla úspěšně vytvořena Organizace již existuje - %1$s addition(s) and %2$s deletion(s) + %1$s přidáno a %2$s smazáno Zpracovávání Hledat Zavřít Přidat Avatar organizace - Repozitář + Repo Soukromý avatar Odebrat - Instance has returned an error. Code %d + Instance vrátila chybu. Kód %d Podrobnosti Soubory Milníky @@ -100,13 +108,12 @@ Forky Vytvořeno Naposledy aktualizováno - Zobrazit více informací Více informací - v(ve) + v Milník %1$s Termín do %1$s Přiřazeno uživateli %1$s - Assigned to Me + Přiřazeno mně Komentář Zadejte svůj komentář Komentář byl zveřejněn @@ -114,7 +121,7 @@ Obrázek Autor commitu: %1$s Stahování - Zveřejnil/a %1$s + Zveřejnil/a @%1$s Poznámky k verzi nejsou poskytnuty vydavatelem. Název Popis @@ -127,18 +134,18 @@ Bez popisu %1$d otevřených %1$d zavřených - Zvolit Milníky - Vybrat pověřenou osobu - Vybrat popisek + Zvolit Milník + Vybrat zpracovatele + Vybrat štítky Název - Pověřené osoby + Zpracovatelé Popis Splnit do Milník - Popisky - Název problému je prázdný + Štítky + Název issue je prázdný Popis je prázdný - Problém úspěšně vytvořen + Issue úspěšně vytvořena Žádný milník Žádný zpracovatel nenalezen @@ -147,7 +154,7 @@ Zabezpečení Odstranit důvěryhodné certifikáty Smazat důvěryhodné certifikáty? - Are you sure to delete any manually trusted certificate or hostname? \n\nYou will also be logged out. + Opravdu chcete odstranit všechny ručně povolné certifikáty nebo názevy hostitele? \n\nBudete také odhlášeni. Nastavení uloženo Jazyk Angličtina @@ -178,122 +185,131 @@ Koncepty Koncepty komentářů Povolit mazání konceptů - Smazat koncept komentáře po odeslání + Smazat koncept komentáře po zveřejnění Obecné - Výchozí zpracovatel odkazů, domovská obrazovka + Domovská stránka, koncepty, hlášení o chybách Výchozí zpracovatel odkazů - Choose what screen should be loaded if the app cannot handle external links. It will redirect you automatically. - Není k dispozici + Zvolte která obrazovka bude použita pokud aplikace nebude schopna zpracovat externí odkaz. Budete zde přesměrování automaticky. Zvolte výchozí obrazovku zpracování odkazů Biometrické odemknutí - Labels With Text Support - Enabling this will show labels with text in issues and pr lists, default are color dots + Štítky s podporou textu + Povolením tohoto se budou ukazovat štítky s textem v issues a seznamech pull requestů, výchozí jsou barevné tečky + Barva zvýraznění syntaxe + Odsazení + Šířka tabulátoru + Výchozí písmo systému + Tabs Animation + Fade Out + Zoom Out - Nejsou k dispozici žádná data + Nejsou k dispozici žádná další data Nový štítek Menu Repozitáře Název štítku Barva štítku Název štítku je prázdný Název štítku není platný - Label created - Label updated - Sestupně - Štítek byl smazán + Štítek byl vytvořen + Štítek upraven + Popis + Štítek smazán Zvolte větev k vydání Chyba ověření - It seems that the Access Token is revoked OR your are not allowed to see these contents.\n\nIn case of revoked Token, please logout and login again + Vypadá to, že přístupový token byl odepřen NEBO nemáte oprávnění vidět tento obsah.\n\nV případě odepřeného tokenu se, prosím, odhlaste a znovu přihlaste Opravdu chcete smazat tento štítek? Týmy Členové Název týmu Popis týmu - Permissions - • Members of this team do not have any permissions. - • Members of this team can view team repositories. - • Members of this team can view and push to team repositories. - • Members of this team can push to and from team repositories and add collaborators. - • Members of this team have owner permissions. - show all + Oprávnění + • Členové tohoto týmu nemají žádná oprávnění. + • Členové tohoto týmu mohou zobrazit repozitáře týmu. + • Členové tohoto týmu mohou zobrazit a pushovat do repozitářů týmu. + • Členové tohoto týmu mohou pushovat do a z repozitářů týmu a přidávat spolupracovníky. + • Členové tohoto týmu mají práva vlastníka. + zobrazit vše Členové organizace - Členové organizace - Remove %s - Add %s - Do you want to add this user to the team? - Do you want to remove this user from the team? - Member added to the team successfully - Member removed from the team successfully - Repository added to the team successfully - Repository removed from the team successfully - Add repository %1$s to organization %2$s team %3$s - Remove repository %1$s from team %2$s + Členové organizace a týmu + Odebrat %s + Přidat %s + Chcete přidat tohoto uživatele do týmu? + Chcete odebrat tohoto uživatel z týmu? + Člen byl úspěšně přidán do týmu + Člen byl úspěšně odebrán z týmu + Repozitář byl úspěšně přidán do týmu + Repozitář byl úspěšně odebrán z týmu + Přidat repozitář %1$s do organizace %2$s a týmu %3$s + Odebrat repozitář %1$s z týmu %2$s + Přidat / Odebrat člena - Team Name - Description - Permission - Access Controls - Members can view and clone team repositories - Members can read and push to team repositories - Members can pull and push to team repositories and add collaborators to them - Please enter team name - Team name should contain only alphanumeric, dash (-), underscore (_) and dot (.) characters - Please select permission - Team description have illegal characters - Team description have more than 100 characters - Team created successfully + Jméno týmu + Popis + Oprávnění + Správa přístupů + Členové mohou zobrazit a klonovat repozitáře týmu + Členové mohou zobrazit a pushovat do repozitářů týmu + Členové mohou pullovat a pushovat z a do repozitárů týmu a přidávat k nim spolupracovníky + Zadej prosím název týmu + Název týmu by měl obsahovat pouze písmena a čísla, spojovník (-), podtržítko (_) a tečku (.) + Vyberte prosím oprávnění + Popis týmu obsahuje nepovolené znaky + Popis týmu obsahuje více než 100 znaků + Tým úspěšně vytvořen - Edit Comment - Comment updated - Share Comment - Comment deleted successfully - Copy Comment + Upravit komentář + Komentář aktualizován + Sdílet komentář + Komentář úspěšně smazán + Zkopírovat komentář - Search users - Username - Remove %s? - Do you want to remove this user from the repository? - User removed from the repository. - User added to the repository. + Vyhledat uživatele + Uživatelské jméno + Odebrat %s? + Chcete odebrat tohoto uživatele z repozitáře? + Uživatel byl odebrán z repozitáře. + Uživatel byl přidán do repozitáře. - Followers - Following - Add Email Address - Email Address - New email added successfully - Email address is empty - Email address is not valid - Email address is already in use - Primary - Emails + Sledující + Sleduje + + Emails + Email Address + Nová e-mailová adresa byla úspěšně přidána + E-mailová adresa je prázdná + E-mailová adresa je neplatná + E-mailová adresa je již používána + Primární + SSH Keys + - Add / Remove Labels - Labels updated - Close Issue - Edit Issue - Znovuotevřít úkol - Úkol uzavřen - Úkol znovuotevřen - Přidat/Odebrat zpracovatele + Přidat / Odebrat štítky + Štítky upraveny + Uzavřít issue + Upravit issue + Znovu otevřít issue + Issue uzavřena + Issue znovu otevřena + Přidat / Odebrat zpracovatele Zpracovatelé aktualizováni Přihlásit k odběru Odhlásit se Metadata repozitáře - New User + Nový uživatel Systémoví uživatelé Administrátor Úlohy plánovače Plán Další spuštění Poslední spuštění - Provádění + Spuštění Úloha %1$s je úspěšně vytvořena @@ -304,16 +320,16 @@ Neplatné jméno Neplatné uživatelské jméno Neplatný e-mail - Uživatel byl úspěšně vytvořen + Uživatel byl úspěšně přidán Uživatel již existuje - Editovat úkol #%1$s - Úkol aktualizován + Editovat issue #%1$s + Issue aktualizována Nové Vydání - Jméno štítku + Název štítku Název Obsah Označit jako Před-vydání @@ -322,399 +338,443 @@ Název štítku je prázdný Název je prázdný Nové vydání vytvořeno - Do you really want to delete this release? - Release deleted + Opravdu chcete odstranit toto vydání? + Vydání smazáno - OTP kód obsahuje pouze čísla - OTP Kód (volitelně) - Vložte OTP kód, je-li povoleno 2FA + OTP kód by měl obsahovat pouze čísla + OTP Kód (volitelný) + Vložte OTP kód, je-li povoleno dvoufázové ověření Otevřít v prohlížeči - Sledující + Ti, co dali hvězdu Sledující Web nenalezen - Popise nenalezen + Popis nenalezen Místo nenalezeno Hvězda Sleduje Zdrojový kód (ZIP) - Source code (TAR.GZ) + Zdrojový kód (tar.gz) - File Name - New Branch Name - File Content - Create New File - with folder: app/test.md - Zpráva commitu - Invalid branch name, may only contain –, a–z, 0–9 + Název souboru + Název nové větve + Obsah souboru + Vytvořit soubor + se složkou: app/test.md + Commit zpráva + Nepovolený název větve, může obsahovat pouze –, a–z, 0–9 Commit zpráva je příliš dlouhá - New file created - Select or create a branch - Fields like filename, content and commit message are required - Leave blank to push to the default branch - New branch name cannot be empty if current branch is not selected - Filter - Branches + Nový soubor vytvořen + Zvolit nebo vytvořit větev + Pole název souboru, obsah a commit zpráva jsou vyžadovány + Nechte prázdné pro push do výchozí větve + Nová větev nemůže být prázdná pokud aktuální větev není vybrána + Filtr + Větve Markdown - Copy Issue URL - URL copied to clipboard - Comment copied to clipboard - SHA copied to clipboard - %1$d\uFF05 completed + Zkopírovat issue URL + URL zkopírováno do schránky + Komentář zkopírován do schránky + SHA zkopírováno do schránky + %1$d\uFF05 dokončeno - Sorry this file cannot be viewed as API returned an error - Files of this type cannot be edited - Not supported + Omlouváme se, tento soubor nemůže být zobrazen, protože API vrátilo chybu + Soubory tohoto typu nemohou být upraveny + Není podporováno OK - Done - Cancel - Something went wrong, please try again - This request needs higher version than the one installed. Please upgrade your instance to the latest version. - 🌟 Nothing in here 🌟 - Add - Remove - You are not authorized to perform this action. + Hotovo + Zrušit + Něco se pokazilo, zkuste to prosím znovu + Tento požadavek vyžaduje vyšší verzi než je ta nainstalovaná. Prosíme, aktualizujte svou instanci na nejnovější verzi. + 🌟 Tady nic není 🌟 + Přidat + Odebrat + Nejste oprávněni provést tuto akci. Menu - Edit - Delete - Copy - Quote Reply - edited - Save - Website - Location - Max 255 characters - All fields are required - Continue + Editovat + Odstranit + Zkopírovat + Citovat odpověď + upraveno + Uložit + Webová stránka + Umístění + Max 255 znaků + Všechna pole jsou povinná + Pokračovat Token - View in Browser - Open - Closed - We cannot reach the server at the moment, please check your server status and try again - Copy URL - Hold on ☕ - File + Zobrazit v prohlížeči + Otevřený + Uzavřený + Momentálně se nemůžeme dostat k serveru, prosíme, zkontrolujte stav serveru a zkuste to znovu + Zkopírovat URL + Počkejte ☕ + Soubor Issue - Label - Release + Popisek + Vydání Pull Request - Collaborator - Unstar - Watch - Unwatch - Share - Repository - Team - Organization - Add / Remove - Download - Reopen - Open in Browser - Delete %s + Spolupracovník + Odznačit + Sledovat + Přestat sledovat + Sdílet + Repozitář + Tým + Organizace + Přidat / Odebrat + Stáhnout + Znovu otevřít + Otevřít v prohlížeči + Smazat %s Reset + BETA + None + main + License - Explore users - Explore issues - Explore repositories - Repository added to starred list - Repository removed from starred list - Repository added to watch list - Repository removed from watch list - Drafts - Unsupported old version(%1$s) of Gitea detected. Please update to latest stable version. If you continue, some features may not work. - New Gitea version detected! Please UPDATE GitNex! - No Gitea detected! - Unsupported Version of Gitea - Username / Password - Choose your preferred login method to access your account. Token is more secure! - Instance has returned an error - Unauthorized. Check your credentials and try again - Token is required - Deleted Fork - Edit Pull Request #%1$s - Pull Request updated - %1$s Files Changed - %1$s File Changed - Update Pull Request - Show Changed Files - Merge Pull Request - Branch deleted successfully - Could not delete branch - Branch does not exist - Merge - Delete branch after merge - Merge may fail if you are not authorized to merge this Pull Request. - Disabled Merge button means that there are conflicts OR other things to fix before Merge - This branch belong to a forked repository - Merge comment - Pull Request was merged successfully - Pull Request is not available for merge - Merge Pull Request - Rebase and Merge - Rebase and Merge (--no-ff) - Squash and Merge - Merge Strategy - Select merge strategy - Not allowed to merge [Reason: Does not have enough approvals] - Delete Branch - Please wait for the file to load to memory - File saved successfully - This file type/size is not supported in file viewer. You can download it from the menu. - Delete This File - Edit This File - File is set for deletion by branch %1$s - Edit %1$s - File is modified by branch %1$s - Size - Share Issue - Share Repository - Create Repository - Commits - %1$s authored and %2$s committed %3$s]]> - %1$s committed %2$s]]> + Prozkoumat uživatele + Prozkoumat issues + Prozkoumat repozitáře + Repozitář přidán do oblíbených + Repozitář odebrán z oblíbených + Repozitář přidán do sledovaných + Repozitář odebrán ze sledovaných + Koncepty + Nepodporovaná stará Gitea verze(%1$s) detekována. Prosíme, aktualizujte na nejnovější stabilní verzi. Pokud budete pokračovat, některé funkce nemusí fungovat. + Nová verze Gitea detekována! Prosím, aktualizujte GitNex! + Gitea nedetekována! + Nepodporovaná verze Gitea + Basic Auth + Instance vrátila chybu - Unauthorized. Zkontrolujte prosím přihlašovací údaje a zkuste to znovu + Token je vyžadován + Smazaný fork + Upravit pull request #%1$s + Pull request aktualizován + %1$s souborů změněno + %1$s soubor změněn + Aktualizovat Pull Request + Zobrazit změněné soubory + Sloučit pull request + Větev úspěšně odstraněna + Nelze odstranit větev + Větev neexistuje + Sloučit + Odstranit větev po sloučení + Sloučení může selhat pokud nemáte oprávnění sloučit tento pull request. + Tlačítko Zakázat sloučení znamená, že jsou konflikty NEBO je nutné vyřešit jiné věci před sloučením + Tato větev patří forknutému repozitáři + Komentář k sloučení + Pull request byl úspěšně sloučen + Pull request není k dispozici ke sloučení + Sloučit pull request + Rebase a sloučit + Rebase and sloučit (--no-ff) + Squash a sloučit + Strategie pro sloučení + Zvolit strategii pro sloučení + Nepovoleno slučovat [Důvod: Nemá dostatek schválení] + Smazat větev + Počkejte prosím, než se soubor načte do paměti + Soubor byl úspěšně uložen + Tento typ/velikost souboru není v prohlíčeči souborů podporován. Můžete ho stáhnout z menu. + Odstranit tento soubor + Upravit tento soubor + Soubor je nastaven pro smazání větví %1$s + Upravit %1$s + Soubor je změněn větví %1$s + Velikost + Sdílet issue + Sdílet repozitář + Vytvořit repositář + Commity + %1$s je autorem a %2$s commitnul %3$s]]> + %1$s commitnul(a) %2$s]]> Zobrazit commity - Certificate Verification - Accept Unknown Certificate? - The server certificate is not signed by a known Certificate Authority - The server certificate is expired. - Accept Mismatching Server Name? - Server could not authenticate as \"%s\". The certificate is only valid for: - Do you want to connect anyway? - Certificate details: - Trust - Abort - Subscribed successfully - You have already subscribed + Ověření certifikátu + Přijmout neznámý certifikát? + Certifikát serveru nebyl podepsán známou Certifikační Autoritou + Certifikát serveru vypršel. + Přijmout neodpovídající jméno serveru? + Server se nemohl prokázat jako \"%s\" Certifikát je platný jen pro: + Chcete se i přesto připojit? + Detaily certifikátu: + Důvěřovat + Přerušit + Odběr úspěšně přihlášen + Jste již přihlášen k odběru Subscription failed - Unsubscribed successfully - You have already Unsubscribed + Odběr úspěšně odhlášen + Jste již odhlášeni Un-Subscription failed - Close Milestone - Open Milestone - Milestone status updated successfully - Crash Reports - Enable Crash Reports - GitNex has stopped :( - Crash reports - It is encouraged to open an issue at the project repository with how to reproduce this bug. It is easier to debug and fix the problem that way.\n\nTap the OK button to send the crash report by email instead. Additional content could be added in the email.\nThank you! - Please sign in again - Due to some major changes regarding the internal functioning of the app, we require you to login again. These changes allow us to make the app more flexible in the future.\n\nThank you for your patience and sorry for the inconvenience. - Delete All Drafts - No drafts found - Drafts deleted successfully - Draft deleted successfully - This will delete all the drafts for this account. \n\nProceed with deletion? - Draft was saved automatically. - Counter is reset successfully - Do you want to reset counter for repository %s? - This will reset all the counters for this account repositories. - Themes, fonts, badges - Biometric authentication, SSL certificates, cache - Languages - Crash reports - If you like GitNex you can give it a thumbs up - App version, build, user instance version - Archived - This repo is archived. You can view files, but cannot push or open issues/pull-requests. - Account deleted successfully - Remove Account - Are you sure you want to remove this account from the app?\n\nThis will remove all the data related to this account on the app only. - New Account - Add New Account - Account already exists in the app - Account added successfully - Switched to account : %1$s@%2$s + Zavřít milník + Otevřít milník + Stav milníku byl úspěšně aktualizován + Hlášení o chybách + Povolit nahlášení o spadnutí + GitNex se zastavil :( + Hlášení o chybách + Je dobré otevřít issue v repozitáři projektu s informací, jak bug reprodukovat. Je tak jednodušší problém identifikovat a opravit.\n\nKliknutím na tlačíko OK odešlete hlášení o chybě emailem. Další obsah může být přidán v emailu.\nDěkujeme! + Prosíme, přihlaste se znovu + Kvůli vážným změnám v interním fungování aplikace potřebujeme, abyste se přihlásili znovu. Tyto změny nám dovolují dělat v budoucnu aplikaci flexibilnější.\n\nDěkujeme za Vaši trpělivost a a omlouváme se za způsobené nepříjemnosti. + Smazat všechny koncepty + Nebyly nalezeny žádné koncepty + Koncepty úspěšně odstraněny + Koncept úspěšně odstraněn + Toto vymaže všechny koncepty tohoto účtu.\n\nChcete pokračovat k smazání? + Koncept byl automaticky uložen. + Počítadlo úspěšně resetováno + Chcete resetovat počítadlo pro repozitář %s? + Toto resetuje všechny počítadla pro repozitáře tohoto účtu. + Themes, fonts, badges, translation + Biometrické ověření, SSL certifikáty, mezipaměť + Jazyky + Hlášení o chybách + Pokud se vám GitNex líbí, můžete mu dát palec nahoru + Verze aplikace, sestavení, verze instance uživatele + Syntax color, indentation + Archivováno + Tento repozitář je archivovaný. Můžete zobrazovat soubory, ale nemůžete pushovat nebo otevírat issues/pull requesty. + Účet úspěšně smazán + Odebrat účet + Jste si jisti, že chcete z aplikace odebrat tento účet?\n\nToto odstraní všechna data spojená s tímto účtem pouze z aplikace. + Nový účet + Add Account + Účet již v aplikaci existuje + Účet úspěšně přidán + Přepnuto na účet : %1$s@%2$s - Notifications - All caught up 🚀 - Notifications Polling Delay - %d Minutes - Select Polling Delay - Choose a minutely delay in which GitNex tries to poll new notifications - Mark Read - Mark Unread - Pin - Successfully marked all notifications as read - Polling delay, light, vibration - Enable Notifications - Enable Light - Enable Vibration - Choose Color - New messages for %s - You\'ve got %d new notifications. - Notifications - This is the main notification channel of GitNex. + Oznámení + Vše aktuální 🚀 + Polling prodleva pro oznámení + 15 Minutes + 30 Minutes + 45 Minutes + 1 Hour + Zvolit polling prodlevu + Zvolte minutovou prodlevu, po které GitNex zkusí obdržet nová oznámení + Označit jako přečtené + Označit jako nepřečtené + Připnout + Úspěšně označeny všechna oznámení jako přečtená + Polling delay + Povolit oznámení + Povolit světlo + Povolit vibrace + Vybrat barvu + Nové zprávy od %s + Máte nová oznámení (%d). + Oznámení + Toto je hlavní oznamovací kanál GitNexu. - You have %s new notification - You have %s new notifications - You have %s new notifications - You have %s new notifications + Máte %s nové oznámení + Máte %s nová oznámení + Máte %s nových oznámení + Máte %s nových oznámení - Read - Unread - Repository Settings - Edit Properties - Delete Repository - Be careful, this operation CANNOT be undone! - Set as Template - Enable Issues - External Issue Tracker Url - Enable Wiki - External Wiki Url - Enable Pull Requests - Enable Time Tracker - Enable Merge Commits - Enable Rebase - Enable Squash and Merge - Enable Rebase with Merge Commits (——no-ff) - Repository properties updated successfully - Things to know before deletion:\n\n- This operation CANNOT be undone.\n- This operation will permanently delete the repository including code, issues, comments, wiki data and collaborator settings.\n\nEnter the repository name as confirmation - Repository name does not match - Repository deleted successfully - Transfer Ownership - Transfer this repository to a user or to an organization for which you have administrator rights - Things to know before transfer:\n\n- You will lose access to the repository if you transfer it to an individual user.\n- You will keep access to the repository if you transfer it to an organization that you (co-)own.\n\nEnter the repository name as confirmation - Perform Transfer - New Owner - Repository transferred successfully - New owner is required - There is a problem with the owner name. Make sure that the new owner exists - Filter Repositories - Search ONLY in Topic - Search in Description - Only Archived Repositories - Only Private Repositories - Search in Template Repositories - Merge Into - Pull From - These branches are equal. There is no need to create a pull request - Merge into branch is required - Pull from branch is required - Title is required - Pull Request created successfully - A pull request between these branches already exists - Pull Request closed - Pull Request reopened - Pull Request Info - It seems that account for URI %1$s does not exists in the app. You can add one by tapping on the Add New Account button. - Go to App - GitNex cannot handle the requested resource, you can open an issue at the project repository as an improvement with providing details of the work. Just launch a default screen for now from the buttons below, it can be changed from settings. - Biometric Authentication - Unlock using your biometric credentials - No biometric features available on this device - Biometric features are currently unavailable - Enroll biometric from phone settings - Login ID \'%s\' copied to clipboard + To receive notifications, you must enable notifications for GitNex. Tap Open to access your phone settings and enable notifications. + Přečteno + Nepřečteno + Nastavení repozitáře + Upravit vlastnosti + Smazat repozitář + Buďte opatrní, tato operace NEMŮŽE být vrácena! + Nastavit jako šablonu + Povolit Issues + Externí odkaz na Issue Tracker + Povolit Wiki + Externí odkaz na Wiki + Povolit pull requesty + Povolit sledování času + Povolit slučovací commity + Povolit rebase + Povolit squash a sloučení + Povolit rebase s merge commity (——no-ff) + Repozitář byl úspěšně aktualizován + Co byste měli vědět před odstraněním:\n\n- Tato operace je NEVRATNÁ.\n- Tato operace trvale smaže repozitář včetně kódu, issues, komentářů, dat wiki a nastavení spolupracovníků.\n\nZadejte název repozitáře pro ověření + Název repozitáře se neshoduje + Repozitář byl úspěšně smazán + Převést vlastnictví + Předejte tento repositář jinému uživateli nebo organizaci, ve které máte administrátorská práva + Co byste měli vědět před převedením:\n\n- Ztratíte přístup k repozitáři, pokud ho převedete samostatnému uživateli.\n- Zachováte si přístup k repozitáři, pokud ho převedete k organizaci, kterou (spolu)vlastníte.\n\nZadejte název repozitáře pro ověření + Provést převedení + Nový vlastník + Repozitář byl úspěšně převeden + Nový vlastník je vyžadován + Je tu problém se jménem vlastníka. Ujistěte se, že nový vlastník existuje + Filtrovat repozitáře + Hledat POUZE v Tématu + Hledat podle popisu + Jen archivované repozitáře + Jen soukromé repozitáře + Hledat v šablonových repozitářích + Sloučit do + Pull z + Tyto větve se shodují. Není potřeba vytvářet pull request + Sloučení do větve je vyžadováno + Pull z větve je vyžadován + Název je vyžadován + Pull request byl úspěšně vytvořen + Pull request mezi těmito větvemi již existuje + Pull request uzavřen + Pull request znovu otevřen + Informace o pull requestu + It seems that the account for URI %1$s does not exist in the app. You can add one by tapping on the Add New Account button. + Přejít do aplikace + GitNex cannot handle the requested resource. You can open an issue at the project repository as an improvement, providing details of the work. Just launch a default screen for now from the buttons below; it can be changed from settings. + Biometrické ověření + Přihlaste se pomocí biometriky + Biometrické funkce nejsou na tomto zařízení dostupné + Biometrické funkce jsou momentálně nedostupné + Použít biometriku z nastavení telefonu + Přihlašovací ID \'%s\' zkopírováno do schránky - Download in progress - Downloading %s - Download successful - Downloaded %s - Download failed - Couldn\'t download %s - Download manager - Indicates the progress of ongoing downloads - Updated %s - Joined - Follow - Unfollow - Unfollowed @%s - You now follow @%s - Couldn\'t unfollow user - Couldn\'t follow user - The pull request conflicts with the base branch. Please resolve the conflicts and try again. - Pull Request updated successfully - Merge + Probíhá stahování + Stahování %s + Uspěšně staženo + Staženo %s + Stažení selhalo + Stažení %s se nezdařilo + Správce stahování + Ukazuje průběh aktuálních stahování + Aktualizováno %s + Připojil(a) se + Sledovat + Přestat sledovat + Přestali jste sledovat @%s + Teď sledujete @%s + Nezdařilo se přestat sledovat uživatele + Nezdařilo se začít sledovat uživatele + Pull request má konflikt se základní větví. Prosíme, vyřešte konflikty a zkuste to znovu. + Pull request úspěšně aktualizován + Sloučit Rebase - Select Update Strategy + Zvolit strategii pro aktualizování Avatar - Tags - Releases/Tags - Create Tag Only - Tag created - Use as reference - Do you really want to delete this tag? - Tag deleted - A tag attached to a release cannot be deleted directly + Štítky + Vydání/štítky + Jen vytvořít štítek + Štítek vytvořen + Použít jako referenci + Opravdu chcete smazat tento štítek? + Štítek odstraněn + Štítek spjatý s vydáním nelze přímo odstranit Use Custom Tabs - No application found to open this link. SSH URLs and URLs with another prefix the http:// or https:// are not supported by most browser + Nebyla nalezena žádná aplikace pro otevření tohoto odkazu. SSH odkazy a URL s prefixy http:// nebo https:// nejsou většinou prohlížečů podporovány Log in again - %s \u25CF not logged in - Follow system (Light/Dark) - Follow system (Light/Pitch Black) - Fork of: %s - Adopt - Adopted repository %s - Unadopted Repositories - - Adopt will add repository %1$s to organization/user %2$s.\n- Delete will remove it from the system. - Commits + %s\u25CF není přihlášen + Podle systému (světlý/tmavý) + Podle systému (světlý/kompletně tmavý) + Dynamické barvy - podle systému (světlý/tmavý) + Codeberg (Dark) + Fork: %s + Adoptovat + Adoptován repozitář %s + Odadoptované repozitáře + - Adoptovat přidá repozitář %1$s organizaci/uživateli %2$s.\n- Smazat ji odstraní ze systému. + Commity Wiki - %1$s updated %2$s]]> - Do you really want to delete %s? - Wiki page deleted successfully - Page name and page content can\'t be empty - Create Wiki Page - Wiki page updated successfully - Wiki page created successfully + %1$s aktualizoval(a) %2$s]]> + Opravdu chcete odstranit %s? + Wiki stránka úspěšně odstraněna + Název a obsah stránky nemůže být prázdný + Vytvořit Wiki stránku + Wiki stránka úspěšně aktualizována + Wiki stránka úspěšně vytvořena - Open in Code Editor + Otevřít v editoru - New Note - Edit Note - Start taking your notes here - Created %s - Updated %s - Do you really want to delete this note? + Nová poznámka + Upravit poznámku + Tady začněte psát svoje poznámky + Vytvořeno %s + Aktualizováno %s + Do you really want to delete this note? - Note deleted successfully - Notes deleted successfully - Notes deleted successfully - Notes deleted successfully + Poznámka úspěšně odstraněna + Poznámky úspěšně odstraněny + Poznámky úspěšně odstraněny + Poznámky úspěšně odstraněny - This will delete all of your notes. This action cannot be undone. + Toto odstraní všechny vaše poznámky. Tato akce nejde vrátit. + commit commit - %1$s added %2$s %3$s + %1$s přidal(a) %2$s %3$s - %1$s added the | label %2$s + %1$s přidal(a) štítek %2$s - %1$s removed the | label %2$s - %1$s removed their assignment %2$s - %1$s was unassigned by %2$s %3$s - %1$s self-assigned this %2$s - %1$s was assigned by %2$s %3$s - %1$s added this to the %2$s milestone %3$s - %1$s removed this from the %2$s milestone %3$s - %1$s closed this issue %2$s - %1$s reopened this issue %2$s - %1$s reopened this pull request %2$s - %1$s closed this pull request %2$s - %1$s merged this pull request %2$s - %3$s %4$s]]> - %1$s requested review from %2$s %3$s - %1$s changed title from %2$s to %3$s %4$s - %1$s locked as %2$s and limited conversation to collaborators %3$s - %1$s unlocked this conversation %2$s - %1$s added a new dependency #%2$d %3$s - %1$s removed a dependency #%2$d %3$s - %1$s added this to a project %2$s - %1$s removed this from a project %2$s - %1$s added the due date %2$s %3$s - %1$s modified the due date to %2$s from %3$s %4$s - %1$s removed the due date %2$s %3$s - %1$s changed target branch from %2$s to %3$s %4$s - %1$s deleted branch %2$s %3$s - %1$s started working %2$s - %1$s stopped time tracking %2$s - %1$s cancelled time tracking %2$s - %1$s added spent time %2$s %3$s - %1$s deleted spent time %2$s %3$s - %1$s added reference %2$s %3$s - %1$s referenced this issue in #%2$d %3$s - %1$s referenced this pull request in #%2$d %3$s - %3$s %4$s]]> - Statuses - This status has no linked target URL. - Starred Repos + %1$s odebral(a) štítek %2$s + %1$s odebral(a) své přiřazení %2$s + %1$s bylo zrušeno přidělení uživatelem %2$s %3$s + %1$s přiřadil sobě %2$s + %1$s bylo přiděleno uživatelem %2$s %3$s + %1$s to přidal(a) k milníku %2$s %3$s + %1$s to odebral(a) z milníku %2$s %3$s + %1$s to přidal(a) k smazanému milníku %2$s + %1$s zavřel(a) issue %2$s + %1$s znovu otevřel(a) issue %2$s + %1$s znovu otevřel(a) tento pull request %2$s + %1$s zavřel(a) tento pull request %2$s + %1$s sloučil(a) tento pull request %2$s + %3$s %4$s]]> + %1$s vyžádal(a) posudek od %2$s %3$s + %1$s změnil(a) název z %2$s na %3$s %4$s + %1$s uzamkl(a) jako %2$s and limitoval(a) konverzaci pro spolupracovníky %3$s + %1$s odemkl(a) tuto konverzaci %2$s + %1$s přidal(a) novou závislost #%2$d %3$s + %1$s odebral(a) závislost #%2$d %3$s + %1$s přidal(a) do projektu %2$s + %1$s odebral(a) z projektu %2$s + %1$s přidal(a) termín dokončení %2$s %3$s + %1$s upravil(a) termín dokončení z %2$s na %3$s %4$s + %1$s odebral(a) termín dokončení %2$s %3$s + %1$s změnil(a) cílovou větev z %2$s na %3$s %4$s + %1$s smazal(a) větev %2$s %3$s + %1$s začal(a) pracovat %2$s + %1$s přestal(a) měřit čas %2$s + %1$s zrušil(a) měření času %2$s + %1$s přidal(a) strávený čas %2$s %3$s + %1$s smazal(a) strávený čas %2$s %3$s + %1$s přidal(a) referenci %2$s %3$s + %1$s odkázal(a) na tuto issue v #%2$d %3$s + %1$s odkázal(a) na tento pull request v #%2$d %3$s + %3$s %4$s]]> + %1$s left a comment: %2$s %3$s + %1$s pinned this %2$s + Stavy + S tímto stavem není spojena žádná URL. + Ohvězdičkované repozitáře + Statistiky jazyků + Dashboard + created repository + renamed repository from %1$s to + starred + transferred repository %1$s to + created branch %1$s in + pushed to %1$s at + opened issue + commented on issue + closed issue + reopened issue + created pull request + closed pull request + reopened pull request + merged pull request + approved + suggested changes for + commented on pull request + automatically merged pull request + deleted branch %1$s at + pushed tag %1$s to + deleted tag %1$s from + released %1$s at + synced commits to %1$s at + synced new reference %1$s to + synced and deleted reference %1$s at + Attachment + Attachments + An issue was created but cannot process attachments at this time. Check the server logs for more details. diff --git a/app/src/main/res/values-el-rGR/strings.xml b/app/src/main/res/values-el-rGR/strings.xml index e40f60f7..07cd4aeb 100644 --- a/app/src/main/res/values-el-rGR/strings.xml +++ b/app/src/main/res/values-el-rGR/strings.xml @@ -14,6 +14,8 @@ Τα ζητήματά μου Συχνά επισκεπτόμενα αποθετήρια Σημειώσεις + Account Settings + Watched Repositories Νέο αποθετήριο @@ -33,6 +35,7 @@ Administration Νέο Pull Request Χρήστες + Add Repository Demo Αποθετήριο Demo περιγραφή @@ -43,8 +46,11 @@ Περιγραφή αποθετηρίου Ιδιωτικό Ιδιοκτήτης + Issue Labels + Make repository a template Όνομα Οργανισμού Περιγραφή Οργανισμού + %1$s - %2$s Username Κωδικόs πρόσβασης ΕΙΣΟΔΟΣ @@ -60,6 +66,7 @@ Username is required Password is required Protocol is required + Enter URL without http or https. Example: codeberg.org Cannot access network, please check your Internet connection Repository name is empty Repository name is not valid. [a–z A–Z 0–9 – _] @@ -69,6 +76,7 @@ Repository created successfully Repository of this name already exists under selected Owner Select owner for the repository + The default branch must not be empty Organization name is empty Organization name is not valid, [a–z A–Z 0–9 – _] Organization description exceeds the max 255 characters limit @@ -100,7 +108,6 @@ Forks Created Last Updated - Show More Information More Information at Ορόσημο %1$s @@ -180,14 +187,20 @@ Enable Drafts Deletion Delete comment draft when comment is posted General - Home screen, default link handler + Home screen, drafts, crash reports Default Link Handler Choose what screen should be loaded if the app cannot handle external links. It will redirect you automatically. - N/A Select Default Link Handler Screen Biometric Support Labels With Text Support Enabling this will show labels with text in issues and pr lists, default are color dots + Syntax Highlighting Color + Indentation + Tabs Width + System Default Font + Tabs Animation + Fade Out + Zoom Out No more data available New Label @@ -228,6 +241,7 @@ Το αποθετήριο καταργήθηκε επιτυχώς από την ομάδα Προσθήκη αποθετηρίου %1$s στον οργανισμό %2$s στην ομάδα %3$s Κατάργηση αποθετηρίου %1$s από την ομάδα %2$s + Add / Remove Member Όνομα Ομάδας @@ -262,15 +276,17 @@ Ακόλουθοι Ακολουθείτε - Προσθήκη διεύθυνσης email - Διεύθυνση Email + + + Emails + Email Address New email added successfully Email address is empty Email address is not valid Email address is already in use Primary - Emails - + SSH Keys + Add / Remove Labels Labels updated @@ -412,6 +428,10 @@ Open in Browser Delete %s Reset + BETA + None + main + License Explore users Explore issues @@ -425,8 +445,7 @@ New Gitea version detected! Please UPDATE GitNex! No Gitea detected! Unsupported Version of Gitea - Username / Password - Choose your preferred login method to access your account. Token is more secure! + Basic Auth Instance has returned an error - Unauthorized. Check your credentials and try again Το Token είναι υποχρεωτικό Διαγραφή Fork @@ -508,19 +527,20 @@ Counter is reset successfully Do you want to reset counter for repository %s? This will reset all the counters for this account repositories. - Themes, fonts, badges + Themes, fonts, badges, translation Biometric authentication, SSL certificates, cache Languages Crash reports If you like GitNex you can give it a thumbs up App version, build, user instance version + Syntax color, indentation Archived This repo is archived. You can view files, but cannot push or open issues/pull-requests. Account deleted successfully Remove Account Are you sure you want to remove this account from the app?\n\nThis will remove all the data related to this account on the app only. New Account - Add New Account + Add Account Account already exists in the app Account added successfully Switched to account : %1$s@%2$s @@ -528,14 +548,17 @@ Notifications All caught up 🚀 Notifications Polling Delay - %d Minutes + 15 Minutes + 30 Minutes + 45 Minutes + 1 Hour Select Polling Delay Επιλέξτε μια ελάχιστη καθυστέρηση κατά την οποία το GitNex προσπαθεί να μετρήσει νέες ειδοποιήσεις Σήμανση ως αναγνωσμένο Σήμανση ως μη αναγνωσμένα Καρφίτσωμα Επιτυχής επισήμανση όλων των ειδοποιήσεων ως αναγνωσμένες - Καθυστέρηση ψηφοφορίας, φωτισμός άκρων, δόνηση + Polling delay Ενεργοποίηση Ειδοποιήσεων Ενεργοποίηση Φωτισμού Άκρων Ενεργοποίηση δόνησης @@ -548,6 +571,7 @@ Έχετε μία %s νέα ειδοποίηση Έχετε %s νέες ειδοποιήσεις + To receive notifications, you must enable notifications for GitNex. Tap Open to access your phone settings and enable notifications. Διαβασμένα Μη αναγνωσμένα Ρυθμίσεις Αποθετηρίου @@ -594,9 +618,9 @@ Pull Request closed Pull Request reopened Pull Request Info - It seems that account for URI %1$s does not exists in the app. You can add one by tapping on the Add New Account button. + It seems that the account for URI %1$s does not exist in the app. You can add one by tapping on the Add New Account button. Go to App - GitNex cannot handle the requested resource, you can open an issue at the project repository as an improvement with providing details of the work. Just launch a default screen for now from the buttons below, it can be changed from settings. + GitNex cannot handle the requested resource. You can open an issue at the project repository as an improvement, providing details of the work. Just launch a default screen for now from the buttons below; it can be changed from settings. Biometric Authentication Unlock using your biometric credentials No biometric features available on this device @@ -640,6 +664,8 @@ %s \u25CF not logged in Follow system (Light/Dark) Follow system (Light/Pitch Black) + Dynamic colors - Follow system (Light/Dark) + Codeberg (Dark) Fork of: %s Adopt Adopted repository %s @@ -663,13 +689,14 @@ Start taking your notes here Created %s Updated %s - Do you really want to delete this note? + Do you really want to delete this note? Note deleted successfully Notes deleted successfully This will delete all of your notes. This action cannot be undone. + commit commit %1$s added %2$s %3$s @@ -682,6 +709,7 @@ %1$s was assigned by %2$s %3$s %1$s added this to the %2$s milestone %3$s %1$s removed this from the %2$s milestone %3$s + %1$s added this to a deleted milestone %2$s %1$s closed this issue %2$s %1$s reopened this issue %2$s %1$s reopened this pull request %2$s @@ -710,7 +738,39 @@ %1$s referenced this issue in #%2$d %3$s %1$s referenced this pull request in #%2$d %3$s %3$s %4$s]]> + %1$s left a comment: %2$s %3$s + %1$s pinned this %2$s Statuses This status has no linked target URL. Starred Repos + Language Statistics + Dashboard + created repository + renamed repository from %1$s to + starred + transferred repository %1$s to + created branch %1$s in + pushed to %1$s at + opened issue + commented on issue + closed issue + reopened issue + created pull request + closed pull request + reopened pull request + merged pull request + approved + suggested changes for + commented on pull request + automatically merged pull request + deleted branch %1$s at + pushed tag %1$s to + deleted tag %1$s from + released %1$s at + synced commits to %1$s at + synced new reference %1$s to + synced and deleted reference %1$s at + Attachment + Attachments + An issue was created but cannot process attachments at this time. Check the server logs for more details. diff --git a/app/src/main/res/values-eo-rEO/strings.xml b/app/src/main/res/values-eo-rEO/strings.xml index 08af8f33..e4f31192 100644 --- a/app/src/main/res/values-eo-rEO/strings.xml +++ b/app/src/main/res/values-eo-rEO/strings.xml @@ -739,6 +739,7 @@ %1$s referenced this pull request in #%2$d %3$s %3$s %4$s]]> %1$s left a comment: %2$s %3$s + %1$s pinned this %2$s Statuses This status has no linked target URL. Starred Repos diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index 4ff4ef9f..ce1538f9 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -46,8 +46,11 @@ Descripción del repositorio Privado Propietario + Issue Labels + Hacer el repositorio una plantilla Nombre de la organización Descripción de la organización + %1$s - %2$s Nombre de usuario Contraseña INICIAR SESIÓN @@ -73,6 +76,7 @@ El repositorio se ha creado correctamente El nombre del repositorio ya existe en el propietario seleccionado Seleccione el propietario del repositorio + La rama por defecto no puede estar vacía El nombre de la organización está vacío El nombre de la organización es inválido. [a–z A–Z 0–9 – _] La descripción de la organización supera el límite de 255 caracteres @@ -104,7 +108,6 @@ Bifurcaciones Creado Última actualización - Mostrar más información Más información a las Hito %1$s @@ -427,6 +430,8 @@ Restablecer BETA Ninguno + main + Licencia Explorar usuarios Explorar incidencias @@ -440,8 +445,7 @@ ¡Se ha detectado una nueva versión de Gitea! ¡Por favor, ACTUALICE GitNex! ¡No se ha detectado instancia de Gitea! Versión de Gitea no compatible - Usuario / contraseña - Elige el método de inicio de sesión preferido. Por Token es la forma más segura. + Basic Auth La instancia ha respondido con un error - No autorizado. Verifique sus credenciales e inténtalo de nuevo Token necesario Bifuración eliminada @@ -536,7 +540,7 @@ Eliminar cuenta ¿Estás seguro que quieres eliminar esta cuenta de la aplicación?\n\nEsta acción va a eliminar todos los datos de la cuenta, pero sólo en esta aplicación. Nueva cuenta - Añadir nueva cuenta + Añadir Cuenta La cuenta ya existe en la aplicación Cuenta añadida con éxito Cambio de la cuenta: %1$s@%2$s @@ -544,14 +548,17 @@ Notificaciones Todo en orden 🚀 Retraso de notificaciones - %d minutos + 15 Minutos + 30 Minutos + 45 Minutos + 1 Hora Seleccionar cantidad del retraso Selecciona un retraso en minutos para que GitNex vuelva a consultar nuevas notificaciones Marcar como leído Marcar como no leído Fijar Todas las notificaciones fueron marcadas como leídas con éxito - Cantidad del retraso, luz, vibración + Polling delay Activar notificaciones Activar luz Activar vibración @@ -564,6 +571,7 @@ Tienes %s nueva notificación Tienes %s nuevas notificaciones + Para recibir notificaciones, debe habilitar las notificaciones para GitNex. Presione Abrir para acceder a los ajustes del teléfono y habilitar las notificaciones. Leer No leídos Configuración del repositorio @@ -612,7 +620,7 @@ Información de Pull Request La cuenta %1$s no existe en la aplicación. Puedes añadirla pulsando \"Añadir nueva cuenta\". Ir a la aplicación - GitNex no puede gestionar el recurso solicitado, puede abrir una incidencia en el repositorio del proyecto aportando detalles del error. Por el momento, lanza una pantalla por defecto desde los botones de abajo, se puede cambiar desde la configuración. + GitNex no puede gestionar el recurso solicitado. Puede abrir una incidencia en el repositorio del proyecto aportando detalles del error. Por el momento, lanza una pantalla por defecto desde los botones de abajo; se puede cambiar desde la configuración. Autenticación biométrica Desbloquear usando tus credenciales biométricas No se ha encontrado función biométrica en el dispositivo @@ -730,9 +738,39 @@ %1$s ha hecho referencia a esta incidencia en #%2$d %3$s %1$s ha hecho referencia a este Pull Request en #%2$d %3$s %3$s %4$s]]> + %1$s dejó un comentario: %2$s %3$s + %1$s pinned this %2$s Estados Este estado no tiene una URL de destino asociada. Repositorios favoritos Estadísticas del lenguaje Panel de Control + repositorio creado + nombre de repositorio cambiado de %1$s a + destacado + repositorio %1$s transferido a + rama %1$s creada en + enviado de %1$s en + incidencias abierta + commented on issue + incidencia cerrada + incidencia reabierta + solicitud de cambios creada + solicitud de cambios cerrada + solicitud de cambios reabierta + merged pull request + approved + suggested changes for + commented on pull request + automatically merged pull request + deleted branch %1$s at + pushed tag %1$s to + deleted tag %1$s from + released %1$s at + synced commits to %1$s at + synced new reference %1$s to + synced and deleted reference %1$s at + Attachment + Attachments + An issue was created but cannot process attachments at this time. Check the server logs for more details. diff --git a/app/src/main/res/values-fa-rIR/strings.xml b/app/src/main/res/values-fa-rIR/strings.xml index 705f4e9c..68de784d 100644 --- a/app/src/main/res/values-fa-rIR/strings.xml +++ b/app/src/main/res/values-fa-rIR/strings.xml @@ -14,6 +14,8 @@ My Issues Most Visited Repos Notes + Account Settings + Watched Repositories ایجاد مخزن جدید @@ -33,6 +35,7 @@ Administration ایجاد درخواست ادغام جدید Users + Add Repository مخزن پیش نمایشی توضیحات پیش نمایشی @@ -43,8 +46,11 @@ توضیح مخزن خصوصی مالک + Issue Labels + Make repository a template نام سازمان توضیحات سازمان + %1$s - %2$s نام کاربری گذرواژه ورود به حساب کاربری @@ -60,6 +66,7 @@ نام کاربری اجباری است گذرواژه الزامی است پروتکل الزامی است + Enter URL without http or https. Example: codeberg.org عدم دسترسی به شبکه، لطفا اتصال اینترنت خود را بررسی کنید نام مخزن خالی است نام مخزن اشتباه است. [a–z A–Z 0–9 – _] @@ -69,6 +76,7 @@ مخزن با موفقیت ساخته شد یک مخزن با این نام قبلا در لیست مخازن وجود دارد Select owner for the repository + The default branch must not be empty نام سازمان خالی است نام سازمان صحیح نیست, [a–z A–Z 0–9 – _] توضیحات سازمان از سقف 255 کاراکتر بیشتر است @@ -100,7 +108,6 @@ انشعاب‌ها ایجاد شد آخرین به‌روزرسانی - نمایش اطلاعات بیشتر اطلاعات بیشتر در نقطه عطف %1$s @@ -180,14 +187,20 @@ Enable Drafts Deletion Delete comment draft when comment is posted عمومی - Home screen, default link handler + Home screen, drafts, crash reports Default Link Handler Choose what screen should be loaded if the app cannot handle external links. It will redirect you automatically. - N/A Select Default Link Handler Screen Biometric Support Labels With Text Support Enabling this will show labels with text in issues and pr lists, default are color dots + Syntax Highlighting Color + Indentation + Tabs Width + System Default Font + Tabs Animation + Fade Out + Zoom Out اطلاعات بیشتری موجود نیست برچسب جدید @@ -228,6 +241,7 @@ Repository removed from the team successfully Add repository %1$s to organization %2$s team %3$s Remove repository %1$s from team %2$s + Add / Remove Member نام تیم @@ -262,15 +276,17 @@ دنبال کنندگان درحال دنبال کردن - افزودن رایانامه - نشانی رایانامه + + + Emails + Email Address رایانه جدید با موفقیت افزوده شد نشانی رایانامه خالی است نشانی رایانامه نامعتبر است نشانی رایانامه از قبل موجود است اصلی - ایمیل‌ها - + SSH Keys + افزودن / حذف برچسب‌ها برچسب‌ها به‌روزرسانی شدند @@ -412,6 +428,10 @@ Open in Browser Delete %s Reset + BETA + None + main + License Explore users Explore issues @@ -425,8 +445,7 @@ New Gitea version detected! Please UPDATE GitNex! هیچ Gitea تشخیص داده نشد! نگارش پشتیبانی نشده Gitea - نام کاربری / گذرواژه - Choose your preferred login method to access your account. Token is more secure! + Basic Auth Instance has returned an error - Unauthorized. Check your credentials and try again توکن الزامی است انشعاب پاک شده @@ -508,19 +527,20 @@ Counter is reset successfully Do you want to reset counter for repository %s? This will reset all the counters for this account repositories. - پوسته‌ها، فونت‌ها، نشانگرها + Themes, fonts, badges, translation Biometric authentication, SSL certificates, cache زبان‌ها گزارش‌های خرابی اگر GitNex را می‌پسندید می‌توانید به آن امتیاز دهید App version, build, user instance version + Syntax color, indentation بایگانی شده This repo is archived. You can view files, but cannot push or open issues/pull-requests. حساب کاربری با موفقیت حذف شد حذف حساب Are you sure you want to remove this account from the app?\n\nThis will remove all the data related to this account on the app only. حساب جدید - افزودن حساب جدید + Add Account Account already exists in the app حساب کاربری با موفقیت افزوده شد Switched to account : %1$s@%2$s @@ -528,14 +548,17 @@ آگاهی‌ها All caught up 🚀 Notifications Polling Delay - %d دقیقه + 15 Minutes + 30 Minutes + 45 Minutes + 1 Hour Select Polling Delay Choose a minutely delay in which GitNex tries to poll new notifications Mark Read Mark Unread Pin Successfully marked all notifications as read - Polling delay, light, vibration + Polling delay فعال‌سازی آگاهی‌ها Enable Light فعال‌سازی لرزش @@ -548,6 +571,7 @@ You have %s new notification You have %s new notifications + To receive notifications, you must enable notifications for GitNex. Tap Open to access your phone settings and enable notifications. خوانده شده خوانده نشده تنظیمات مخزن @@ -594,9 +618,9 @@ Pull Request closed Pull Request reopened Pull Request Info - It seems that account for URI %1$s does not exists in the app. You can add one by tapping on the Add New Account button. + It seems that the account for URI %1$s does not exist in the app. You can add one by tapping on the Add New Account button. برو به برنامه - GitNex cannot handle the requested resource, you can open an issue at the project repository as an improvement with providing details of the work. Just launch a default screen for now from the buttons below, it can be changed from settings. + GitNex cannot handle the requested resource. You can open an issue at the project repository as an improvement, providing details of the work. Just launch a default screen for now from the buttons below; it can be changed from settings. Biometric Authentication Unlock using your biometric credentials No biometric features available on this device @@ -640,6 +664,8 @@ %s \u25CF not logged in Follow system (Light/Dark) Follow system (Light/Pitch Black) + Dynamic colors - Follow system (Light/Dark) + Codeberg (Dark) Fork of: %s Adopt Adopted repository %s @@ -663,13 +689,14 @@ Start taking your notes here Created %s Updated %s - Do you really want to delete this note? + Do you really want to delete this note? Note deleted successfully Notes deleted successfully This will delete all of your notes. This action cannot be undone. + commit commit %1$s added %2$s %3$s @@ -682,6 +709,7 @@ %1$s was assigned by %2$s %3$s %1$s added this to the %2$s milestone %3$s %1$s removed this from the %2$s milestone %3$s + %1$s added this to a deleted milestone %2$s %1$s closed this issue %2$s %1$s reopened this issue %2$s %1$s reopened this pull request %2$s @@ -710,7 +738,39 @@ %1$s referenced this issue in #%2$d %3$s %1$s referenced this pull request in #%2$d %3$s %3$s %4$s]]> + %1$s left a comment: %2$s %3$s + %1$s pinned this %2$s Statuses This status has no linked target URL. Starred Repos + Language Statistics + Dashboard + created repository + renamed repository from %1$s to + starred + transferred repository %1$s to + created branch %1$s in + pushed to %1$s at + opened issue + commented on issue + closed issue + reopened issue + created pull request + closed pull request + reopened pull request + merged pull request + approved + suggested changes for + commented on pull request + automatically merged pull request + deleted branch %1$s at + pushed tag %1$s to + deleted tag %1$s from + released %1$s at + synced commits to %1$s at + synced new reference %1$s to + synced and deleted reference %1$s at + Attachment + Attachments + An issue was created but cannot process attachments at this time. Check the server logs for more details. diff --git a/app/src/main/res/values-fi-rFI/strings.xml b/app/src/main/res/values-fi-rFI/strings.xml index b1c10ade..961f659f 100644 --- a/app/src/main/res/values-fi-rFI/strings.xml +++ b/app/src/main/res/values-fi-rFI/strings.xml @@ -14,6 +14,8 @@ My Issues Most Visited Repos Notes + Account Settings + Watched Repositories Uusi Repo @@ -33,6 +35,7 @@ Administration New Pull Request Users + Add Repository Demo repo Demo kuvaus @@ -43,8 +46,11 @@ Repon kuvaus Yksityinen Omistaja + Issue Labels + Make repository a template Organisaation nimi Organisaation kuvaus + %1$s - %2$s Käyttäjätunnus Salasana LOGIN @@ -60,6 +66,7 @@ Username is required Password is required Protocol is required + Enter URL without http or https. Example: codeberg.org Cannot access network, please check your Internet connection Repository name is empty Repository name is not valid. [a–z A–Z 0–9 – _] @@ -69,6 +76,7 @@ Repository created successfully Repository of this name already exists under selected Owner Select owner for the repository + The default branch must not be empty Organization name is empty Organization name is not valid, [a–z A–Z 0–9 – _] Organization description exceeds the max 255 characters limit @@ -100,7 +108,6 @@ Forks Created Last Updated - Show More Information More Information at Milestone %1$s @@ -180,14 +187,20 @@ Enable Drafts Deletion Delete comment draft when comment is posted General - Home screen, default link handler + Home screen, drafts, crash reports Default Link Handler Choose what screen should be loaded if the app cannot handle external links. It will redirect you automatically. - N/A Select Default Link Handler Screen Biometric Support Labels With Text Support Enabling this will show labels with text in issues and pr lists, default are color dots + Syntax Highlighting Color + Indentation + Tabs Width + System Default Font + Tabs Animation + Fade Out + Zoom Out No more data available New Label @@ -228,6 +241,7 @@ Repository removed from the team successfully Add repository %1$s to organization %2$s team %3$s Remove repository %1$s from team %2$s + Add / Remove Member Team Name @@ -262,15 +276,17 @@ Followers Following - Add Email Address - Email Address + + + Emails + Email Address New email added successfully Email address is empty Email address is not valid Email address is already in use Primary - Emails - + SSH Keys + Add / Remove Labels Labels updated @@ -412,6 +428,10 @@ Open in Browser Delete %s Reset + BETA + None + main + License Explore users Explore issues @@ -425,8 +445,7 @@ New Gitea version detected! Please UPDATE GitNex! No Gitea detected! Unsupported Version of Gitea - Username / Password - Choose your preferred login method to access your account. Token is more secure! + Basic Auth Instance has returned an error - Unauthorized. Check your credentials and try again Token is required Deleted Fork @@ -508,19 +527,20 @@ Counter is reset successfully Do you want to reset counter for repository %s? This will reset all the counters for this account repositories. - Themes, fonts, badges + Themes, fonts, badges, translation Biometric authentication, SSL certificates, cache Languages Crash reports If you like GitNex you can give it a thumbs up App version, build, user instance version + Syntax color, indentation Archived This repo is archived. You can view files, but cannot push or open issues/pull-requests. Account deleted successfully Remove Account Are you sure you want to remove this account from the app?\n\nThis will remove all the data related to this account on the app only. New Account - Add New Account + Add Account Account already exists in the app Account added successfully Switched to account : %1$s@%2$s @@ -528,14 +548,17 @@ Notifications All caught up 🚀 Notifications Polling Delay - %d Minutes + 15 Minutes + 30 Minutes + 45 Minutes + 1 Hour Select Polling Delay Choose a minutely delay in which GitNex tries to poll new notifications Mark Read Mark Unread Pin Successfully marked all notifications as read - Polling delay, light, vibration + Polling delay Enable Notifications Enable Light Enable Vibration @@ -548,6 +571,7 @@ You have %s new notification You have %s new notifications + To receive notifications, you must enable notifications for GitNex. Tap Open to access your phone settings and enable notifications. Read Unread Repository Settings @@ -594,9 +618,9 @@ Pull Request closed Pull Request reopened Pull Request Info - It seems that account for URI %1$s does not exists in the app. You can add one by tapping on the Add New Account button. + It seems that the account for URI %1$s does not exist in the app. You can add one by tapping on the Add New Account button. Go to App - GitNex cannot handle the requested resource, you can open an issue at the project repository as an improvement with providing details of the work. Just launch a default screen for now from the buttons below, it can be changed from settings. + GitNex cannot handle the requested resource. You can open an issue at the project repository as an improvement, providing details of the work. Just launch a default screen for now from the buttons below; it can be changed from settings. Biometric Authentication Unlock using your biometric credentials No biometric features available on this device @@ -640,6 +664,8 @@ %s \u25CF not logged in Follow system (Light/Dark) Follow system (Light/Pitch Black) + Dynamic colors - Follow system (Light/Dark) + Codeberg (Dark) Fork of: %s Adopt Adopted repository %s @@ -663,13 +689,14 @@ Start taking your notes here Created %s Updated %s - Do you really want to delete this note? + Do you really want to delete this note? Note deleted successfully Notes deleted successfully This will delete all of your notes. This action cannot be undone. + commit commit %1$s added %2$s %3$s @@ -682,6 +709,7 @@ %1$s was assigned by %2$s %3$s %1$s added this to the %2$s milestone %3$s %1$s removed this from the %2$s milestone %3$s + %1$s added this to a deleted milestone %2$s %1$s closed this issue %2$s %1$s reopened this issue %2$s %1$s reopened this pull request %2$s @@ -710,7 +738,39 @@ %1$s referenced this issue in #%2$d %3$s %1$s referenced this pull request in #%2$d %3$s %3$s %4$s]]> + %1$s left a comment: %2$s %3$s + %1$s pinned this %2$s Statuses This status has no linked target URL. Starred Repos + Language Statistics + Dashboard + created repository + renamed repository from %1$s to + starred + transferred repository %1$s to + created branch %1$s in + pushed to %1$s at + opened issue + commented on issue + closed issue + reopened issue + created pull request + closed pull request + reopened pull request + merged pull request + approved + suggested changes for + commented on pull request + automatically merged pull request + deleted branch %1$s at + pushed tag %1$s to + deleted tag %1$s from + released %1$s at + synced commits to %1$s at + synced new reference %1$s to + synced and deleted reference %1$s at + Attachment + Attachments + An issue was created but cannot process attachments at this time. Check the server logs for more details. diff --git a/app/src/main/res/values-it-rIT/strings.xml b/app/src/main/res/values-it-rIT/strings.xml index 79251dee..99e4d21e 100644 --- a/app/src/main/res/values-it-rIT/strings.xml +++ b/app/src/main/res/values-it-rIT/strings.xml @@ -14,6 +14,8 @@ My Issues Most Visited Repos Notes + Account Settings + Watched Repositories Nuovo Repository @@ -33,6 +35,7 @@ Administration Nuova Pull Request Utenti + Add Repository Demo repo Descrizione demo @@ -43,8 +46,11 @@ Descrizione Repository Privato Proprietario + Issue Labels + Make repository a template Nome Organizzazione Descrizione Organizzazione + %1$s - %2$s Nome utente Password LOGIN @@ -61,6 +67,7 @@ URL è richiesto Nome utente obbligatorio Password obbligatoria Il protocollo è richiesto + Enter URL without http or https. Example: codeberg.org Errore di connessione. Controllare la connessione Internet Il nome del repository è vuoto Nome del repository non è valido. [a–z A–Z 0–char@@9 – _] @@ -70,6 +77,7 @@ URL è richiesto Il repository è stato creato Il repository di questo nome esiste già sotto il proprietario selezionato Seleziona il proprietario per il repository + The default branch must not be empty Nome organizzazione vuoto Nome organizzazione nono valido, [a–z A–Z 0–char@@9 – _] La descrizione dell\'organizzazione supera il limite massimo di 255 caratteri @@ -101,7 +109,6 @@ URL è richiesto Forks Creato Ultimo aggiornamento - Mostra Ulteriori Informazioni Ulteriori Informazioni alle Milestone %1$s @@ -181,14 +188,20 @@ URL è richiesto Abilita Eliminazione Bozze Elimina la bozza del commento quando viene pubblicato Generale - Home screen, default link handler + Home screen, drafts, crash reports Default Link Handler Choose what screen should be loaded if the app cannot handle external links. It will redirect you automatically. - N/A Select Default Link Handler Screen Sblocco biometrico Labels With Text Support Enabling this will show labels with text in issues and pr lists, default are color dots + Syntax Highlighting Color + Indentation + Tabs Width + System Default Font + Tabs Animation + Fade Out + Zoom Out Nessun altro dato disponibile Nuovo label @@ -229,6 +242,7 @@ URL è richiesto Repository removed from the team successfully Add repository %1$s to organization %2$s team %3$s Remove repository %1$s from team %2$s + Add / Remove Member Nome team @@ -264,15 +278,17 @@ autorizzazione Follower Seguendo - Aggiungi indirizzo email - Indirizzo Email + + + Emails + Email Address New email added successfully L\'indirizzo email è vuoto Indirizzo email non valido Indirizzo email già in uso Primario - Email - + SSH Keys + Aggiungi/Rimuovi label Label aggiornate @@ -414,6 +430,10 @@ autorizzazione Open in Browser Delete %s Reset + BETA + None + main + License Esplora utenti Esplora problemi @@ -427,8 +447,7 @@ autorizzazione Nuova versione di Gitea rilevata! Si prega di AGGIORNARE GitNex! Nessun Gitea rilevato! Versione non supportata di Gitea - Nome utente / Password - Scegli il tuo metodo di accesso preferito per accedere al tuo account. Il token è più sicuro! + Basic Auth L\'istanza ha restituito un errore - Non autorizzato. Controlla le tue credenziali e riprova Il token è richiesto Fork Eliminato @@ -510,19 +529,20 @@ autorizzazione Counter is reset successfully Do you want to reset counter for repository %s? This will reset all the counters for this account repositories. - Themes, fonts, badges + Themes, fonts, badges, translation Biometric authentication, SSL certificates, cache Lingue Rapporti crash If you like GitNex you can give it a thumbs up App version, build, user instance version + Syntax color, indentation Archiviato This repo is archived. You can view files, but cannot push or open issues/pull-requests. Account eliminato con successo Rimuovi l\'account Are you sure you want to remove this account from the app?\n\nThis will remove all the data related to this account on the app only. Nuovo account - Aggiungere un nuovo account + Add Account L\'account esiste già Account aggiunto con successo Switched to account : %1$s@%2$s @@ -530,14 +550,17 @@ autorizzazione Notifiche All caught up 🚀 Intervallo di ricerca notifiche - %d Minuti + 15 Minutes + 30 Minutes + 45 Minutes + 1 Hour Seleziona l\'intervallo per la ricerca Choose a minutely delay in which GitNex tries to poll new notifications Mark Read Mark Unread Pin Successfully marked all notifications as read - Polling delay, light, vibration + Polling delay Abilita le notifiche Enable Light Abilita la vibrazione @@ -550,6 +573,7 @@ autorizzazione You have %s new notification You have %s new notifications + To receive notifications, you must enable notifications for GitNex. Tap Open to access your phone settings and enable notifications. Letto Non letto Impostazioni del repository @@ -596,9 +620,9 @@ autorizzazione Pull Request closed Pull Request reopened Pull Request Info - It seems that account for URI %1$s does not exists in the app. You can add one by tapping on the Add New Account button. + It seems that the account for URI %1$s does not exist in the app. You can add one by tapping on the Add New Account button. Vai all\'App - GitNex cannot handle the requested resource, you can open an issue at the project repository as an improvement with providing details of the work. Just launch a default screen for now from the buttons below, it can be changed from settings. + GitNex cannot handle the requested resource. You can open an issue at the project repository as an improvement, providing details of the work. Just launch a default screen for now from the buttons below; it can be changed from settings. Autenticazione biometrica Unlock using your biometric credentials No biometric features available on this device @@ -642,6 +666,8 @@ autorizzazione %s \u25CF non è connesso Follow system (Light/Dark) Follow system (Light/Pitch Black) + Dynamic colors - Follow system (Light/Dark) + Codeberg (Dark) Fork of: %s Adopt Adopted repository %s @@ -665,13 +691,14 @@ autorizzazione Start taking your notes here Created %s Updated %s - Do you really want to delete this note? + Do you really want to delete this note? Note deleted successfully Notes deleted successfully This will delete all of your notes. This action cannot be undone. + commit commit %1$s added %2$s %3$s @@ -684,6 +711,7 @@ autorizzazione %1$s was assigned by %2$s %3$s %1$s added this to the %2$s milestone %3$s %1$s removed this from the %2$s milestone %3$s + %1$s added this to a deleted milestone %2$s %1$s closed this issue %2$s %1$s reopened this issue %2$s %1$s reopened this pull request %2$s @@ -712,7 +740,39 @@ autorizzazione %1$s referenced this issue in #%2$d %3$s %1$s referenced this pull request in #%2$d %3$s %3$s %4$s]]> + %1$s left a comment: %2$s %3$s + %1$s pinned this %2$s Statuses This status has no linked target URL. Starred Repos + Language Statistics + Dashboard + created repository + renamed repository from %1$s to + starred + transferred repository %1$s to + created branch %1$s in + pushed to %1$s at + opened issue + commented on issue + closed issue + reopened issue + created pull request + closed pull request + reopened pull request + merged pull request + approved + suggested changes for + commented on pull request + automatically merged pull request + deleted branch %1$s at + pushed tag %1$s to + deleted tag %1$s from + released %1$s at + synced commits to %1$s at + synced new reference %1$s to + synced and deleted reference %1$s at + Attachment + Attachments + An issue was created but cannot process attachments at this time. Check the server logs for more details. diff --git a/app/src/main/res/values-ja-rJP/strings.xml b/app/src/main/res/values-ja-rJP/strings.xml index 64776d12..9d689fc0 100644 --- a/app/src/main/res/values-ja-rJP/strings.xml +++ b/app/src/main/res/values-ja-rJP/strings.xml @@ -14,6 +14,8 @@ 自分の課題 訪問者の多いリポジトリ 注記 + Account Settings + Watched Repositories 新しいリポジトリ @@ -33,6 +35,7 @@ Administration 新規プルリクエスト ユーザー + Add Repository デモ・リポジトリ デモの説明 @@ -43,8 +46,11 @@ リポジトリの説明 プライベート 所有者 + Issue Labels + Make repository a template 組織名 組織の説明 + %1$s - %2$s ユーザ名 パスワード ログイン @@ -60,6 +66,7 @@ ユーザー名が必要です パスワードが必要です プロトコルが必要です + Enter URL without http or https. Example: codeberg.org ネットワークにアクセスできません。インターネット接続を確認してください リポジトリ名が空です リポジトリ名が無効です。[a–z A–Z 0–9 – _] @@ -69,6 +76,7 @@ リポジトリが正常に作成されました この名前のリポジトリは、選択した所有者の下にすでに存在します リポジトリの所有者を選択します + The default branch must not be empty 組織名が空です 組織名が無効です。[a–z A–Z 0–9–_] 組織の説明が最大255文字の制限を超えています @@ -100,7 +108,6 @@ フォーク 作成済み 最終更新日 - 詳細情報を表示 詳細情報 at マイルストーン %1Ss @@ -180,14 +187,20 @@ 下書き削除の有効化 コメントが投稿されたときにコメントドラフトを削除する 一般 - ホーム画面、既定のリンクハンドラ + Home screen, drafts, crash reports 既定のリンクハンドラ アプリケーションが外部リンクを処理できない場合にロードする画面を選択します。自動的にリダイレクトされます。 - N/A デフォルトリンクハンドラの選択画面 生体認証のサポート テキストサポート付きラベル これを有効にすると、問題とPRリストにテキスト付きのラベルが表示されます。デフォルトはカラードットです。 + Syntax Highlighting Color + Indentation + Tabs Width + System Default Font + Tabs Animation + Fade Out + Zoom Out これ以上のデータはありません 新規ラベル @@ -228,6 +241,7 @@ リポジトリがチームから正常に削除されました リポジトリ%1$sを組織%2$sチーム%3$sに追加 リポジトリ%1$sをチーム%2$sから削除 + Add / Remove Member チーム名 @@ -262,15 +276,17 @@ フォロワー フォロー中 - 電子メールアドレスの追加 - 電子メールアドレス + + + Emails + Email Address 新しい電子メールが正常に追加されました 電子メールアドレスが空です 電子メールアドレスが無効です 電子メールアドレスは既に使用されています プライマリ - 電子メール - + SSH Keys + ラベルを追加/削除 ラベルが更新されました @@ -412,6 +428,10 @@ ブラウザで開く %sを削除 リセット + BETA + None + main + License ユーザーの表示 課題の表示 @@ -425,8 +445,7 @@ 新しいGiteaバージョンが検出されました!GitNex最新情報をお知らせください! Giteaが検出されませんでした! サポートされていないバージョンのGitea - ユーザー名/パスワード - アカウントにアクセスするためのログイン方法を選択します。トークンはより安全です! + Basic Auth インスタンスから認証エラーが返されました。資格情報を確認して、再試行してください トークンが必要です 削除されたフォーク @@ -508,19 +527,20 @@ カウンタが正常にリセットされました リポジトリ%sのカウンタをリセットしますか? これにより、このアカウントリポジトリのすべてのカウンタがリセットされます。 - テーマ、フォント、バッジ + Themes, fonts, badges, translation 生体認証、SSL証明書、キャッシュ 言語 クラッシュレポート あなたがGitNexが好きなら、それを称賛してもいいですよ。 App version, build, user instance version + Syntax color, indentation アーカイブ済み このリポジトリはアーカイブされます。ファイルを表示することはできますが、問題/プルリクエストをプッシュまたはオープンすることはできません。 アカウントは正常に削除されました アカウントの削除 このアカウントをアプリから削除してよろしいですか?\n\nこれにより、このアカウントに関連するすべてのデータがアプリケーションからのみ削除されます。 新規アカウント - 新規アカウントの追加 + Add Account アカウントは既にアプリケーションに存在します アカウントが正常に追加されました アカウントに切り替え: %1$s@%2$s @@ -528,14 +548,17 @@ 通知 すべて確保🚀 通知確認の間隔 - %d分 + 15 Minutes + 30 Minutes + 45 Minutes + 1 Hour 通知確認の間隔を選択 GitNexが新しい通知を確認する時間間隔を選択します。 既読にマーク 未読にマーク ピン止め すべての通知を既読としてマークしました - ポーリング遅延、光、振動 + Polling delay 通知を有効にする ライトを有効化 バイブレーションを有効にする @@ -547,6 +570,7 @@ %s件の新しい通知があります + To receive notifications, you must enable notifications for GitNex. Tap Open to access your phone settings and enable notifications. 既読 未読 リポジトリ設定 @@ -593,9 +617,9 @@ プルリクエストがクローズされました プルリクエストが再オープンされました プルリクエスト情報 - URI%1$sのアカウントがアプリに存在しないようです。[新規アカウントの追加]ボタンをタップすると追加できます。 + It seems that the account for URI %1$s does not exist in the app. You can add one by tapping on the Add New Account button. アプリケーションに移動 - GitNexは要求されたリソースを処理できません。作業の詳細を提供して、プロジェクトリポジトリで改善提案として課題の登録をおねがいします。下のボタンからデフォルト画面を起動するだけで、設定から変更できます。 + GitNex cannot handle the requested resource. You can open an issue at the project repository as an improvement, providing details of the work. Just launch a default screen for now from the buttons below; it can be changed from settings. 生体認証 生体認証の資格情報を使用してロック解除する このデバイスで利用できる生体認証機能はありません @@ -639,6 +663,8 @@ %s\u25CFはログインしていません システム設定に従う(ライト/ダーク) システム設定に従う(ライト/ピッチブラック) + Dynamic colors - Follow system (Light/Dark) + Codeberg (Dark) 次のフォーク:%s 登録 リポジトリ%sを登録しました @@ -662,12 +688,13 @@ ここからノートを取り始める %sを作成しました %sを更新しました - 本当にこのノートを削除しますか? + Do you really want to delete this note? ノートは正常に削除されました すべてのノートが削除されます。この操作は元に戻せません。 + commit コミット %1$s が %2$s %3$sを追加 @@ -680,6 +707,7 @@ %1$s は、%2$s から%3$sに割り当てられました。 %1$s は、これを マイルストーン %3$sの %2$s に追加しました。 %1$s はこれをマイルストーン%3$s の %2$s から 削除しました + %1$s added this to a deleted milestone %2$s %1$s は、この課題 %2$s をクローズしました。 %1$s は、課題 %2$s を再オープンしました。 %1$s は、プルリクエスト %2$s を再オープンしました。 @@ -708,7 +736,39 @@ %1$s referenced this issue in #%2$d %3$s %1$s referenced this pull request in #%2$d %3$s %3$s %4$s]]> + %1$s left a comment: %2$s %3$s + %1$s pinned this %2$s Statuses This status has no linked target URL. Starred Repos + Language Statistics + Dashboard + created repository + renamed repository from %1$s to + starred + transferred repository %1$s to + created branch %1$s in + pushed to %1$s at + opened issue + commented on issue + closed issue + reopened issue + created pull request + closed pull request + reopened pull request + merged pull request + approved + suggested changes for + commented on pull request + automatically merged pull request + deleted branch %1$s at + pushed tag %1$s to + deleted tag %1$s from + released %1$s at + synced commits to %1$s at + synced new reference %1$s to + synced and deleted reference %1$s at + Attachment + Attachments + An issue was created but cannot process attachments at this time. Check the server logs for more details. diff --git a/app/src/main/res/values-ko-rKR/strings.xml b/app/src/main/res/values-ko-rKR/strings.xml index 50f1f5c5..9d7b55cf 100644 --- a/app/src/main/res/values-ko-rKR/strings.xml +++ b/app/src/main/res/values-ko-rKR/strings.xml @@ -14,6 +14,8 @@ My Issues Most Visited Repos Notes + Account Settings + Watched Repositories 새 저장소 @@ -33,6 +35,7 @@ Administration New Pull Request Users + Add Repository Demo repo Demo description @@ -43,8 +46,11 @@ 저장소 설명 비공개 소유자 + Issue Labels + Make repository a template 조직 이름 Organization Description + %1$s - %2$s Username Password LOGIN @@ -60,6 +66,7 @@ Username is required Password is required Protocol is required + Enter URL without http or https. Example: codeberg.org Cannot access network, please check your Internet connection Repository name is empty Repository name is not valid. [a–z A–Z 0–9 – _] @@ -69,6 +76,7 @@ Repository created successfully Repository of this name already exists under selected Owner Select owner for the repository + The default branch must not be empty Organization name is empty Organization name is not valid, [a–z A–Z 0–9 – _] Organization description exceeds the max 255 characters limit @@ -100,7 +108,6 @@ 포크 생성됨 마지막 업데이트 - 상세한 정보 보기 더 많은 정보 at Milestone %1$s @@ -180,14 +187,20 @@ Enable Drafts Deletion Delete comment draft when comment is posted General - Home screen, default link handler + Home screen, drafts, crash reports Default Link Handler Choose what screen should be loaded if the app cannot handle external links. It will redirect you automatically. - N/A Select Default Link Handler Screen Biometric Support Labels With Text Support Enabling this will show labels with text in issues and pr lists, default are color dots + Syntax Highlighting Color + Indentation + Tabs Width + System Default Font + Tabs Animation + Fade Out + Zoom Out No more data available New Label @@ -228,6 +241,7 @@ Repository removed from the team successfully Add repository %1$s to organization %2$s team %3$s Remove repository %1$s from team %2$s + Add / Remove Member Team Name @@ -262,15 +276,17 @@ Followers Following - Add Email Address - Email Address + + + Emails + Email Address New email added successfully Email address is empty Email address is not valid Email address is already in use Primary - Emails - + SSH Keys + Add / Remove Labels Labels updated @@ -412,6 +428,10 @@ Open in Browser Delete %s Reset + BETA + None + main + License Explore users Explore issues @@ -425,8 +445,7 @@ New Gitea version detected! Please UPDATE GitNex! No Gitea detected! Unsupported Version of Gitea - Username / Password - Choose your preferred login method to access your account. Token is more secure! + Basic Auth Instance has returned an error - Unauthorized. Check your credentials and try again Token is required Deleted Fork @@ -508,19 +527,20 @@ Counter is reset successfully Do you want to reset counter for repository %s? This will reset all the counters for this account repositories. - Themes, fonts, badges + Themes, fonts, badges, translation Biometric authentication, SSL certificates, cache Languages Crash reports If you like GitNex you can give it a thumbs up App version, build, user instance version + Syntax color, indentation Archived This repo is archived. You can view files, but cannot push or open issues/pull-requests. Account deleted successfully Remove Account Are you sure you want to remove this account from the app?\n\nThis will remove all the data related to this account on the app only. New Account - Add New Account + Add Account Account already exists in the app Account added successfully Switched to account : %1$s@%2$s @@ -528,14 +548,17 @@ Notifications All caught up 🚀 Notifications Polling Delay - %d Minutes + 15 Minutes + 30 Minutes + 45 Minutes + 1 Hour Select Polling Delay Choose a minutely delay in which GitNex tries to poll new notifications Mark Read Mark Unread Pin Successfully marked all notifications as read - Polling delay, light, vibration + Polling delay Enable Notifications Enable Light Enable Vibration @@ -547,6 +570,7 @@ You have %s new notifications + To receive notifications, you must enable notifications for GitNex. Tap Open to access your phone settings and enable notifications. Read Unread Repository Settings @@ -593,9 +617,9 @@ Pull Request closed Pull Request reopened Pull Request Info - It seems that account for URI %1$s does not exists in the app. You can add one by tapping on the Add New Account button. + It seems that the account for URI %1$s does not exist in the app. You can add one by tapping on the Add New Account button. Go to App - GitNex cannot handle the requested resource, you can open an issue at the project repository as an improvement with providing details of the work. Just launch a default screen for now from the buttons below, it can be changed from settings. + GitNex cannot handle the requested resource. You can open an issue at the project repository as an improvement, providing details of the work. Just launch a default screen for now from the buttons below; it can be changed from settings. Biometric Authentication Unlock using your biometric credentials No biometric features available on this device @@ -639,6 +663,8 @@ %s \u25CF not logged in Follow system (Light/Dark) Follow system (Light/Pitch Black) + Dynamic colors - Follow system (Light/Dark) + Codeberg (Dark) Fork of: %s Adopt Adopted repository %s @@ -662,12 +688,13 @@ Start taking your notes here Created %s Updated %s - Do you really want to delete this note? + Do you really want to delete this note? Notes deleted successfully This will delete all of your notes. This action cannot be undone. + commit commit %1$s added %2$s %3$s @@ -680,6 +707,7 @@ %1$s was assigned by %2$s %3$s %1$s added this to the %2$s milestone %3$s %1$s removed this from the %2$s milestone %3$s + %1$s added this to a deleted milestone %2$s %1$s closed this issue %2$s %1$s reopened this issue %2$s %1$s reopened this pull request %2$s @@ -708,7 +736,39 @@ %1$s referenced this issue in #%2$d %3$s %1$s referenced this pull request in #%2$d %3$s %3$s %4$s]]> + %1$s left a comment: %2$s %3$s + %1$s pinned this %2$s Statuses This status has no linked target URL. Starred Repos + Language Statistics + Dashboard + created repository + renamed repository from %1$s to + starred + transferred repository %1$s to + created branch %1$s in + pushed to %1$s at + opened issue + commented on issue + closed issue + reopened issue + created pull request + closed pull request + reopened pull request + merged pull request + approved + suggested changes for + commented on pull request + automatically merged pull request + deleted branch %1$s at + pushed tag %1$s to + deleted tag %1$s from + released %1$s at + synced commits to %1$s at + synced new reference %1$s to + synced and deleted reference %1$s at + Attachment + Attachments + An issue was created but cannot process attachments at this time. Check the server logs for more details. diff --git a/app/src/main/res/values-lv-rLV/strings.xml b/app/src/main/res/values-lv-rLV/strings.xml index 303968ad..9164952b 100644 --- a/app/src/main/res/values-lv-rLV/strings.xml +++ b/app/src/main/res/values-lv-rLV/strings.xml @@ -14,6 +14,8 @@ My Issues Most Visited Repos Notes + Account Settings + Watched Repositories Jauns repozitorijs @@ -33,6 +35,7 @@ Administration New Pull Request Users + Add Repository Demo repo Demo description @@ -43,8 +46,11 @@ Repository Description Privāts Īpašnieks + Issue Labels + Make repository a template Organizācijas nosaukums Organization Description + %1$s - %2$s Username Password LOGIN @@ -60,6 +66,7 @@ Username is required Password is required Protocol is required + Enter URL without http or https. Example: codeberg.org Cannot access network, please check your Internet connection Repository name is empty Repository name is not valid. [a–z A–Z 0–9 – _] @@ -69,6 +76,7 @@ Repository created successfully Repository of this name already exists under selected Owner Select owner for the repository + The default branch must not be empty Organization name is empty Organization name is not valid, [a–z A–Z 0–9 – _] Organization description exceeds the max 255 characters limit @@ -100,7 +108,6 @@ Forks Created Last Updated - Show More Information More Information at Milestone %1$s @@ -180,14 +187,20 @@ Enable Drafts Deletion Delete comment draft when comment is posted General - Home screen, default link handler + Home screen, drafts, crash reports Default Link Handler Choose what screen should be loaded if the app cannot handle external links. It will redirect you automatically. - N/A Select Default Link Handler Screen Biometric Support Labels With Text Support Enabling this will show labels with text in issues and pr lists, default are color dots + Syntax Highlighting Color + Indentation + Tabs Width + System Default Font + Tabs Animation + Fade Out + Zoom Out No more data available New Label @@ -228,6 +241,7 @@ Repository removed from the team successfully Add repository %1$s to organization %2$s team %3$s Remove repository %1$s from team %2$s + Add / Remove Member Team Name @@ -262,15 +276,17 @@ Followers Following - Add Email Address - Email Address + + + Emails + Email Address New email added successfully Email address is empty Email address is not valid Email address is already in use Primary - Emails - + SSH Keys + Add / Remove Labels Labels updated @@ -412,6 +428,10 @@ Open in Browser Delete %s Reset + BETA + None + main + License Explore users Explore issues @@ -425,8 +445,7 @@ New Gitea version detected! Please UPDATE GitNex! No Gitea detected! Unsupported Version of Gitea - Username / Password - Choose your preferred login method to access your account. Token is more secure! + Basic Auth Instance has returned an error - Unauthorized. Check your credentials and try again Token is required Deleted Fork @@ -508,19 +527,20 @@ Counter is reset successfully Do you want to reset counter for repository %s? This will reset all the counters for this account repositories. - Themes, fonts, badges + Themes, fonts, badges, translation Biometric authentication, SSL certificates, cache Languages Crash reports If you like GitNex you can give it a thumbs up App version, build, user instance version + Syntax color, indentation Archived This repo is archived. You can view files, but cannot push or open issues/pull-requests. Account deleted successfully Remove Account Are you sure you want to remove this account from the app?\n\nThis will remove all the data related to this account on the app only. New Account - Add New Account + Add Account Account already exists in the app Account added successfully Switched to account : %1$s@%2$s @@ -528,14 +548,17 @@ Notifications All caught up 🚀 Notifications Polling Delay - %d Minutes + 15 Minutes + 30 Minutes + 45 Minutes + 1 Hour Select Polling Delay Choose a minutely delay in which GitNex tries to poll new notifications Mark Read Mark Unread Pin Successfully marked all notifications as read - Polling delay, light, vibration + Polling delay Enable Notifications Enable Light Enable Vibration @@ -549,6 +572,7 @@ You have %s new notification You have %s new notifications + To receive notifications, you must enable notifications for GitNex. Tap Open to access your phone settings and enable notifications. Read Unread Repository Settings @@ -595,9 +619,9 @@ Pull Request closed Pull Request reopened Pull Request Info - It seems that account for URI %1$s does not exists in the app. You can add one by tapping on the Add New Account button. + It seems that the account for URI %1$s does not exist in the app. You can add one by tapping on the Add New Account button. Go to App - GitNex cannot handle the requested resource, you can open an issue at the project repository as an improvement with providing details of the work. Just launch a default screen for now from the buttons below, it can be changed from settings. + GitNex cannot handle the requested resource. You can open an issue at the project repository as an improvement, providing details of the work. Just launch a default screen for now from the buttons below; it can be changed from settings. Biometric Authentication Unlock using your biometric credentials No biometric features available on this device @@ -641,6 +665,8 @@ %s \u25CF not logged in Follow system (Light/Dark) Follow system (Light/Pitch Black) + Dynamic colors - Follow system (Light/Dark) + Codeberg (Dark) Fork of: %s Adopt Adopted repository %s @@ -664,7 +690,7 @@ Start taking your notes here Created %s Updated %s - Do you really want to delete this note? + Do you really want to delete this note? Notes deleted successfully Note deleted successfully @@ -672,6 +698,7 @@ This will delete all of your notes. This action cannot be undone. + commit commit %1$s added %2$s %3$s @@ -684,6 +711,7 @@ %1$s was assigned by %2$s %3$s %1$s added this to the %2$s milestone %3$s %1$s removed this from the %2$s milestone %3$s + %1$s added this to a deleted milestone %2$s %1$s closed this issue %2$s %1$s reopened this issue %2$s %1$s reopened this pull request %2$s @@ -712,7 +740,39 @@ %1$s referenced this issue in #%2$d %3$s %1$s referenced this pull request in #%2$d %3$s %3$s %4$s]]> + %1$s left a comment: %2$s %3$s + %1$s pinned this %2$s Statuses This status has no linked target URL. Starred Repos + Language Statistics + Dashboard + created repository + renamed repository from %1$s to + starred + transferred repository %1$s to + created branch %1$s in + pushed to %1$s at + opened issue + commented on issue + closed issue + reopened issue + created pull request + closed pull request + reopened pull request + merged pull request + approved + suggested changes for + commented on pull request + automatically merged pull request + deleted branch %1$s at + pushed tag %1$s to + deleted tag %1$s from + released %1$s at + synced commits to %1$s at + synced new reference %1$s to + synced and deleted reference %1$s at + Attachment + Attachments + An issue was created but cannot process attachments at this time. Check the server logs for more details. diff --git a/app/src/main/res/values-nl-rNL/strings.xml b/app/src/main/res/values-nl-rNL/strings.xml index 165ea8e2..576d9fcc 100644 --- a/app/src/main/res/values-nl-rNL/strings.xml +++ b/app/src/main/res/values-nl-rNL/strings.xml @@ -12,8 +12,10 @@ Uitloggen Instance Administration My Issues - Most Visited Repos - Notes + Meest Bezochte Repos + Notities + Account Instellingen + Watched Repositories Nieuwe Repository @@ -30,9 +32,10 @@ E-mailadres Toevoegen Nieuw Bestand Ontdek - Administration + Administratie Nieuw Pull Request - Users + Gebruikers + Voeg Repository Toe Voorbeeld repo Voorbeeld beschrijving @@ -43,8 +46,11 @@ Repository Beschrijving Privé Eigenaar + Issue Labels + Make repository a template Naam Organisatie Beschrijving Organisatie + %1$s - %2$s Gebruikersnaam Wachtwoord INLOGGEN @@ -60,6 +66,7 @@ Gebruikersnaam is vereist Wachtwoord is vereist Protocol is vereist + Enter URL without http or https. Example: codeberg.org Verbindingsfout, controleer uw internetverbinding Repository naam is leeg Repository naam is niet geldig. [a–z A–Z 0–9 – _] @@ -69,6 +76,7 @@ Repository met succes aangemaakt Er bestaat al een Repository met deze naam voor de geselecteerde Eigenaar Selecteer eigenaar van de repository + The default branch must not be empty Organisatie naam is leeg Organisatie naam is niet geldig. [a–z A–Z 0–9 – _] Organisatie beschrijving overschrijdt het limiet van 255 karakters @@ -100,13 +108,12 @@ Aantal Forks Aangemaakt Laatst Bijgewerkt - Toon Meer Informatie Meer Informatie om Mijlpaal %1$s Vervalt op %1$s Toegewezen aan: %1$s - Assigned to Me + Toegewezen aan Mij Reactie Voer uw reactie in Reactie geplaatst @@ -180,14 +187,20 @@ Activeer concept verwijdering Verwijder reactie concept wanneer reactie is geplaatst Algemeen - Beginscherm, standaard URL afhandelaar + Home screen, drafts, crash reports Standaard URL Afhandelaar Choose what screen should be loaded if the app cannot handle external links. It will redirect you automatically. - N.v.t. Selecteer Standaard URL Afhandelaar Scherm Ondersteuning voor Biometrie Labels With Text Support Enabling this will show labels with text in issues and pr lists, default are color dots + Syntax Highlighting Color + Inspringing + Tabs Width + System Default Font + Tabs Animation + Fade Out + Zoom Out Geen verdere gegevens beschikbaar Nieuw Label @@ -196,18 +209,18 @@ Label Kleur Label naam is leeg Label name is not valid - Label created - Label updated + Label aangemaakt + Label bijgewerkt Desc - Label deleted + Label verwijderd Select a branch for release Authorization Error It seems that the Access Token is revoked OR your are not allowed to see these contents.\n\nIn case of revoked Token, please logout and login again Do you really want to delete this label? Teams - Members - Team name + Leden + Teamnaam Team desc Permissions • Members of this team do not have any permissions. @@ -215,19 +228,20 @@ • Members of this team can view and push to team repositories. • Members of this team can push to and from team repositories and add collaborators. • Members of this team have owner permissions. - show all + alles weergeven Org members Organization team members - Remove %s - Add %s - Do you want to add this user to the team? - Do you want to remove this user from the team? - Member added to the team successfully - Member removed from the team successfully - Repository added to the team successfully - Repository removed from the team successfully + Verwijder %s + Voeg %s toe + Wilt u deze gebruiker toevoegen aan het team? + Wilt u deze gebruiker verwijderen uit het team? + Gebruiker succesvol aan het team toegevoegd + Gebruiker succesvol uit het team verwijderd + Repository succesvol aan het team toegevoegd + Repository succesvol uit het team verwijderd Add repository %1$s to organization %2$s team %3$s Remove repository %1$s from team %2$s + Add / Remove Member Team Name @@ -240,7 +254,7 @@ Please enter team name Team name should contain only alphanumeric, dash (-), underscore (_) and dot (.) characters Please select permission - Team description have illegal characters + Team beschrijving heeft ongeldige tekens Team beschrijving heeft meer dan 100 karakters Team met succes aangemaakt @@ -254,7 +268,7 @@ Zoek gebruikers Gebruikersnaam - Remove %s? + Verwijder %s? Wilt u deze gebruiker verwijderen van deze repository? Gebruiker verwijderd van repository. Gebruiker toegevoegd aan repository. @@ -262,15 +276,17 @@ Volgers Volgend - E-mailadres Toevoegen - E-mailadres + + + E-mails + Email Address Nieuw e-mailadres met succes toegevoegd E-mailadres is leeg E-mailadres is niet geldig E-mailadres is reeds in gebruik Primair - E-mailadressen - + SSH Keys + Toevoegen / Verwijderen Label Label bijgewerkt @@ -286,7 +302,7 @@ Repository Meta - New User + Nieuwe Gebruiker Systeemgebruikers Administrator Cron-taken @@ -299,13 +315,13 @@ Volledige Naam E-mailadres - Username - Password - Invalid Full Name - Invalid Username - Invalid Email + Gebruikersnaam + Wachtwoord + Ongeldige Volledige Naam + Ongeldige Gebruikersnaam + Ongeldige E-mail New user added successfully - User already exists + Gebruiker bestaat al Edit Issue #%1$s @@ -314,37 +330,37 @@ New Release Tag Name - Title - Content - Mark as Pre-Release - Select Branch + Titel + Inhoud + Markeer als Pre-Release + Selecteer Branch Draft - Tag name is empty - Title is empty + Tag naam is leeg + Titel is leeg New release created Do you really want to delete this release? Release deleted - OTP code should be numbers - OTP Code (Optional) - Enter otp code if 2FA is enabled + OTP code moeten nummers zijn + OTP Code (Optioneel) + Vul otp code in als 2FA is ingeschakeld Open in Browser Stargazers Watchers - No website found - No description found - No location found - Star + Geen website gevonden + Geen beschrijving gevonden + Geen locatie gevonden + Ster Watcher Source code (ZIP) Source code (TAR.GZ) - File Name - New Branch Name - File Content - Create New File - with folder: app/test.md - Commit Message + Bestandsnaam + Nieuwe Branch Naam + Inhoud Bestand + Maak Nieuw Bestand + met folder: app/test.md + Commitbericht Invalid branch name, may only contain –, a–z, 0–9 Commit message is too long New file created @@ -412,6 +428,10 @@ Open in Browser Delete %s Reset + BETA + None + main + License Explore users Explore issues @@ -425,8 +445,7 @@ New Gitea version detected! Please UPDATE GitNex! No Gitea detected! Unsupported Version of Gitea - Username / Password - Choose your preferred login method to access your account. Token is more secure! + Basic Auth Instance has returned an error - Unauthorized. Check your credentials and try again Token is required Deleted Fork @@ -508,19 +527,20 @@ Counter is reset successfully Do you want to reset counter for repository %s? This will reset all the counters for this account repositories. - Themes, fonts, badges + Themes, fonts, badges, translation Biometric authentication, SSL certificates, cache Languages Crash reports If you like GitNex you can give it a thumbs up App version, build, user instance version + Syntax color, indentation Archived This repo is archived. You can view files, but cannot push or open issues/pull-requests. Account deleted successfully Remove Account Are you sure you want to remove this account from the app?\n\nThis will remove all the data related to this account on the app only. New Account - Add New Account + Add Account Account already exists in the app Account added successfully Switched to account : %1$s@%2$s @@ -528,14 +548,17 @@ Notifications All caught up 🚀 Notifications Polling Delay - %d Minutes + 15 Minutes + 30 Minutes + 45 Minutes + 1 Hour Select Polling Delay Choose a minutely delay in which GitNex tries to poll new notifications Mark Read Mark Unread Pin Successfully marked all notifications as read - Polling delay, light, vibration + Polling delay Enable Notifications Enable Light Enable Vibration @@ -548,6 +571,7 @@ You have %s new notification You have %s new notifications + To receive notifications, you must enable notifications for GitNex. Tap Open to access your phone settings and enable notifications. Read Unread Repository Settings @@ -594,9 +618,9 @@ Pull Request closed Pull Request reopened Pull Request Info - It seems that account for URI %1$s does not exists in the app. You can add one by tapping on the Add New Account button. + It seems that the account for URI %1$s does not exist in the app. You can add one by tapping on the Add New Account button. Go to App - GitNex cannot handle the requested resource, you can open an issue at the project repository as an improvement with providing details of the work. Just launch a default screen for now from the buttons below, it can be changed from settings. + GitNex cannot handle the requested resource. You can open an issue at the project repository as an improvement, providing details of the work. Just launch a default screen for now from the buttons below; it can be changed from settings. Biometric Authentication Unlock using your biometric credentials No biometric features available on this device @@ -640,6 +664,8 @@ %s \u25CF not logged in Follow system (Light/Dark) Follow system (Light/Pitch Black) + Dynamic colors - Follow system (Light/Dark) + Codeberg (Dark) Fork of: %s Adopt Adopted repository %s @@ -663,13 +689,14 @@ Start taking your notes here Created %s Updated %s - Do you really want to delete this note? + Do you really want to delete this note? Note deleted successfully Notes deleted successfully This will delete all of your notes. This action cannot be undone. + commit commit %1$s added %2$s %3$s @@ -682,6 +709,7 @@ %1$s was assigned by %2$s %3$s %1$s added this to the %2$s milestone %3$s %1$s removed this from the %2$s milestone %3$s + %1$s added this to a deleted milestone %2$s %1$s closed this issue %2$s %1$s reopened this issue %2$s %1$s reopened this pull request %2$s @@ -710,7 +738,39 @@ %1$s referenced this issue in #%2$d %3$s %1$s referenced this pull request in #%2$d %3$s %3$s %4$s]]> + %1$s left a comment: %2$s %3$s + %1$s pinned this %2$s Statuses This status has no linked target URL. Starred Repos + Language Statistics + Dashboard + created repository + renamed repository from %1$s to + starred + transferred repository %1$s to + created branch %1$s in + pushed to %1$s at + opened issue + commented on issue + closed issue + reopened issue + created pull request + closed pull request + reopened pull request + merged pull request + approved + suggested changes for + commented on pull request + automatically merged pull request + deleted branch %1$s at + pushed tag %1$s to + deleted tag %1$s from + released %1$s at + synced commits to %1$s at + synced new reference %1$s to + synced and deleted reference %1$s at + Attachment + Attachments + An issue was created but cannot process attachments at this time. Check the server logs for more details. diff --git a/app/src/main/res/values-pl-rPL/strings.xml b/app/src/main/res/values-pl-rPL/strings.xml index 57774b71..1e2f5ca2 100644 --- a/app/src/main/res/values-pl-rPL/strings.xml +++ b/app/src/main/res/values-pl-rPL/strings.xml @@ -10,10 +10,12 @@ O programie Oceń GitNex Wyloguj się - Instance Administration + Administacja instancji Moje zgłoszenia Most Visited Repos - Notes + Notatki + Account Settings + Watched Repositories Nowe repozytorium @@ -30,9 +32,10 @@ Dodaj adres e-mail Nowy plik Przeglądaj - Administration + Administracja Nowy Pull Request Użytkownicy + Dodaj repozytorium Repozytorium demo Opis demo @@ -43,8 +46,11 @@ Opis repozytorium Prywatny Właściciel + Issue Labels + Make repository a template Nazwa organizacji Opis organizacji + %1$s - %2$s Nazwa użytkownika Hasło ZALOGUJ @@ -52,14 +58,15 @@ Otwórz szufladę nawigacji Zamknij szufladę nawigacji Protokół - 1- Choose the correct protocol(https or http). \n2- Enter instance url e.g: try.gitea.io. \n3- If you have enabled 2FA for your account, enter the code in the OTP Code field. \n4- For HTTP basic auth use USERNAME@DOMAIN.COM in the URL field. + 1- Wybierz poprawny protokół (https lub http). \n2- Wprowadź adres URL instancji np: try.gitea.io. \n3- Jeśli aktywowano 2FA dla swojego konta, wprowadź kod w polu OTP Code. \n4 - Dla podstawowej autoryzacji HTTP użyj NAZWAUŻYTKOWNIKA@STRONA.PL w polu URL. Nie można połączyć się z hostem. Sprawdź czy adres URL i port są prawidłowe - It is not recommended to use HTTP protocol unless you are testing on local network - Malformed JSON was received. Server response was not successful + Nie zaleca się używania protokołu HTTP, z wyjątkiem testowania w sieci lokalnej + Otrzymano błędne JSON. Odpowiedź serwera nie powiodła się Adres URL instancji jest wymagany Nazwa użytkownika jest wymagana Hasło jest wymagane Protokuł jest wymagany + Wprowadź adresURL bez http lub https. Przykład: codeberg.org Nie można uzyskać dostępu do sieci, sprawdź swoje połączenie internetowe Nazwa repozytorium jest pusta Nazwa repozytorium jest nieprawidłowa. [a–z A–Z 0–9 – _] @@ -69,6 +76,7 @@ Repozytorium utworzone pomyślnie Repozytorium o tej nazwie już istnieje pod wybranym właścicielem Wybierz właściciela tego repozytorium + The default branch must not be empty Nazwa organizacji jest pusta Nazwa organizacji jest nieprawidłowa, [a–z A–Z 0–9 – _] Opis organizacji przekracza limit 255 znaków @@ -83,7 +91,7 @@ Repozytorium Pri Usuń - Instance has returned an error. Code %d + Instancja zwróciła błąd. Kod %d Szczegóły Pliki Kamienie milowe @@ -100,13 +108,12 @@ Forki Utworzono Ostatnia aktualizacja - Pokaż więcej informacji Więcej informacji w Etap %1$s Termin %1$s Przypisano do: %1$s - Assigned to Me + Przypisane do mnie Komentarz Napisz swój komentarz Komentarz wysłany @@ -115,7 +122,7 @@ Autor commitu: %1$s Pobrania Opublikowane przez @%1$s - Release notes are not provided by the publisher. + Informacje o wydaniu nie zostały podane przez osobę publikującą. Tytuł Opis Termin @@ -123,7 +130,7 @@ Opis etapu przekracza limit 255 znaków Etap został utworzony pomyślnie Proszę wybrać termin - No due date + Nie ustalono terminu Brak opisu Otwarte %1$d Zamknięte %1$d @@ -153,25 +160,25 @@ Angielski Wygląd Wybierz język - Light Theme Switch Time - Dark Theme Switch Time + Czas przełączenia na jasny motyw + Czas przełączenia na ciemny motyw Wybierz format czasu Przetłumacz GitNex za pomocą Crowdin Kolor bloku kodu Wybór koloru bloku kodu Ekran główny Moje repozytoria - Select Home Screen + Wybierz ekran główny Czcionka Wybierz czcionkę Wybierz motyw aplikacji Motyw Odznaki liczników Motyw kodu źródłowego - Data Cache Size - Data Cache Size - Images Cache Size - Images Cache Size + Rozmiar pamięci podręcznej danych + Rozmiar pamięci podręcznej danych + Rozmiar pamięci podręcznej obrazów + Rozmiar pamięci podręcznej obrazów Czyść Cache Wyczyścić pamięć podręczną? This will delete all the cache data including files and images.\n\nProceed with deletion? @@ -180,14 +187,20 @@ Włącz usuwanie szkiców Delete comment draft when comment is posted Ogólne - Home screen, default link handler + Home screen, drafts, crash reports Default Link Handler Choose what screen should be loaded if the app cannot handle external links. It will redirect you automatically. - N/A Select Default Link Handler Screen Obsługa biometrii Labels With Text Support Enabling this will show labels with text in issues and pr lists, default are color dots + Syntax Highlighting Color + Indentation + Tabs Width + System Default Font + Tabs Animation + Fade Out + Zoom Out Brak dostępnych danych Nowa etykieta @@ -228,6 +241,7 @@ Repository removed from the team successfully Add repository %1$s to organization %2$s team %3$s Remove repository %1$s from team %2$s + Add / Remove Member Nazwa zespołu @@ -262,15 +276,17 @@ Obserwujący Obserwowane - Dodaj adres e-mail - Adres e-mail + + + Emails + Email Address Nowy e-mail został dodany Adres e-mail jest pusty Adres e-mail jest nieprawidłowy Adres e-mail jest już używany Podstawowy - E-maile - + SSH Keys + Dodaj / Usuń etykiety Etykiety zaktualizowane @@ -412,6 +428,10 @@ Open in Browser Delete %s Reset + BETA + None + main + License Explore users Przeglądaj zgłoszenia @@ -425,8 +445,7 @@ Wykryto nową wersję Gitea! Proszę ZAKTUALIZOWAĆ GitNex! No Gitea detected! Nieobsługiwana wersja Gitea - Nazwa użytkownika / Hasło - Wybierz preferowaną metodę logowania, aby uzyskać dostęp do swojego konta. Token jest bezpieczniejszy! + Basic Auth Instancja zwróciła błąd - nieautoryzowana. Sprawdź swoje dane i spróbuj ponownie Token is required Deleted Fork @@ -508,19 +527,20 @@ Counter is reset successfully Do you want to reset counter for repository %s? This will reset all the counters for this account repositories. - Themes, fonts, badges + Themes, fonts, badges, translation Biometric authentication, SSL certificates, cache Languages Crash reports If you like GitNex you can give it a thumbs up App version, build, user instance version + Syntax color, indentation Archived This repo is archived. You can view files, but cannot push or open issues/pull-requests. Account deleted successfully Usuń Konto Are you sure you want to remove this account from the app?\n\nThis will remove all the data related to this account on the app only. Nowe Konto - Dodaj Nowe Konto + Add Account Account already exists in the app Pomyślnie dodano konto Switched to account : %1$s@%2$s @@ -528,14 +548,17 @@ Powiadomienia All caught up 🚀 Notifications Polling Delay - %d Minut(y) + 15 Minutes + 30 Minutes + 45 Minutes + 1 Hour Select Polling Delay Choose a minutely delay in which GitNex tries to poll new notifications Mark Read Mark Unread Pin Successfully marked all notifications as read - Polling delay, light, vibration + Polling delay Włącz powiadomienia Enable Light Włącz Wibracje @@ -550,6 +573,7 @@ You have %s new notifications You have %s new notifications + To receive notifications, you must enable notifications for GitNex. Tap Open to access your phone settings and enable notifications. Odczytane Nieodczytane Ustawienia Repozytorium @@ -596,9 +620,9 @@ Pull Request closed Pull Request reopened Pull Request Info - It seems that account for URI %1$s does not exists in the app. You can add one by tapping on the Add New Account button. + It seems that the account for URI %1$s does not exist in the app. You can add one by tapping on the Add New Account button. Go to App - GitNex cannot handle the requested resource, you can open an issue at the project repository as an improvement with providing details of the work. Just launch a default screen for now from the buttons below, it can be changed from settings. + GitNex cannot handle the requested resource. You can open an issue at the project repository as an improvement, providing details of the work. Just launch a default screen for now from the buttons below; it can be changed from settings. Biometric Authentication Unlock using your biometric credentials No biometric features available on this device @@ -642,6 +666,8 @@ %s \u25CF not logged in Follow system (Light/Dark) Follow system (Light/Pitch Black) + Dynamic colors - Follow system (Light/Dark) + Codeberg (Dark) Fork of: %s Adopt Adopted repository %s @@ -665,7 +691,7 @@ Start taking your notes here Created %s Updated %s - Do you really want to delete this note? + Do you really want to delete this note? Note deleted successfully Notes deleted successfully @@ -674,6 +700,7 @@ This will delete all of your notes. This action cannot be undone. + commit commit %1$s added %2$s %3$s @@ -686,6 +713,7 @@ %1$s was assigned by %2$s %3$s %1$s added this to the %2$s milestone %3$s %1$s removed this from the %2$s milestone %3$s + %1$s added this to a deleted milestone %2$s %1$s closed this issue %2$s %1$s reopened this issue %2$s %1$s reopened this pull request %2$s @@ -714,7 +742,39 @@ %1$s referenced this issue in #%2$d %3$s %1$s referenced this pull request in #%2$d %3$s %3$s %4$s]]> + %1$s left a comment: %2$s %3$s + %1$s pinned this %2$s Statuses This status has no linked target URL. Starred Repos + Language Statistics + Dashboard + created repository + renamed repository from %1$s to + starred + transferred repository %1$s to + created branch %1$s in + pushed to %1$s at + opened issue + commented on issue + closed issue + reopened issue + created pull request + closed pull request + reopened pull request + merged pull request + approved + suggested changes for + commented on pull request + automatically merged pull request + deleted branch %1$s at + pushed tag %1$s to + deleted tag %1$s from + released %1$s at + synced commits to %1$s at + synced new reference %1$s to + synced and deleted reference %1$s at + Attachment + Attachments + An issue was created but cannot process attachments at this time. Check the server logs for more details. diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index b11978bd..b72ab4a8 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -10,10 +10,12 @@ Sobre Avalie o GitNex Sair - Instance Administration + Administração da Instância Meus Issues - Most Visited Repos - Notes + Repositórios Mais Visitados + Anotações + Account Settings + Watched Repositories Novo repositório @@ -30,9 +32,10 @@ Adicionar endereço de E-mail Novo arquivo Explorar - Administration + Administração Novo Pull Request Usuários + Adicionar Repositório Repo demo Descrição demo @@ -43,8 +46,11 @@ Descrição do repositório Privado Proprietário + Issue Labels + Make repository a template Nome da organização Descrição da organização + %1$s - %2$s Usuário Senha ENTRAR @@ -52,7 +58,7 @@ Abrir painel de navegação Fechar painel de navegação Protocolo - 1- Choose the correct protocol(https or http). \n2- Enter instance url e.g: try.gitea.io. \n3- If you have enabled 2FA for your account, enter the code in the OTP Code field. \n4- For HTTP basic auth use USERNAME@DOMAIN.COM in the URL field. + 1- Selecione o protocolo correto (https ou http).\n2- Insira a URL da instância, p. ex.: try.gitea.io.\n3- Se você habilitou autenticação de dois fatores (2FA) na sua conta, insira o código no campo OTP.\n4- Para autenticação HTTP básica, use USERNAME@DOMAIN.COM no campo URL. Não foi possível conectar-se ao host. Por favor verifique sua URL ou porta para ver se há algum erro Não é recomendado usar o protocolo HTTP a menos que você esteja testando na rede local JSON malformado foi recebido. A resposta do servidor não foi bem sucedida @@ -60,21 +66,24 @@ Nome de usuário é necessário A senha é necessária Necessário especificar o protocolo - Não é possível acessar a rede, por favor, verifique sua conexão com a Internet + Insira a URL, sem http ou https. +Exemplo: codeberg.org + Não é possível acessar a rede. Por favor, verifique sua conexão com a Internet Nome do repositório está vazio - O nome do repositório não é válido. [um–z A–Z 0–9 – _] + O nome do repositório não é válido. [a–z A–Z 0–9 – _] O nome do repositório está reservado Nome do repositório contém palavras-chave reservadas Descrição do repositório excede o limite máximo de 255 caracteres Repositório criado com êxito Um repositório com este nome já existe sob o proprietário selecionado Selecione o proprietário do repositório + The default branch must not be empty O nome da organização está vazio O nome da organização não é válido, [–z A–Z 0–9 – _] Descrição da organização excede o limite máximo de 255 caracteres Organização criada com sucesso Organização já existe - %1$s addition(s) and %2$s deletion(s) + %1$s inclusão(ões) e %2$s exclusão(ões) Processando Pesquisar Fechar @@ -100,7 +109,6 @@ Forks Criado Última atualização - Mostrar Mais Informações Mais informações em Meta %1$s @@ -108,9 +116,9 @@ Atribuído a: %1$s Atribuídos a mim Comentar - Por favor escreva o seu comentário + Por favor, deixe seu comentário Comentário publicado - Esta funcionalidade será removida no futuro + Esta funcionalidade será removida futuramente Imagem Autor do commit: %1$s Downloads @@ -127,7 +135,7 @@ Sem descrição %1$d Aberto %1$d Fechado - Selecionar marco (milestone) + Selecionar marco Selecionar designados Selecionar marcadores Título @@ -147,16 +155,16 @@ Segurança Excluir Certificados Confiáveis Excluir Certificados Confiáveis? - Are you sure to delete any manually trusted certificate or hostname? \n\nYou will also be logged out. + Tem certeza que deseja excluir quaisquer dos certificados ou hostnames manualmente confiados? \n\nVocê também será desconectado. Configurações salvas Idioma Português (Brasil) Aparência Escolha o idioma - Light Theme Switch Time - Dark Theme Switch Time - Escolha o formato da hora - Translate GitNex via Crowdin + Horário de Mudança para o Tema Claro + Horário de Mudança para o Tema Escuro + Escolha o Formato de Hora + Traduza o Gitnex com Crowdin Cor do bloco de código Seletor de cores do bloco de código Tela inicial @@ -180,14 +188,20 @@ Ativar exclusão de rascunhos Excluir rascunho de comentário quando um comentário é postado Geral - Home screen, default link handler - Default Link Handler - Choose what screen should be loaded if the app cannot handle external links. It will redirect you automatically. - N/A + Tela inicial, rascunhos e relatórios de falha + Manipulador de Links Padrão + Escolha a tela a ser carregada automaticamente caso o aplicativo não possa abrir links externos. Select Default Link Handler Screen Biometric Support Labels With Text Support Enabling this will show labels with text in issues and pr lists, default are color dots + Cor do Realce de Sintaxe + Indentação + Tabs Width + Fonte Padrão + Tabs Animation + Fade Out + Zoom Out Não há mais dados disponíveis Novo marcador @@ -196,22 +210,22 @@ Cor do marcador Nome do marcador está vazio Nome do marcador é inválido - Label created - Label updated + Rótulo criado + Rótulo atualizado Descrição Marcador excluído Select a branch for release Erro de autorização - It seems that the Access Token is revoked OR your are not allowed to see these contents.\n\nIn case of revoked Token, please logout and login again + Parece que o Token de Acesso foi revogado OU você não está autorizado a ver esses conteúdos.\n\nNo caso de Token revogado, faça o logout e login de novo Você realmente deseja excluir este marcador? Equipes Membros Nome da equipe Descrição da equipe - Permissions + Permissões • Members of this team do not have any permissions. - • Members of this team can view team repositories. + Membros podem ver os repositórios da equipe. • Members of this team can view and push to team repositories. • Members of this team can push to and from team repositories and add collaborators. • Members of this team have owner permissions. @@ -228,6 +242,7 @@ Repository removed from the team successfully Add repository %1$s to organization %2$s team %3$s Remove repository %1$s from team %2$s + Add / Remove Member Nome da equipe @@ -262,15 +277,17 @@ Seguidores Seguindo - Adicionar endereço de e-mail - Endereço de e-mail + + + Emails + Email Address Novo e-mail adicionado com êxito O endereço de e-mail está vazio Endereço de e-mail inválido O endereço de e-mail já está em uso Principal - E-mails - + SSH Keys + Adicionar/Remover marcadores Marcadores atualizados @@ -327,7 +344,7 @@ O código OTP deve ter apenas números Código OTP (Opcional) - Insira o código de otp se a 2FA estiver ativada + Insira o código OTP se a 2FA estiver ativada Abrir no Navegador Usuários que favoritaram Observadores @@ -412,6 +429,10 @@ Abrir no Navegador Delete %s Reset + BETA + None + main + License Explore users Explore issues @@ -425,8 +446,7 @@ Nova versão do Gitea detectada! Por favor, ATUALIZE o GitNex! Gitea não detectado! Versão do Gitea não suportada - Usuário e senha - Escolha seu método de login preferido para acessar sua conta. O token é mais seguro! + Basic Auth A instância retornou um erro - Não autorizado. Verifique suas credenciais e tente novamente Token é obrigatório Fork excluído @@ -508,19 +528,20 @@ Counter is reset successfully Do you want to reset counter for repository %s? This will reset all the counters for this account repositories. - Themes, fonts, badges + Themes, fonts, badges, translation Biometric authentication, SSL certificates, cache Idiomas Relatórios de erros Se você gosta do GitNex você pode dar um joinha App version, build, user instance version + Syntax color, indentation Arquivado This repo is archived. You can view files, but cannot push or open issues/pull-requests. Conta excluída com êxito Excluir Conta Are you sure you want to remove this account from the app?\n\nThis will remove all the data related to this account on the app only. Nova Conta - Adicionar Nova Conta + Add Account Esta conta já existe no app Conta adicionada com êxito Alterado para a conta : %1$s@%2$s @@ -528,14 +549,17 @@ Notificações All caught up 🚀 Atraso da Enquete das Notificações - %d Minutos + 15 Minutes + 30 Minutes + 45 Minutes + 1 Hour Selecionar atraso da votação Escolha um atraso no qual o GitNex tenta fazer pesquisa de novas notificações Marcar como lido Marcar como não lido Fixar Todas as notificações marcadas como lidas - Polling delay, light, vibration + Polling delay Enable Notifications Enable Light Enable Vibration @@ -548,6 +572,7 @@ You have %s new notification You have %s new notifications + To receive notifications, you must enable notifications for GitNex. Tap Open to access your phone settings and enable notifications. Lida Não Lida Configurações do repositório @@ -594,9 +619,9 @@ Pull Request closed Pull Request reopened Pull Request Info - It seems that account for URI %1$s does not exists in the app. You can add one by tapping on the Add New Account button. + It seems that the account for URI %1$s does not exist in the app. You can add one by tapping on the Add New Account button. Ir para o Aplicativo - GitNex cannot handle the requested resource, you can open an issue at the project repository as an improvement with providing details of the work. Just launch a default screen for now from the buttons below, it can be changed from settings. + GitNex cannot handle the requested resource. You can open an issue at the project repository as an improvement, providing details of the work. Just launch a default screen for now from the buttons below; it can be changed from settings. Biometric Authentication Unlock using your biometric credentials No biometric features available on this device @@ -640,6 +665,8 @@ %s \u25CF not logged in Follow system (Light/Dark) Follow system (Light/Pitch Black) + Dynamic colors - Follow system (Light/Dark) + Codeberg (Dark) Fork of: %s Adopt Adopted repository %s @@ -663,13 +690,14 @@ Start taking your notes here Created %s Updated %s - Do you really want to delete this note? + Do you really want to delete this note? Note deleted successfully Notes deleted successfully This will delete all of your notes. This action cannot be undone. + commit commit %1$s added %2$s %3$s @@ -682,6 +710,7 @@ %1$s was assigned by %2$s %3$s %1$s added this to the %2$s milestone %3$s %1$s removed this from the %2$s milestone %3$s + %1$s added this to a deleted milestone %2$s %1$s closed this issue %2$s %1$s reopened this issue %2$s %1$s reopened this pull request %2$s @@ -710,7 +739,39 @@ %1$s referenced this issue in #%2$d %3$s %1$s referenced this pull request in #%2$d %3$s %3$s %4$s]]> + %1$s left a comment: %2$s %3$s + %1$s pinned this %2$s Statuses This status has no linked target URL. Starred Repos + Language Statistics + Dashboard + created repository + renamed repository from %1$s to + starred + transferred repository %1$s to + created branch %1$s in + pushed to %1$s at + opened issue + commented on issue + closed issue + reopened issue + created pull request + closed pull request + reopened pull request + merged pull request + approved + suggested changes for + commented on pull request + automatically merged pull request + deleted branch %1$s at + pushed tag %1$s to + deleted tag %1$s from + released %1$s at + synced commits to %1$s at + synced new reference %1$s to + synced and deleted reference %1$s at + Attachment + Attachments + An issue was created but cannot process attachments at this time. Check the server logs for more details. diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index 7303ddf4..7a04dc30 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -10,10 +10,12 @@ О программе Оценить GitNex Выход - Instance Administration + Администрирование экземпляра Мои вопросы - Most Visited Repos - Notes + Самые посещаемые репозитории + Примечания + Настройки учетной записи + Просматриваемые репозитории Создать репозиторий @@ -30,9 +32,10 @@ Добавить адрес эл. почты Новый файл Обзор - Administration + Администрация Новый запрос на слияние Пользователи + Добавить репозиторий Демо репозиторий Демо описание @@ -43,8 +46,11 @@ Описание репозитория Приватный Владелец + Тикеты + Сделать репозиторий шаблоном Имя организации Описание организации + %1$s - %2$s Имя пользователя Пароль Войти @@ -52,7 +58,7 @@ Открыть навигацию Закрыть навигацию Протокол - 1- Choose the correct protocol(https or http). \n2- Enter instance url e.g: try.gitea.io. \n3- If you have enabled 2FA for your account, enter the code in the OTP Code field. \n4- For HTTP basic auth use USERNAME@DOMAIN.COM in the URL field. + 1. Выберите протокол (https или http) \n2. Укажите URL Gitea, например: try.gitea.io \n3. Если для учетной записи включена 2FA, введите код OTP в соответствующее поле. \n4. Для базовой аутентификации HTTP укажите USERNAME@DOMAIN.COM в поле URL. Не удалось подключиться к хосту. Пожалуйста, проверьте URL-адрес или порт на наличие ошибок Не рекомендуется использовать протокол HTTP, если вы не тестируете в локальной сети Получен искаженный JSON. Ответ сервера не был успешным @@ -60,6 +66,7 @@ Требуется имя пользователя Требуется пароль Требуется протокол + Введите URL без http или https. Пример: codeberg.org Нет подключения к интернету, проверьте наличие связи. Название репозитория пустое. Недоступное название репозитория. [a–z A–Z 0–9 – _] @@ -69,12 +76,13 @@ Репозиторий успешно создан! Репозиторий с таким именему уже существует у выбранного владельца Выбрать владельца репозитория + Ветка по умолчанию не должна быть пустой Название организации пустое. Недоступное название организации. [a–z A–Z 0–9 – _] Описание организации превышает 255 символов. Организация успешно создана! Организация уже существует - %1$s addition(s) and %2$s deletion(s) + %1$s добавлен(о) и %2$s удален(о) Обработка Поиск Закрыть @@ -83,7 +91,7 @@ Реп. Лич. Удалить - Instance has returned an error. Code %d + Экземпляр вернул ошибку. Код %d Информация Файлы Этапы @@ -91,7 +99,7 @@ Ветки Соавторы Запросы на слияние - Pull Request + Запрос на извлечение Размер Ветка по умолчанию SSH/URL @@ -100,13 +108,12 @@ Кол-во форков Создан Последнее обновление - Показать больше информации Больше информации в Вехи %1$s Срок до %1$s Назначено: %1$s - Assigned to Me + Назначено мне Комментарий Введите свой комментарий. Комментарий отправлен! @@ -147,7 +154,7 @@ Безопасность Удалить доверенные сертификаты Удалить доверенные сертификаты? - Are you sure to delete any manually trusted certificate or hostname? \n\nYou will also be logged out. + Вы уверены, что хотите удалить любой вручную доверенный сертификат или имя хоста? \n\nВы также выйдите из системы. Сохранено Язык Английский @@ -180,14 +187,20 @@ Включить удаление черновиков Удалить черновик комментария при публикации комментария Общее - Домашний экран, обработчик ссылок по умолчанию + Главный экран, черновики, отчеты о сбоях Обработчик ссылок по умолчанию - Choose what screen should be loaded if the app cannot handle external links. It will redirect you automatically. - Н/Д + Выберите, какой экран следует загрузить, если приложение не может обрабатывать внешние ссылки. Он автоматически перенаправит вас. Выбрать экран обработчика ссылок по умолчанию Поддержка биометрии - Labels With Text Support - Enabling this will show labels with text in issues and pr lists, default are color dots + Ярлыки с поддержкой текста + Включение этого параметра будет показывать метки с текстом в списках задач и списках запросов на слияние, по умолчанию — это цветовые точки + Цвет выделения синтаксиса + Отступы + Ширина вкладок + Системный шрифт по умолчанию + Анимация вкладок + Затухание + Отдалить Больше даных нет Создание метки @@ -196,38 +209,39 @@ Цвет метки Имя метки не указано Недопустимое имя метки - Label created - Label updated + Метка создана + Метка обновлена Описание Метка удалена! Выберите ветку для релиза Ошибка авторизации - It seems that the Access Token is revoked OR your are not allowed to see these contents.\n\nIn case of revoked Token, please logout and login again + Похоже, токен доступа отозван, либо вам не разрешено просматривать это содержимое.\n\nВ случае отзыва токена, пожалуйста, выйдите из системы и войдите снова Вы действительно хотите удалить эту метку? Команды Участники Имя команды Описание команды - Permissions - • Members of this team do not have any permissions. - • Members of this team can view team repositories. - • Members of this team can view and push to team repositories. - • Members of this team can push to and from team repositories and add collaborators. - • Members of this team have owner permissions. - show all + Разрешения + • Члены этой команды не имеют никаких разрешений. + • Члены этой команды могут просматривать репозитории команды. + • Участники могут читать и изменять репозитории команды. + • Члены этой команды могут заливать свои коммиты в и из командного репозитория и добавлять соавторов. + • Члены этой команды имеют права владельца. + показать все Участники организации Участники команд организации - Remove %s - Add %s + Удалить %s + Добавить %s Вы хотите добавить этого пользователя в команду? Вы хотите удалить этого пользователя из команды? Участник успешно добавлен в команду Участник успешно удалён из команды - Repository added to the team successfully - Repository removed from the team successfully - Add repository %1$s to organization %2$s team %3$s - Remove repository %1$s from team %2$s + Репозиторий успешно добавлен в команду + Репозиторий успешно удален из команды + Добавить репозиторий %1$s в организацию %2$s команды %3$s + Удалить репозиторий %1$s из команды %2$s + Добавить / Удалить участника Имя команды @@ -254,7 +268,7 @@ Поиск Имя пользователя - Remove %s? + Удалить %s? Вы точно хотите снять права сотрудника с этого пользователя? С пользователя были сняты права сотрудника. Пользователь получает права сотрудника! @@ -262,15 +276,17 @@ Подписчики Подписки - Добавить адрес эл. почты - Адрес эл. почты + + + Электронная почта + Адрес электронной почты Новая электронная почта успешно добавлена Адрес электронной почты пустой Некорректный адрес электронной почты Адрес электронной почты уже используется Основной - Адреса эл. почты - + SSH ключи + Добавить/удалить метку Метки обновлены @@ -286,7 +302,7 @@ Метаинформация репозитория - New User + Новый пользователь Пользователи системы Админ Задачи cron @@ -412,6 +428,10 @@ Open in Browser Delete %s Reset + BETA + None + main + License Обзор пользователей Обзор задач @@ -425,8 +445,7 @@ Обнаружена новая версия Gitea! Пожалуйста, ОБНОВИТЕ GitNex! Gitea не обнаружен! Неподдерживаемая версия Gitea - Имя пользователя / Пароль - Выберите предпочтительный метод входа для доступа к вашей учетной записи. Токен более безопасный! + Basic Auth Экземпляр вернул ошибку - не авторизовано. Проверьте ваши учетные данные и повторите попытку Требуется токен Удалённый Форк @@ -508,19 +527,20 @@ Counter is reset successfully Do you want to reset counter for repository %s? This will reset all the counters for this account repositories. - Темы, шрифты, значки + Themes, fonts, badges, translation Биометрическая аутентификация, SSL-сертификаты, кеш Языки Отчёты об ошибках Если вам нравится GitNex, вы можете поставить ему палец вверх App version, build, user instance version + Syntax color, indentation Архивировано Этот репозиторий находится в архиве. Вы можете просматривать файлы, но не можете отправлять или открывать проблемы/запросы на слияние. Учётная запись успешно удалена Удалить учётную запись Are you sure you want to remove this account from the app?\n\nThis will remove all the data related to this account on the app only. Новая учётная запись - Добавить новую учётную запись + Add Account Учётная запись уже существует в приложении Учётная запись успешно добавлена Переключено на аккаунт: %1$s@%2$s @@ -528,14 +548,17 @@ Уведомления All caught up 🚀 Задержка опроса уведомлений - %d Минут + 15 Minutes + 30 Minutes + 45 Minutes + 1 час Выбрать задержку опроса Выберите минутную задержку, при которой GitNex пытается опрашивать новые уведомления - Mark Read - Mark Unread - Pin + Пометить прочитанным + Снять отметку о прочтении + Прикрепить Все уведомления успешно помечены как прочитанные - Задержка опроса, световой индикатор, вибрация + Задержка опроса Включить уведомления Включите световой индикатор Включить вибрацию @@ -548,8 +571,9 @@ You have %s new notification You have %s new notifications You have %s new notifications - You have %s new notifications + У вас %s новые уведомления + Чтобы получать уведомления вы должно включить уведомления для GitNex. Нажмите «Открыть» чтобы получить доступ к настройкам телефона, и включить уведомления. Прочитано Непрочитано Настройки репозитория @@ -568,12 +592,12 @@ Включить объединение и слияние Включить rebase с коммитом слияния (——no-ff) Свойства репозитория успешно обновлены - Things to know before deletion:\n\n- This operation CANNOT be undone.\n- This operation will permanently delete the repository including code, issues, comments, wiki data and collaborator settings.\n\nEnter the repository name as confirmation + Что нужно знать перед удалением:\n\n- Эту операцию НЕЛЬЗЯ отменить.\n- Эта операция навсегда удалит репозиторий, включая код, задачи, комментарии, данные вики и настройки соавтора.\n\nВведите имя репозитория в качестве подтверждения Имя репозитория не совпадает Репозиторий успешно удалён Передать права собственности - Transfer this repository to a user or to an organization for which you have administrator rights - Things to know before transfer:\n\n- You will lose access to the repository if you transfer it to an individual user.\n- You will keep access to the repository if you transfer it to an organization that you (co-)own.\n\nEnter the repository name as confirmation + Передать репозиторий другому пользователю или организации где у вас есть права администратора + Что нужно знать перед передачей:\n\n- Вы потеряете доступ к репозиторию, если передадите его отдельному пользователю.\n- Вы сохраните доступ к репозиторию, если передадите его организации, которой вы (со)владеете.\n\nВведите имя репозитория в качестве подтверждения Выполнить передачу Новый владелец Репозиторий успешно перенесён @@ -593,12 +617,12 @@ Требуется заголовок Запрос на слияние успешно создан Запрос на слияние между этими ветками уже существует - Pull Request closed - Pull Request reopened - Pull Request Info - It seems that account for URI %1$s does not exists in the app. You can add one by tapping on the Add New Account button. + Запрос на слияние закрыт + Запрос на слияние переоткрыт + Информация о запросе на слияние + Похоже, что учётная запись для URI %1$s не существует в приложении. Вы можете добавить её, нажав кнопку «Добавить новую учётную запись». Перейти к приложению - GitNex cannot handle the requested resource, you can open an issue at the project repository as an improvement with providing details of the work. Just launch a default screen for now from the buttons below, it can be changed from settings. + GitNex не может обработать запрошенный ресурс. Вы можете открыть задачу в репозитории проекта в качестве улучшения, предоставив подробную информацию о работе. Просто запустите экран по умолчанию, используя кнопки ниже, его можно изменить в настройках. Биометрическая Aутентификация Разблокируйте с помощью биометрических данных На этом устройстве нет биометрических функций @@ -627,45 +651,47 @@ Слить Rebase Выберите стратегию обновления - Avatar - Tags - Releases/Tags - Create Tag Only - Tag created - Use as reference - Do you really want to delete this tag? - Tag deleted - A tag attached to a release cannot be deleted directly - Use Custom Tabs - No application found to open this link. SSH URLs and URLs with another prefix the http:// or https:// are not supported by most browser - Log in again - %s \u25CF not logged in - Follow system (Light/Dark) - Follow system (Light/Pitch Black) - Fork of: %s - Adopt - Adopted repository %s - Unadopted Repositories - - Adopt will add repository %1$s to organization/user %2$s.\n- Delete will remove it from the system. - Commits + Аватар + Метки + Выпуски/Метки + Создать только метку + Метка создана + Использовать в качестве ссылки + Вы действительно хотите удалить эту метку? + Метка удалена + Метка прикрепленная к выпуску не может быть удалена напрямую + Использовать пользовательские вкладки + Не найдено приложения для открытия этой ссылки. SSH URL и URL с другим префиксом the http:// или https:// не поддерживаются большинством браузеров + Войти заново + %s \u25CF не вошел в систему + Как в системе (Светлый/Темный) + Как в системе (Светлый/Темный) + Динамические цвета ­— Как в системе (Светлый/Темный) + Codeberg (Темный) + Форк: %s + Заимствовать + Заимствованный репозиторий %s + Непринятые репозитории + - Заимствование добавит репозиторий %1$s к организации/пользователю %2$s.\n- Удаление удалит его из системы. + Коммиты - Wiki - %1$s updated %2$s]]> - Do you really want to delete %s? - Wiki page deleted successfully - Page name and page content can\'t be empty - Create Wiki Page - Wiki page updated successfully - Wiki page created successfully + Вики + %1$s обновлен %2$s]]> + Вы действительно хотите удалить %s? + Страница вики успешно удалена + Название и содержание страницы не могут быть пустыми + Создать страницу вики + Страница вики успешно обновлена + Страница вики успешно создана - Open in Code Editor + Открыть в текстовом редакторе - New Note - Edit Note - Start taking your notes here + Новая заметка + Редактировать Заметку + Начните делать заметки здесь Created %s Updated %s - Do you really want to delete this note? + Do you really want to delete this note? Note deleted successfully Notes deleted successfully @@ -674,6 +700,7 @@ This will delete all of your notes. This action cannot be undone. + commit commit %1$s added %2$s %3$s @@ -686,6 +713,7 @@ %1$s was assigned by %2$s %3$s %1$s added this to the %2$s milestone %3$s %1$s removed this from the %2$s milestone %3$s + %1$s added this to a deleted milestone %2$s %1$s closed this issue %2$s %1$s reopened this issue %2$s %1$s reopened this pull request %2$s @@ -714,7 +742,39 @@ %1$s referenced this issue in #%2$d %3$s %1$s referenced this pull request in #%2$d %3$s %3$s %4$s]]> + %1$s left a comment: %2$s %3$s + %1$s pinned this %2$s Statuses This status has no linked target URL. Starred Repos + Language Statistics + Панель управления + созданный репозиторий + репозиторий переименован с %1$s на + звезды + репозиторий перенесен %1$s в + создал ветку %1$s в + толкнул из %1$s на + открытая проблема + прокомментировал проблему + закрытая проблема + переоткрытая проблема + создал запрос на включение + закрыл запрос на включение + переоткрыл запрос на включение + объеденил запрос на принятие изменений + утвержден + предложенные изменения для + прокомментировал запрос на включение + автоматически объедененный запрос на включение + удалена ветка %1$s в + отправил метку %1$s в + удалил метку %1$s из + выпущен %1$s в + синхронизировал коммит с %1$s к + синхронизированна новая ссылка %1$s с + ссылка синхронизирована и удалена %1$s на + Вложение + Вложения + Проблема была создана, но в настоящее время обработка вложений невозможна. Проверьте журналы сервера для более подробной информации. diff --git a/app/src/main/res/values-si-rLK/strings.xml b/app/src/main/res/values-si-rLK/strings.xml index c8ef4d02..5f28f63b 100644 --- a/app/src/main/res/values-si-rLK/strings.xml +++ b/app/src/main/res/values-si-rLK/strings.xml @@ -14,6 +14,8 @@ මගේ ගැටළු Most Visited Repos Notes + Account Settings + Watched Repositories නව කෝ ඇතිය @@ -33,6 +35,7 @@ Administration නව අදින්න ඉල්ලීම පරිශිලකයින් + Add Repository Demo repo Demo විස්තරය @@ -43,8 +46,11 @@ කෝ සෑහෙනේ සවිස්තරය පුද්ගලික හිමිකරු + Issue Labels + Make repository a template සංවිධානයේ නම සංවිධානයේ සවිස්තරය + %1$s - %2$s පරිශීලක නාමය මුරපදය ඇතුල් වන්න @@ -60,6 +66,7 @@ පරිශීලක නාමය අවශ්යයි මුරපදය අවශ්යයි කෙටුම්පත ඇවැසිය + Enter URL without http or https. Example: codeberg.org ජාලයට ප්‍රවේශ විය නොහැක, කරුණාකර ඔබගේ අන්තර්ජාල සම්බන්ධතාවය පරීක්ෂා කරන්න කෝ ඇතියේ නම හිස්ය ගබඩා නාමය වලංගු නොවේ. [a–z A–Z 0–9 – _] @@ -69,6 +76,7 @@ ගබඩාව සාර්ථකව සාදන ලදී තෝරාගත් හිමිකරු යටතේ මෙම නාමයේ ගබඩාව දැනටමත් පවතී ගබඩාව සඳහා හිමිකරු තෝරන්න + The default branch must not be empty සංවිධානයේ නම හිස් ය සංවිධානයේ නම වලංගු නැත, [a–z A–Z 0–9 – _] සංවිධානයේ විස්තරය උපරිම අක්ෂර 255 සීමාව ඉක්මවයි @@ -100,7 +108,6 @@ ගෑරුප්පු ලබාිණි අවසන් වරට යාවත්කාලීන කරන ලදී - තවත් තොරතුරු පෙන්වන්න වැඩි විස්තර හිදී සන්ධිස්ථානය %1$s @@ -180,14 +187,20 @@ කෙටුම්පත් මකාදැමීම සබල කරන්න අදහස් පළ කළ විට අදහස් කෙටුම්පත මකන්න ජනරාල් - මුල් තිරය, පෙරනිමි සබැඳි හසුරුව + Home screen, drafts, crash reports පෙරනිමි සබැඳි හසුරුවන්නා Choose what screen should be loaded if the app cannot handle external links. It will redirect you automatically. - අ/නොවේ Default Link Handler Screen තෝරන්න ජෛවමිතික සහාය පෙළ සහය සහිත ලේබල් මෙය සබල කිරීමෙන් ගැටළු සහ pr ලැයිස්තු තුළ පෙළ සහිත ලේබල පෙන්වනු ඇත, පෙරනිමිය වර්ණ තිත් වේ + Syntax Highlighting Color + Indentation + Tabs Width + System Default Font + Tabs Animation + Fade Out + Zoom Out තවත් දත්ත නොමැත නව ලේබලය @@ -228,6 +241,7 @@ ගබඩාව කණ්ඩායමෙන් සාර්ථකව ඉවත් කරන ලදී සංවිධානය %2$s කණ්ඩායම %3$sවෙත ගබඩාව %1$s එක් කරන්න %2$sකණ්ඩායමෙන් නිධිය %1$s ඉවත් කරන්න + Add / Remove Member කණ්ඩායමේ නම @@ -262,15 +276,17 @@ අනුගාමිකයින් අනුගමනය - වි-තැපෑල එකතු කරන්න - වි-තැපැල් ලිපිනය + + + Emails + Email Address නව විද්‍යුත් තැපෑල සාර්ථකව එක් කරන ලදී විද්‍යුත් තැපැල් ලිපිනය හිස්ය ඊමේල් ලිපිනය වලංගු නැත ඊමේල් ලිපිනය දැනටමත් භාවිතයේ ඇත ප්රාථමික - වි-තැපැල් - + SSH Keys + ලේබල් එකතු කරන්න / ඉවත් කරන්න ලේබල් යාවත්කාලීන කරන ලදී @@ -412,6 +428,10 @@ බ්‍රව්සරයේ විවෘත කරන්න %sමකන්න Reset + BETA + None + main + License පරිශීලකයන් ගවේෂණය කරන්න ගැටළු ගවේෂණය කරන්න @@ -425,8 +445,7 @@ නව Gitea අනුවාදය අනාවරණය විය! කරුණාකර GitNex යාවත්කාලීන කරන්න! Gitea අනාවරණය කර ගත්තේ නැත! Gitea හි සහාය නොදක්වන අනුවාදය - පරිශීලක නාමය / මුරපදය - ඔබගේ ගිණුමට ප්‍රවේශ වීමට ඔබ කැමති පිවිසුම් ක්‍රමය තෝරන්න. ටෝකනය වඩාත් ආරක්ෂිතයි! + Basic Auth උදාහරණය දෝෂයක් ලබා දී ඇත - අනවසරයි. ඔබගේ අක්තපත්‍ර පරීක්ෂා කර නැවත උත්සාහ කරන්න ටෝකනය අවශ්ය වේ මකා දැමූ ෆෝක් @@ -508,19 +527,20 @@ Counter is reset successfully Do you want to reset counter for repository %s? This will reset all the counters for this account repositories. - තේමා, අකුරු, ලාංඡන + Themes, fonts, badges, translation ජෛවමිතික සත්‍යාපනය, SSL සහතික, හැඹිලිය භාෂා බිඳ වැටීම් වාර්තා ඔබ GitNex වලට කැමති නම් ඔබට එය thumbs up ලබා දිය හැක App version, build, user instance version + Syntax color, indentation සංරක්ෂණය කර ඇත මෙම රෙපෝව සංරක්ෂණය කර ඇත. ඔබට ගොනු බැලිය හැක, නමුත් ගැටළු/අදින්න-ඉල්ලීම් තල්ලු කිරීමට හෝ විවෘත කිරීමට නොහැක. ගිණුම සාර්ථකව මකා ඇත ගිණුම ඉවත් කරන්න Are you sure you want to remove this account from the app?\n\nThis will remove all the data related to this account on the app only. නව ගිණුම - නව ගිණුමක් එක් කරන්න + Add Account ගිණුම දැනටමත් යෙදුම තුළ පවතී ගිණුම සාර්ථකව එකතු කරන ලදී ගිණුමට මාරු විය: %1$s@%2$s @@ -528,14 +548,17 @@ දැනුම්දීම් ඔක්කොම අල්ලලා 🚀 දැනුම්දීම් ඡන්ද ප්‍රමාදය - මිනිත්තු %d + 15 Minutes + 30 Minutes + 45 Minutes + 1 Hour ඡන්ද ප්‍රමාදය තෝරන්න GitNex නව දැනුම්දීම් ඡන්ද විමසීමට උත්සාහ කරන සුළු ප්‍රමාදයක් තෝරන්න මාර්ක් කියවන්න නොකියවූ ලකුණු කරන්න පින් කරන්න සියලුම දැනුම්දීම් කියවූ ලෙස සාර්ථකව ලකුණු කරන ලදී - ඡන්ද ප්‍රමාදය, ආලෝකය, කම්පනය + Polling delay දැනුම්දීම් සබල කරන්න ආලෝකය සක්රිය කරන්න කම්පනය සක්රිය කරන්න @@ -548,6 +571,7 @@ ඔබට නව දැනුම්දීම් %s ක් ඇත ඔබට නව දැනුම්දීම් %s ක් ඇත + To receive notifications, you must enable notifications for GitNex. Tap Open to access your phone settings and enable notifications. කියවන්න නොකියවූ ගබඩා සැකසුම් @@ -594,9 +618,9 @@ ඇදීමේ ඉල්ලීම වසා ඇත ඇදීමේ ඉල්ලීම නැවත විවෘත කරන ලදී ඉල්ලීම් තොරතුරු අදින්න - It seems that account for URI %1$s does not exists in the app. You can add one by tapping on the Add New Account button. + It seems that the account for URI %1$s does not exist in the app. You can add one by tapping on the Add New Account button. යෙදුම වෙත යන්න - GitNex cannot handle the requested resource, you can open an issue at the project repository as an improvement with providing details of the work. Just launch a default screen for now from the buttons below, it can be changed from settings. + GitNex cannot handle the requested resource. You can open an issue at the project repository as an improvement, providing details of the work. Just launch a default screen for now from the buttons below; it can be changed from settings. ජෛවමිතික සත්‍යාපනය ඔබගේ ජෛවමිතික අක්තපත්‍ර භාවිතයෙන් අගුලු හරින්න මෙම උපාංගයේ ජෛවමිතික විශේෂාංග නොමැත @@ -640,6 +664,8 @@ \u25CF %s වී නැත පද්ධතිය අනුගමනය කරන්න (ආලෝකය/අඳුරු) පද්ධතිය අනුගමනය කරන්න (ආලෝකය/තාර කළු) + Dynamic colors - Follow system (Light/Dark) + Codeberg (Dark) දෙබලක: %s හදාගන්න සම්මත කරන ලද නිධිය %s @@ -663,13 +689,14 @@ Start taking your notes here Created %s Updated %s - Do you really want to delete this note? + Do you really want to delete this note? Note deleted successfully Notes deleted successfully This will delete all of your notes. This action cannot be undone. + commit commit %1$s added %2$s %3$s @@ -682,6 +709,7 @@ %1$s was assigned by %2$s %3$s %1$s added this to the %2$s milestone %3$s %1$s removed this from the %2$s milestone %3$s + %1$s added this to a deleted milestone %2$s %1$s closed this issue %2$s %1$s reopened this issue %2$s %1$s reopened this pull request %2$s @@ -710,7 +738,39 @@ %1$s referenced this issue in #%2$d %3$s %1$s referenced this pull request in #%2$d %3$s %3$s %4$s]]> + %1$s left a comment: %2$s %3$s + %1$s pinned this %2$s Statuses This status has no linked target URL. Starred Repos + Language Statistics + Dashboard + created repository + renamed repository from %1$s to + starred + transferred repository %1$s to + created branch %1$s in + pushed to %1$s at + opened issue + commented on issue + closed issue + reopened issue + created pull request + closed pull request + reopened pull request + merged pull request + approved + suggested changes for + commented on pull request + automatically merged pull request + deleted branch %1$s at + pushed tag %1$s to + deleted tag %1$s from + released %1$s at + synced commits to %1$s at + synced new reference %1$s to + synced and deleted reference %1$s at + Attachment + Attachments + An issue was created but cannot process attachments at this time. Check the server logs for more details. diff --git a/app/src/main/res/values-sk-rSK/strings.xml b/app/src/main/res/values-sk-rSK/strings.xml index d533ea3e..6756f3e7 100644 --- a/app/src/main/res/values-sk-rSK/strings.xml +++ b/app/src/main/res/values-sk-rSK/strings.xml @@ -14,6 +14,8 @@ My Issues Najnavštevovanejšie stránky Notes + Account Settings + Watched Repositories Nový repozitár @@ -33,6 +35,7 @@ Administration New Pull Request Užívatelia + Add Repository Demo repozitár Demo popis @@ -43,8 +46,11 @@ Popis repozitára Súkromné Vlastník + Issue Labels + Make repository a template Názov organizácie Popis organizácie + %1$s - %2$s Používateľské meno Heslo Prihlásiť sa @@ -60,6 +66,7 @@ Prihlasovacie meno je povinné Heslo je povinné Protokol je povinný + Enter URL without http or https. Example: codeberg.org Cannot access network, please check your Internet connection Repository name is empty Repository name is not valid. [a–z A–Z 0–9 – _] @@ -69,6 +76,7 @@ Repository created successfully Repository of this name already exists under selected Owner Select owner for the repository + The default branch must not be empty Organization name is empty Organization name is not valid, [a–z A–Z 0–9 – _] Organization description exceeds the max 255 characters limit @@ -100,7 +108,6 @@ Forky Vytvorené Posledná aktualizácia - Zobraziť ďalšie informácie Viac informácií o Milestone %1$s @@ -180,14 +187,20 @@ Enable Drafts Deletion Delete comment draft when comment is posted General - Home screen, default link handler + Home screen, drafts, crash reports Default Link Handler Choose what screen should be loaded if the app cannot handle external links. It will redirect you automatically. - N/A Select Default Link Handler Screen Biometrické odomykanie Labels With Text Support Enabling this will show labels with text in issues and pr lists, default are color dots + Syntax Highlighting Color + Indentation + Tabs Width + System Default Font + Tabs Animation + Fade Out + Zoom Out No more data available New Label @@ -228,6 +241,7 @@ Repozitár úspešne odstránené z tímu Add repository %1$s to organization %2$s team %3$s Remove repository %1$s from team %2$s + Add / Remove Member Názov tímu @@ -262,15 +276,17 @@ Followers Following - Add Email Address - Email Address + + + Emails + Email Address New email added successfully Email address is empty Email address is not valid Email address is already in use Primary - Emails - + SSH Keys + Add / Remove Labels Labels updated @@ -412,6 +428,10 @@ Open in Browser Delete %s Reset + BETA + None + main + License Explore users Explore issues @@ -425,8 +445,7 @@ New Gitea version detected! Please UPDATE GitNex! No Gitea detected! Unsupported Version of Gitea - Username / Password - Choose your preferred login method to access your account. Token is more secure! + Basic Auth Instance has returned an error - Unauthorized. Check your credentials and try again Token is required Deleted Fork @@ -508,19 +527,20 @@ Counter is reset successfully Do you want to reset counter for repository %s? This will reset all the counters for this account repositories. - Themes, fonts, badges + Themes, fonts, badges, translation Biometric authentication, SSL certificates, cache Languages Crash reports If you like GitNex you can give it a thumbs up App version, build, user instance version + Syntax color, indentation Archived This repo is archived. You can view files, but cannot push or open issues/pull-requests. Account deleted successfully Remove Account Are you sure you want to remove this account from the app?\n\nThis will remove all the data related to this account on the app only. New Account - Add New Account + Add Account Account already exists in the app Account added successfully Switched to account : %1$s@%2$s @@ -528,14 +548,17 @@ Notifications All caught up 🚀 Notifications Polling Delay - %d Minutes + 15 Minutes + 30 Minutes + 45 Minutes + 1 Hour Select Polling Delay Choose a minutely delay in which GitNex tries to poll new notifications Mark Read Mark Unread Pin Successfully marked all notifications as read - Polling delay, light, vibration + Polling delay Enable Notifications Enable Light Enable Vibration @@ -550,6 +573,7 @@ You have %s new notifications You have %s new notifications + To receive notifications, you must enable notifications for GitNex. Tap Open to access your phone settings and enable notifications. Read Unread Repository Settings @@ -596,9 +620,9 @@ Pull Request closed Pull Request reopened Pull Request Info - It seems that account for URI %1$s does not exists in the app. You can add one by tapping on the Add New Account button. + It seems that the account for URI %1$s does not exist in the app. You can add one by tapping on the Add New Account button. Go to App - GitNex cannot handle the requested resource, you can open an issue at the project repository as an improvement with providing details of the work. Just launch a default screen for now from the buttons below, it can be changed from settings. + GitNex cannot handle the requested resource. You can open an issue at the project repository as an improvement, providing details of the work. Just launch a default screen for now from the buttons below; it can be changed from settings. Biometric Authentication Unlock using your biometric credentials No biometric features available on this device @@ -642,6 +666,8 @@ %s \u25CF not logged in Follow system (Light/Dark) Follow system (Light/Pitch Black) + Dynamic colors - Follow system (Light/Dark) + Codeberg (Dark) Fork of: %s Adopt Adopted repository %s @@ -665,7 +691,7 @@ Start taking your notes here Created %s Updated %s - Do you really want to delete this note? + Do you really want to delete this note? Note deleted successfully Notes deleted successfully @@ -674,6 +700,7 @@ This will delete all of your notes. This action cannot be undone. + commit commit %1$s added %2$s %3$s @@ -686,6 +713,7 @@ %1$s was assigned by %2$s %3$s %1$s added this to the %2$s milestone %3$s %1$s removed this from the %2$s milestone %3$s + %1$s added this to a deleted milestone %2$s %1$s closed this issue %2$s %1$s reopened this issue %2$s %1$s reopened this pull request %2$s @@ -714,7 +742,39 @@ %1$s referenced this issue in #%2$d %3$s %1$s referenced this pull request in #%2$d %3$s %3$s %4$s]]> + %1$s left a comment: %2$s %3$s + %1$s pinned this %2$s Statuses This status has no linked target URL. Starred Repos + Language Statistics + Dashboard + created repository + renamed repository from %1$s to + starred + transferred repository %1$s to + created branch %1$s in + pushed to %1$s at + opened issue + commented on issue + closed issue + reopened issue + created pull request + closed pull request + reopened pull request + merged pull request + approved + suggested changes for + commented on pull request + automatically merged pull request + deleted branch %1$s at + pushed tag %1$s to + deleted tag %1$s from + released %1$s at + synced commits to %1$s at + synced new reference %1$s to + synced and deleted reference %1$s at + Attachment + Attachments + An issue was created but cannot process attachments at this time. Check the server logs for more details. diff --git a/app/src/main/res/values-sr-rRS/strings.xml b/app/src/main/res/values-sr-rRS/strings.xml index 4be16951..3bcc8f38 100644 --- a/app/src/main/res/values-sr-rRS/strings.xml +++ b/app/src/main/res/values-sr-rRS/strings.xml @@ -14,6 +14,8 @@ My Issues Most Visited Repos Notes + Account Settings + Watched Repositories Нови репозиторијум @@ -33,6 +35,7 @@ Administration New Pull Request Users + Add Repository Демо репозиторијум Демо опис @@ -43,8 +46,11 @@ Опис Приватни Власник + Issue Labels + Make repository a template Назив Опис + %1$s - %2$s Корисничко име Лозинка Пријави ме @@ -60,6 +66,7 @@ Корисничко име је обавезно Лозинка је обавезна Protocol is required + Enter URL without http or https. Example: codeberg.org Не могу да приступим мрежи, провери интернет конекцију Назив репозиторијума је обавезан Назив репозиторијума није валидан [a–z A–Z 0–9 – _] @@ -69,6 +76,7 @@ Репозиторијум је успешно креиран Репозиторијум већ постоји Select owner for the repository + The default branch must not be empty Назив организације је обавезан Назив организације није валидан [a–z A–Z 0–9 – _] Опис је дужи од максималних 255 карактера @@ -100,7 +108,6 @@ Број форкова Креиран Ажуриран - Прикажи више информација Више информација у Фаза %1$s @@ -180,14 +187,20 @@ Enable Drafts Deletion Delete comment draft when comment is posted General - Home screen, default link handler + Home screen, drafts, crash reports Default Link Handler Choose what screen should be loaded if the app cannot handle external links. It will redirect you automatically. - N/A Select Default Link Handler Screen Biometric Support Labels With Text Support Enabling this will show labels with text in issues and pr lists, default are color dots + Syntax Highlighting Color + Indentation + Tabs Width + System Default Font + Tabs Animation + Fade Out + Zoom Out Нема више података Нова ознака @@ -228,6 +241,7 @@ Repository removed from the team successfully Add repository %1$s to organization %2$s team %3$s Remove repository %1$s from team %2$s + Add / Remove Member Назив тима @@ -262,15 +276,17 @@ Прате ме Пратим - Додај имејл-адресу - Имејл-адреса + + + Emails + Email Address New email added successfully Email address is empty Имејл-адреса није валидна Неко већ користи ову имејл-адресу Главна адреса - Имејл - + SSH Keys + Додај или уклони ознаку Ознаке су ажуриране @@ -412,6 +428,10 @@ Open in Browser Delete %s Reset + BETA + None + main + License Explore users Explore issues @@ -425,8 +445,7 @@ Нова верзија програма Gitea је детектована! Ажурирај GitNex! No Gitea detected! Верзија програма Gitea коју тренутно користиш није подржана - Корисничко име и лозинка - Одабери начин за пријављивање. Имај у виду да је токен безбеднији него корисничко име и лозинка. + Basic Auth Грешка. Провери креденцијале и покушај поново. Token is required Deleted Fork @@ -508,19 +527,20 @@ Counter is reset successfully Do you want to reset counter for repository %s? This will reset all the counters for this account repositories. - Themes, fonts, badges + Themes, fonts, badges, translation Biometric authentication, SSL certificates, cache Languages Crash reports If you like GitNex you can give it a thumbs up App version, build, user instance version + Syntax color, indentation Archived This repo is archived. You can view files, but cannot push or open issues/pull-requests. Account deleted successfully Remove Account Are you sure you want to remove this account from the app?\n\nThis will remove all the data related to this account on the app only. New Account - Add New Account + Add Account Account already exists in the app Account added successfully Switched to account : %1$s@%2$s @@ -528,14 +548,17 @@ Notifications All caught up 🚀 Notifications Polling Delay - %d Minutes + 15 Minutes + 30 Minutes + 45 Minutes + 1 Hour Select Polling Delay Choose a minutely delay in which GitNex tries to poll new notifications Mark Read Mark Unread Pin Successfully marked all notifications as read - Polling delay, light, vibration + Polling delay Enable Notifications Enable Light Enable Vibration @@ -549,6 +572,7 @@ You have %s new notifications You have %s new notifications + To receive notifications, you must enable notifications for GitNex. Tap Open to access your phone settings and enable notifications. Read Unread Repository Settings @@ -595,9 +619,9 @@ Pull Request closed Pull Request reopened Pull Request Info - It seems that account for URI %1$s does not exists in the app. You can add one by tapping on the Add New Account button. + It seems that the account for URI %1$s does not exist in the app. You can add one by tapping on the Add New Account button. Go to App - GitNex cannot handle the requested resource, you can open an issue at the project repository as an improvement with providing details of the work. Just launch a default screen for now from the buttons below, it can be changed from settings. + GitNex cannot handle the requested resource. You can open an issue at the project repository as an improvement, providing details of the work. Just launch a default screen for now from the buttons below; it can be changed from settings. Biometric Authentication Unlock using your biometric credentials No biometric features available on this device @@ -641,6 +665,8 @@ %s \u25CF not logged in Follow system (Light/Dark) Follow system (Light/Pitch Black) + Dynamic colors - Follow system (Light/Dark) + Codeberg (Dark) Fork of: %s Adopt Adopted repository %s @@ -664,7 +690,7 @@ Start taking your notes here Created %s Updated %s - Do you really want to delete this note? + Do you really want to delete this note? Note deleted successfully Notes deleted successfully @@ -672,6 +698,7 @@ This will delete all of your notes. This action cannot be undone. + commit commit %1$s added %2$s %3$s @@ -684,6 +711,7 @@ %1$s was assigned by %2$s %3$s %1$s added this to the %2$s milestone %3$s %1$s removed this from the %2$s milestone %3$s + %1$s added this to a deleted milestone %2$s %1$s closed this issue %2$s %1$s reopened this issue %2$s %1$s reopened this pull request %2$s @@ -712,7 +740,39 @@ %1$s referenced this issue in #%2$d %3$s %1$s referenced this pull request in #%2$d %3$s %3$s %4$s]]> + %1$s left a comment: %2$s %3$s + %1$s pinned this %2$s Statuses This status has no linked target URL. Starred Repos + Language Statistics + Dashboard + created repository + renamed repository from %1$s to + starred + transferred repository %1$s to + created branch %1$s in + pushed to %1$s at + opened issue + commented on issue + closed issue + reopened issue + created pull request + closed pull request + reopened pull request + merged pull request + approved + suggested changes for + commented on pull request + automatically merged pull request + deleted branch %1$s at + pushed tag %1$s to + deleted tag %1$s from + released %1$s at + synced commits to %1$s at + synced new reference %1$s to + synced and deleted reference %1$s at + Attachment + Attachments + An issue was created but cannot process attachments at this time. Check the server logs for more details. diff --git a/app/src/main/res/values-tr-rTR/strings.xml b/app/src/main/res/values-tr-rTR/strings.xml index ee587b34..2cf306b5 100644 --- a/app/src/main/res/values-tr-rTR/strings.xml +++ b/app/src/main/res/values-tr-rTR/strings.xml @@ -14,6 +14,8 @@ Konularım En çok ziyaret edilen depolar Notlar + Account Settings + Watched Repositories Yeni Depo @@ -33,6 +35,7 @@ Administration Yeni Değişiklik İsteği Kullanıcılar + Add Repository Demo deposu Demo açıklaması @@ -43,8 +46,11 @@ Depo Açıklaması Gizli Sahibi + Issue Labels + Make repository a template Organizasyon Adı Organizasyon Açıklaması + %1$s - %2$s Kullanıcı Adı Parola OTURUM AÇ @@ -60,6 +66,7 @@ Kullanıcı adı gerekli Parola gerekli Protokol gerekli + Enter URL without http or https. Example: codeberg.org Ağa erişilemiyor, lütfen internet bağlantınızı kontrol edin Depo adı boş Depo adı geçerli değil. [a–z A–Z 0–9 – _] @@ -69,6 +76,7 @@ Depo başarıyla oluşturuldu Bu adın deposu, seçilen Sahibi altında zaten var Depo için sahip seçin + The default branch must not be empty Organizasyon adı boş Organizasyon adı geçerli değil, [a–z A–Z 0–9 – _] Organizasyon açıklaması maksimum 255 karakter sınırını aşıyor @@ -100,7 +108,6 @@ Forklar Oluşturuldu Son Güncellenme - Daha fazla bilgi göster Daha fazla bilgi de Kilometre taşı %1$s @@ -180,14 +187,20 @@ Enable Drafts Deletion Delete comment draft when comment is posted General - Home screen, default link handler + Home screen, drafts, crash reports Default Link Handler Choose what screen should be loaded if the app cannot handle external links. It will redirect you automatically. - N/A Select Default Link Handler Screen Biometric Support Labels With Text Support Enabling this will show labels with text in issues and pr lists, default are color dots + Syntax Highlighting Color + Indentation + Tabs Width + System Default Font + Tabs Animation + Fade Out + Zoom Out Daha fazla veri yok Yeni Etiket @@ -228,6 +241,7 @@ Repository removed from the team successfully Add repository %1$s to organization %2$s team %3$s Remove repository %1$s from team %2$s + Add / Remove Member Takım Adı @@ -262,15 +276,17 @@ Takipçiler Takip Edilenler - E-posta Adresi Ekle - E-posta Adresi + + + Emails + Email Address New email added successfully Email address is empty E-posta adresi geçerli değil E-posta adresi zaten kullanılıyor Birincil - E-postalar - + SSH Keys + Etiket Ekle/Kaldır Etiketler güncellendi @@ -412,6 +428,10 @@ Tarayıcıda aç %s\'i sil Sıfırla + BETA + None + main + License Kullanıcıları keşfet Konuları keşfet @@ -425,8 +445,7 @@ Yeni Gitea versiyonu tespit edildi! Lütfen GitNex\'i GÜNCELLEYİN! Gitea bulunamadı! Desteklenmeyen Gitea Versiyonu - Kullanıcı Adı / Şifre - Hesabınıza erişmek için tercih ettiğiniz giriş yöntemini seçin. Jeton daha güvenli! + Basic Auth Örnek bir hata döndürdü - Yetkisiz. Kimlik bilgilerinizi kontrol edin ve tekrar deneyin Token gerekli Silinmiş Fork @@ -508,19 +527,20 @@ Counter is reset successfully Do you want to reset counter for repository %s? This will reset all the counters for this account repositories. - Themes, fonts, badges + Themes, fonts, badges, translation Biometric authentication, SSL certificates, cache Languages Crash reports If you like GitNex you can give it a thumbs up App version, build, user instance version + Syntax color, indentation Archived Bu depo arşivlendi. Dosyaları görüntüleyebilir ama konu/değişiklik isteği açamaz veya paylaşamazsınız. Account deleted successfully Remove Account Are you sure you want to remove this account from the app?\n\nThis will remove all the data related to this account on the app only. New Account - Add New Account + Add Account Account already exists in the app Account added successfully Switched to account : %1$s@%2$s @@ -528,14 +548,17 @@ Notifications All caught up 🚀 Notifications Polling Delay - %d Minutes + 15 Minutes + 30 Minutes + 45 Minutes + 1 Hour Select Polling Delay Choose a minutely delay in which GitNex tries to poll new notifications Mark Read Mark Unread Pin Successfully marked all notifications as read - Polling delay, light, vibration + Polling delay Enable Notifications Enable Light Enable Vibration @@ -548,6 +571,7 @@ You have %s new notification You have %s new notifications + To receive notifications, you must enable notifications for GitNex. Tap Open to access your phone settings and enable notifications. Read Unread Repository Settings @@ -594,9 +618,9 @@ Pull Request closed Pull Request reopened Pull Request Info - It seems that account for URI %1$s does not exists in the app. You can add one by tapping on the Add New Account button. + It seems that the account for URI %1$s does not exist in the app. You can add one by tapping on the Add New Account button. Go to App - GitNex istenen kaynağı işleyemedi, işin ayrıntılarını sağlayarak iyileştirme olarak proje deposunda bir konu açabilirsiniz. Şimdilik aşağıdaki butonlardan bir varsayılan ekran başlatmanız yeterlidir, ayarlardan değiştirilebilir. + GitNex cannot handle the requested resource. You can open an issue at the project repository as an improvement, providing details of the work. Just launch a default screen for now from the buttons below; it can be changed from settings. Biometric Authentication Unlock using your biometric credentials No biometric features available on this device @@ -640,6 +664,8 @@ %s \u25CF not logged in Follow system (Light/Dark) Follow system (Light/Pitch Black) + Dynamic colors - Follow system (Light/Dark) + Codeberg (Dark) Fork of: %s Adopt Adopted repository %s @@ -663,13 +689,14 @@ Start taking your notes here Created %s Updated %s - Do you really want to delete this note? + Do you really want to delete this note? Note deleted successfully Notes deleted successfully This will delete all of your notes. This action cannot be undone. + commit commit %1$s added %2$s %3$s @@ -682,6 +709,7 @@ %1$s was assigned by %2$s %3$s %1$s added this to the %2$s milestone %3$s %1$s removed this from the %2$s milestone %3$s + %1$s added this to a deleted milestone %2$s %1$s closed this issue %2$s %1$s reopened this issue %2$s %1$s reopened this pull request %2$s @@ -710,7 +738,39 @@ %1$s referenced this issue in #%2$d %3$s %1$s referenced this pull request in #%2$d %3$s %3$s %4$s]]> + %1$s left a comment: %2$s %3$s + %1$s pinned this %2$s Statuses This status has no linked target URL. Starred Repos + Language Statistics + Dashboard + created repository + renamed repository from %1$s to + starred + transferred repository %1$s to + created branch %1$s in + pushed to %1$s at + opened issue + commented on issue + closed issue + reopened issue + created pull request + closed pull request + reopened pull request + merged pull request + approved + suggested changes for + commented on pull request + automatically merged pull request + deleted branch %1$s at + pushed tag %1$s to + deleted tag %1$s from + released %1$s at + synced commits to %1$s at + synced new reference %1$s to + synced and deleted reference %1$s at + Attachment + Attachments + An issue was created but cannot process attachments at this time. Check the server logs for more details. diff --git a/app/src/main/res/values-uk-rUA/strings.xml b/app/src/main/res/values-uk-rUA/strings.xml index 75475a6d..8ce46fe9 100644 --- a/app/src/main/res/values-uk-rUA/strings.xml +++ b/app/src/main/res/values-uk-rUA/strings.xml @@ -14,6 +14,8 @@ My Issues Most Visited Repos Notes + Account Settings + Watched Repositories Новий репозиторій @@ -33,6 +35,7 @@ Administration New Pull Request Users + Add Repository Демо-репозиторій Демо опис @@ -43,8 +46,11 @@ Опис репозиторія Приватний Власник + Issue Labels + Make repository a template Назва організації Опис організації + %1$s - %2$s Ім\'я користувача Пароль УВІЙТИ @@ -60,6 +66,7 @@ Ім\'я користувача є обов\'язковим Пароль є обов\'язковим Protocol is required + Enter URL without http or https. Example: codeberg.org Неможливо отримати доступ до мережі, будь ласка, перевірте підключення до Інтернету Назва репозиторія порожня Назва репозиторія некоректна. [a–z A–Z 0–9 – _] @@ -69,6 +76,7 @@ Репозиторій створено успішно Репозиторій із такою назвою вже існує в обраного власника Select owner for the repository + The default branch must not be empty Назва організації порожня Назва організації некоректна, [a–z A–Z 0–9 – _] Довжина опису організації перевищує 255 символів @@ -100,7 +108,6 @@ Форки Створений Остання зміна - Докладніше Докладніше о Етап %1$s @@ -180,14 +187,20 @@ Enable Drafts Deletion Delete comment draft when comment is posted General - Home screen, default link handler + Home screen, drafts, crash reports Default Link Handler Choose what screen should be loaded if the app cannot handle external links. It will redirect you automatically. - N/A Select Default Link Handler Screen Biometric Support Labels With Text Support Enabling this will show labels with text in issues and pr lists, default are color dots + Syntax Highlighting Color + Indentation + Tabs Width + System Default Font + Tabs Animation + Fade Out + Zoom Out Даних більше немає Створити мітку @@ -228,6 +241,7 @@ Repository removed from the team successfully Add repository %1$s to organization %2$s team %3$s Remove repository %1$s from team %2$s + Add / Remove Member Назва команди @@ -262,15 +276,17 @@ Читачі Читає - Додати адресу Email - Адреса Email + + + Emails + Email Address New email added successfully Email address is empty Адреса Email некоректна Адреса Email вже використовується Основна - Адреси Email - + SSH Keys + Додати / Видалити мітки Мітки оновлено @@ -412,6 +428,10 @@ Open in Browser Delete %s Reset + BETA + None + main + License Explore users Explore issues @@ -425,8 +445,7 @@ Виявлено нову версію Gitea! Будь ласка, ОНОВІТЬ GitNex! Gitea не виявлено! Непідтримувана версія Gitea - Ім\'я користувача / Пароль - Оберіть бажаний метод входу для доступу до облікового запису. Токен є більш безпечним! + Basic Auth Екземпляр повернув помилку - не авторизовано. Перевірте облікові дані та спробуйте знову Token is required Deleted Fork @@ -508,19 +527,20 @@ Counter is reset successfully Do you want to reset counter for repository %s? This will reset all the counters for this account repositories. - Themes, fonts, badges + Themes, fonts, badges, translation Biometric authentication, SSL certificates, cache Мови Звіти про падіння If you like GitNex you can give it a thumbs up App version, build, user instance version + Syntax color, indentation Архівовано This repo is archived. You can view files, but cannot push or open issues/pull-requests. Account deleted successfully Remove Account Are you sure you want to remove this account from the app?\n\nThis will remove all the data related to this account on the app only. New Account - Add New Account + Add Account Account already exists in the app Account added successfully Switched to account : %1$s@%2$s @@ -528,14 +548,17 @@ Notifications All caught up 🚀 Notifications Polling Delay - %d Minutes + 15 Minutes + 30 Minutes + 45 Minutes + 1 Hour Select Polling Delay Choose a minutely delay in which GitNex tries to poll new notifications Mark Read Mark Unread Pin Successfully marked all notifications as read - Polling delay, light, vibration + Polling delay Enable Notifications Enable Light Enable Vibration @@ -550,6 +573,7 @@ You have %s new notifications You have %s new notifications + To receive notifications, you must enable notifications for GitNex. Tap Open to access your phone settings and enable notifications. Read Unread Repository Settings @@ -596,9 +620,9 @@ Pull Request closed Pull Request reopened Pull Request Info - It seems that account for URI %1$s does not exists in the app. You can add one by tapping on the Add New Account button. + It seems that the account for URI %1$s does not exist in the app. You can add one by tapping on the Add New Account button. Go to App - GitNex cannot handle the requested resource, you can open an issue at the project repository as an improvement with providing details of the work. Just launch a default screen for now from the buttons below, it can be changed from settings. + GitNex cannot handle the requested resource. You can open an issue at the project repository as an improvement, providing details of the work. Just launch a default screen for now from the buttons below; it can be changed from settings. Biometric Authentication Unlock using your biometric credentials No biometric features available on this device @@ -642,6 +666,8 @@ %s \u25CF not logged in Follow system (Light/Dark) Follow system (Light/Pitch Black) + Dynamic colors - Follow system (Light/Dark) + Codeberg (Dark) Fork of: %s Adopt Adopted repository %s @@ -665,7 +691,7 @@ Start taking your notes here Created %s Updated %s - Do you really want to delete this note? + Do you really want to delete this note? Note deleted successfully Notes deleted successfully @@ -674,6 +700,7 @@ This will delete all of your notes. This action cannot be undone. + commit commit %1$s added %2$s %3$s @@ -686,6 +713,7 @@ %1$s was assigned by %2$s %3$s %1$s added this to the %2$s milestone %3$s %1$s removed this from the %2$s milestone %3$s + %1$s added this to a deleted milestone %2$s %1$s closed this issue %2$s %1$s reopened this issue %2$s %1$s reopened this pull request %2$s @@ -714,7 +742,39 @@ %1$s referenced this issue in #%2$d %3$s %1$s referenced this pull request in #%2$d %3$s %3$s %4$s]]> + %1$s left a comment: %2$s %3$s + %1$s pinned this %2$s Statuses This status has no linked target URL. Starred Repos + Language Statistics + Dashboard + created repository + renamed repository from %1$s to + starred + transferred repository %1$s to + created branch %1$s in + pushed to %1$s at + opened issue + commented on issue + closed issue + reopened issue + created pull request + closed pull request + reopened pull request + merged pull request + approved + suggested changes for + commented on pull request + automatically merged pull request + deleted branch %1$s at + pushed tag %1$s to + deleted tag %1$s from + released %1$s at + synced commits to %1$s at + synced new reference %1$s to + synced and deleted reference %1$s at + Attachment + Attachments + An issue was created but cannot process attachments at this time. Check the server logs for more details. diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 66694fa7..fcc08859 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -14,6 +14,8 @@ 我的问题 访问最多的代码库 备注 + 账户设置 + 关注的仓库 创建仓库 @@ -33,6 +35,7 @@ 管理 新拉取请求 用户 + 添加仓库 演示仓库 演示描述 @@ -43,8 +46,11 @@ 仓库描述 私有 所有者 + Issue Labels + 设置仓库为模板仓库 组织名称 组织描述 + %1$s - %2$s 用户名 密码 登录 @@ -52,8 +58,7 @@ 打开导航栏 关闭导航栏 协议 - 1- 选择正确协议(https or http). \n2- 输入实例 url 如: try.gitea.io. \n3- 如果你为账户启用了 2FA - ,请在 OTP 码字段输入代码。 \n4- 对 HTTP basic auth, 请在 URL 字段中使用 USERNAME@DOMAIN.COM。 + 1- 选择正确的协议(https 或 http)。\n2- 输入实例网址,例如:try.gitea.io。\n3- 如果您已为您的账户启用了两步验证(2FA),请在OTP代码字段中输入验证码。\n4- 对于 HTTP basic auth,请在URL字段中使用 USERNAME@DOMAIN.COM。 无法连接到主机。请检查您的 URL 或端口是否有任何错误 除非您正在本地网络上测试,否则不建议使用 HTTP 协议 收到格式错误的 JSON 。服务器响应不成功 @@ -61,6 +66,7 @@ 未填写 用户名 未填写 密码 协议是必需的 + 输入不含 http 或者 https 的 URL。 例如:codeberg.org 无法连接,请检查您的网络情况 仓库名称为空 仓库名称无效。[a–z A–Z 0–9 – _] @@ -70,6 +76,7 @@ 仓库创建成功 当前所有者已拥有同名仓库 选择仓库所有者 + 默认分支必须是非空的 组织名称为空 组织名称无效, [a–z A–Z 0–9 – _] 组织描述超过最大255个字符限制 @@ -101,7 +108,6 @@ 派生仓库 已创建 最后更新 - 显示更多信息 更多信息 里程碑 %1$s @@ -124,15 +130,15 @@ 里程碑描述超过最大255个字符限制 里程碑创建成功 请选择截止日期 - 没有到期日 + 无截止日期 无描述 - %1$d开启 + %1$d 开启 %1$d 已关闭 选择里程碑 选择受理人 选择标签 标题 - 受理人 + 指派人 说明 到期日 里程碑 @@ -147,7 +153,7 @@ 系统 安全 删除信任的证书 - 删除信任的证书吗? + 是否删除信任的证书? 您确定要删除任何手动信任的证书或主机名吗? \n\n您也将被注销。 设置已保存 语言 @@ -181,14 +187,20 @@ 启用草稿删除 发表评论时删除评论草稿 常规​​​​​ - 主屏幕、默认的链接处理程序 + 主界面,草稿,崩溃报告 默认链接处理程序 如果应用无法处理外部链接,请选择应加载的屏幕。 它会自动把你重定向。 - N/A 选择默认链接处理程序屏幕 生物识别支持 带文本的标签 启用此功能将在问题和 pr 列表中显示带有文本的标签,默认是色点 + 语法高亮 + 缩进 + 制表符宽度 + 系统默认字体 + 标签页动画 + 淡出 + 缩小 没有更多可用数据 创建标签 @@ -229,6 +241,7 @@ 成功从团队中移除仓库 添加仓库 %1$s 到组织 %2$s 的团队 %3$s 从团队 %2$s 处删除了仓库 %1$s + 添加/删除成员 团队名称 @@ -263,15 +276,17 @@ 关注者 正在关注 - 添加电子邮件地址 - 電子郵件地址 + + + 电子邮件 + 电子邮件地址 成功添加新电子邮件。 电子邮件地址为空 电子邮件地址无效 电子邮件地址已被使用 主要 - 电子邮件 - + SSH 密钥 + 添加/删除标签 标签已更新 @@ -413,6 +428,10 @@ 在浏览器中打开 删除 %s 重置 + 测试 + + main + 许可证 探索用户 探索问题 @@ -426,8 +445,7 @@ 检测到新的 Gitea 版本!请更新 GitNex! 未检测到Gitea! 不支持的 Gitea 版本 - 用户名 / 密码 - 建议您使用更安全的令牌方式进行登录。 + Basic Auth 令牌可能已失效,请检查后重试 令牌是必需的。 已删除分叉 @@ -509,19 +527,20 @@ 成功重置计数 你要重置存储库 %s 的计数吗? 这会重置此账户存储库的所有计数 - 主题、字体、徽章 + 主题,字体,图标,翻译 生物特征认证、SSL证书、缓存 语言 崩溃报告 如果你喜欢GitNex,你可以给它点赞 应用程序版本、构建、用户实例版本 + 语法高亮,缩进 已存档 此代码库已存档。您可以查看文件,但不能推送或打开issues/合并请求。 帐户删除成功 删除账户 您确定要从应用中删除此帐户吗?\n\n 这将仅移除应用程序上与此账户相关的所有数据。 新帐户 - 添加新账户 + 添加账号 帐户已经存在于应用程序中 帐户添加成功 已切换到账户: %1$s@%2$s @@ -529,14 +548,17 @@ 通知 一切就绪 🚀 通知轮询延迟 - %d 分钟 + 15 分钟 + 30 分钟 + 45 分钟 + 1 小时 选择轮询延迟 以分钟为单位,选择GitNex尝试轮询新通知的延迟。 标记为已读 标记为未读 固定 成功将所有通知标记为已读 - 轮询延迟、light、振动 + 轮询延迟 启用通知 启用 Light 启用振动 @@ -548,6 +570,7 @@ 你有 %s 则新通知。 + 为了接收通知,您需要为 GitNex 启用通知选项。点击访问您手机的设置界面,并且在设置中启用通知权限 已读 未读 存储库设置 @@ -594,9 +617,9 @@ 拉取请求已关闭 拉取请求已重新打开 合并请求信息 - 似乎应用程序中并不存在URI%1$s的账户。您可以通过点击“添加新账户”按钮来添加一个。 + 似乎应用程序中并不存在 URI %1$s 的账户。您可以通过点击 “添加新账户” 按钮来添加一个。 前往应用 - GitNex 无法处理所请求的资源,您可以在项目代码库中发起一个问题,最好提供工作细节。只需从下面的按钮启动一个默认屏幕,您可通过设置更改默认屏。 + GitNex cannot handle the requested resource. You can open an issue at the project repository as an improvement, providing details of the work. Just launch a default screen for now from the buttons below; it can be changed from settings. 生物特征认证 使用你的生物特征凭证解锁 此设备无可用的生物特征功能 @@ -640,6 +663,8 @@ %s \u25CF 未登录 跟随系统 (浅色 / 深色) 跟随系统 (浅色/漆黑) + 动态颜色 - 跟随系统(浅色/神色) + Codeberg (暗色) 此仓库衍生自:%s 采用 已采用仓库 %s @@ -663,12 +688,13 @@ 从此处开始记备注 创建于 %s 更新于 %s - 您真要删除此备注吗? + 您真要删除此备注吗? 已成功删除备注 这会删除您的所有备注。此操作无法撤消。 + 提交 提交 %1$s 添加了 %2$s %3$s @@ -681,6 +707,7 @@ %2$s %3$s 给 %1$s 分配了任务 %1$s 将此添加至 %2$s 里程碑 %3$s %1$s 将此从 %2$s 里程碑 %3$s 删除了 + %1$s 将此添加至已删除的里程碑 %2$s %1$s 关闭了这张工单 %2$s %1$s 重新打开了这张工单 %2$s %1$s 重新打开了此拉取请求 %2$s @@ -709,7 +736,39 @@ %1$s 在 #%2$d %3$s 中提到了这张工单 %1$s 在 #%2$d %3$s 中提到了这个拉取请求 %3$s %4$s 的工单]]> + %1$s 留下评论:%2$s %3$s + %1$s 置顶了 %2$s 状态 此状态没有链接的目标 URL。 加星标的仓库 + 语言统计 + 仪表盘 + created repository + 将仓库名从 %1$s 修改为 + 已加星标 + 转移仓库 %1$s 到 + 建立分支 %1$s 于 + pushed to %1$s at + opened issue + commented on issue + closed issue + 重新开启的工单 + 已创建的合并请求 + 已关闭的合并请求 + 重新开启的合并请求 + 已合并的合并请求 + 已通过 + 建议更改 + commented on pull request + 自动合并的合并请求 + deleted branch %1$s at + 推送标签 %1$s 到 + 删除标签 %1$s 从 + released %1$s at + synced commits to %1$s at + synced new reference %1$s to + synced and deleted reference %1$s at + Attachment + Attachments + An issue was created but cannot process attachments at this time. Check the server logs for more details. diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 7086484e..a0fd1f94 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -84,9 +84,9 @@ Organization already exists %1$s addition(s) and %2$s deletion(s) Processing - Search - Close - Add + 搜尋 + 關閉 + 新增 Org Repo Pri @@ -737,6 +737,7 @@ %1$s referenced this pull request in #%2$d %3$s %3$s %4$s]]> %1$s left a comment: %2$s %3$s + %1$s pinned this %2$s Statuses This status has no linked target URL. Starred Repos diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f02fe5cb..74b1206f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -262,6 +262,16 @@ Tabs Animation Fade Out Zoom Out + %1$s / %2$s + Backup + Restore + The backup was successfully created + An error occurred while creating a data backup + This action will backup your accounts, settings, drafts, notes, and data related to repositories.\n\nClick the Backup button to download the backup file. + You are about to restore from a GitNex-generated backup file. This will restore user accounts, settings, drafts, notes, and data related to repositories.\n\nPlease note this action will overwrite the current database data. Proceed with caution.\n\nClick Restore to start the process. + An error occurred while restoring from the backup file. + Restore from Backup + You are about to restore from a GitNex-generated backup file. This will restore user accounts, settings, drafts, notes, and data related to repositories.\n\nClick Restore to start the process. No more data available @@ -647,6 +657,9 @@ If you like GitNex you can give it a thumbs up App version, build, user instance version Syntax color, indentation + Backup and restore accounts, settings and more + Backup accounts, settings, notes and more + Restore accounts, settings, notes and more Archived This repo is archived. You can view files, but cannot push or open issues/pull-requests.