Implement drafts, introduce Room persistence library for db #139

Open
mmarif wants to merge 25 commits from 15-comments-draft into master
25 changed files with 1213 additions and 208 deletions
Showing only changes of commit e73a330940 - Show all commits

View File

@ -1,5 +1,6 @@
---
kind: pipeline
name: gitnex-ci
name: gitnex-ci-test
steps:
@ -8,15 +9,23 @@ steps:
commands:
- ./gradlew test
trigger:
event:
- pull_request
---
kind: pipeline
name: gitnex-ci-build
steps:
- name: build
image: nextcloudci/android:android-49
commands:
- ./gradlew build
when:
branch:
- master
trigger:
event:
- push
- pull_request
branch:
- master

View File

@ -83,5 +83,6 @@ Open source libraries
- Abumoallim/android-multi-select-dialog
- Pes/materialcolorpicker
- Hendraanggrian/socialview
- Fython/BreadcrumbsView
[Follow me on Fediverse - mastodon.social/@mmarif](https://mastodon.social/@mmarif)

View File

@ -6,8 +6,8 @@ android {
applicationId "org.mian.gitnex"
minSdkVersion 21
targetSdkVersion 28
versionCode 63
versionName "2.1.3"
versionCode 70
versionName "2.2.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
@ -23,12 +23,12 @@ android {
}
dependencies {
def lifecycle_version = "2.2.0-alpha05"
def lifecycle_version = "2.2.0-beta01"
final def markwon_version = "4.1.1"
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'com.google.android.material:material:1.1.0-alpha10'
implementation 'com.google.android.material:material:1.1.0-beta01'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
testImplementation 'junit:junit:4.12'
@ -71,4 +71,6 @@ dependencies {
implementation 'android.arch.persistence.room:runtime:1.1.1'
annotationProcessor 'android.arch.persistence.room:compiler:1.1.1'
implementation "com.github.HamidrezaAmz:BreadcrumbsView:0.2.9"
}

View File

@ -2,6 +2,7 @@ package org.mian.gitnex.activities;
import android.content.Context;
import android.os.Bundle;
import android.text.method.ScrollingMovementMethod;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
@ -58,6 +59,7 @@ public class FileViewActivity extends AppCompatActivity {
String singleFileName = getIntent().getStringExtra("singleFileName");
TextView toolbar_title = findViewById(R.id.toolbar_title);
toolbar_title.setMovementMethod(new ScrollingMovementMethod());
toolbar_title.setText(singleFileName);
initCloseListener();

View File

@ -1,7 +1,6 @@
package org.mian.gitnex.adapters;
import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@ -12,10 +11,8 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import org.mian.gitnex.R;
import org.mian.gitnex.activities.FileViewActivity;
import org.mian.gitnex.helpers.Toasty;
import org.mian.gitnex.models.Files;
import org.mian.gitnex.util.TinyDB;
import java.util.ArrayList;
import java.util.List;
@ -29,6 +26,13 @@ public class FilesAdapter extends RecyclerView.Adapter<FilesAdapter.FilesViewHol
private Context mCtx;
private List<Files> filesListFull;
private FilesAdapterListener filesListener;
public interface FilesAdapterListener {
void onClickDir(String str);
void onClickFile(String str);
}
class FilesViewHolder extends RecyclerView.ViewHolder {
private ImageView fileTypeImage;
@ -49,16 +53,12 @@ public class FilesAdapter extends RecyclerView.Adapter<FilesAdapter.FilesViewHol
public void onClick(View v) {
Context context = v.getContext();
TinyDB tinyDb = new TinyDB(context);
if(fileType.getText().toString().equals("file")) {
Intent intent = new Intent(context, FileViewActivity.class);
intent.putExtra("singleFileName", fileName.getText().toString());
context.startActivity(intent);
filesListener.onClickFile(fileName.getText().toString());
}
else if(fileType.getText().toString().equals("dir")) {
//tinyDb.putString("filesDir", fileName.getText().toString());
Toasty.info(context, context.getString(R.string.filesDirNotSupportedYet));
filesListener.onClickDir(fileName.getText().toString());
}
else {
Toasty.info(context, context.getString(R.string.filesGenericError));
@ -134,10 +134,11 @@ public class FilesAdapter extends RecyclerView.Adapter<FilesAdapter.FilesViewHol
}
}
public FilesAdapter(Context mCtx, List<Files> filesListMain) {
public FilesAdapter(Context mCtx, List<Files> filesListMain, FilesAdapterListener filesListener) {
this.mCtx = mCtx;
this.filesList = filesListMain;
filesListFull = new ArrayList<>(filesList);
this.filesListener = filesListener;
}
@NonNull

View File

@ -77,7 +77,7 @@ public class RepoStargazersAdapter extends BaseAdapter {
private void initData(RepoStargazersAdapter.ViewHolder viewHolder, int position) {
UserInfo currentItem = stargazersList.get(position);
Picasso.get().load(currentItem.getAvatar()).transform(new RoundedTransformation(100, 0)).resize(200, 200).centerCrop().into(viewHolder.memberAvatar);
Picasso.get().load(currentItem.getAvatar()).transform(new RoundedTransformation(8, 0)).resize(180, 180).centerCrop().into(viewHolder.memberAvatar);
if(!currentItem.getFullname().equals("")) {
viewHolder.memberName.setText(currentItem.getFullname());

View File

@ -77,7 +77,7 @@ public class RepoWatchersAdapter extends BaseAdapter {
private void initData(RepoWatchersAdapter.ViewHolder viewHolder, int position) {
UserInfo currentItem = watchersList.get(position);
Picasso.get().load(currentItem.getAvatar()).transform(new RoundedTransformation(100, 0)).resize(200, 200).centerCrop().into(viewHolder.memberAvatar);
Picasso.get().load(currentItem.getAvatar()).transform(new RoundedTransformation(8, 0)).resize(180, 180).centerCrop().into(viewHolder.memberAvatar);
if(!currentItem.getFullname().equals("")) {
viewHolder.memberName.setText(currentItem.getFullname());

View File

@ -1,5 +1,6 @@
package org.mian.gitnex.fragments;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import androidx.annotation.NonNull;
@ -10,8 +11,6 @@ import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import android.os.Handler;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
@ -23,29 +22,36 @@ import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
import org.mian.gitnex.R;
import org.mian.gitnex.activities.FileViewActivity;
import org.mian.gitnex.adapters.FilesAdapter;
import org.mian.gitnex.helpers.Authorization;
import org.mian.gitnex.models.Files;
import org.mian.gitnex.util.AppUtil;
import org.mian.gitnex.util.TinyDB;
import org.mian.gitnex.viewmodels.FilesViewModel;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import moe.feng.common.view.breadcrumbs.BreadcrumbsView;
import moe.feng.common.view.breadcrumbs.DefaultBreadcrumbsCallback;
import moe.feng.common.view.breadcrumbs.model.BreadcrumbItem;
/**
* Author M M Arif
*/
public class FilesFragment extends Fragment {
public class FilesFragment extends Fragment implements FilesAdapter.FilesAdapterListener {
private ProgressBar mProgressBar;
private FilesAdapter adapter;
private RecyclerView mRecyclerView;
private TextView noDataFiles;
private LinearLayout filesFrame;
private TextView fileStructure;
private static String repoNameF = "param2";
private static String repoOwnerF = "param1";
private boolean initialLoad = true;
private BreadcrumbsView mBreadcrumbsView;
private String repoName;
private String repoOwner;
@ -88,53 +94,118 @@ public class FilesFragment extends Fragment {
noDataFiles = v.findViewById(R.id.noDataFiles);
filesFrame = v.findViewById(R.id.filesFrame);
final SwipeRefreshLayout swipeRefresh = v.findViewById(R.id.pullToRefresh);
fileStructure = v.findViewById(R.id.fileStructure);
mRecyclerView = v.findViewById(R.id.recyclerView);
mRecyclerView.setHasFixedSize(true);
mRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
String filesDirDB = tinyDb.getString("filesDir");
DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(mRecyclerView.getContext(),
DividerItemDecoration.VERTICAL);
mRecyclerView.addItemDecoration(dividerItemDecoration);
mProgressBar = v.findViewById(R.id.progress_bar);
swipeRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
swipeRefresh.setRefreshing(false);
FilesViewModel.loadFilesList(instanceUrl, Authorization.returnAuthentication(getContext(), loginUid, instanceToken), repoOwner, repoName);
}
}, 200);
}
});
mBreadcrumbsView = v.findViewById(R.id.breadcrumbs_view);
mBreadcrumbsView.setItems(new ArrayList<>(Arrays.asList(
BreadcrumbItem.createSimpleItem(getResources().getString(R.string.filesBreadcrumbRoot))
)));
fetchDataAsync(instanceUrl, Authorization.returnAuthentication(getContext(), loginUid, instanceToken), repoOwner, repoName);
return v;
}
@Override
public void onResume() {
super.onResume();
}
private static BreadcrumbItem createItem(String title) {
List<String> list = new ArrayList<>();
list.add(title);
return new BreadcrumbItem(list);
}
@Override
public void onClickDir(String dirName) {
TinyDB tinyDb = new TinyDB(getContext());
final String instanceUrl = tinyDb.getString("instanceUrl");
final String loginUid = tinyDb.getString("loginUid");
final String instanceToken = "token " + tinyDb.getString(loginUid + "-token");
StringBuilder breadcrumbBuilder = new StringBuilder();
breadcrumbBuilder.append(fileStructure.getText().toString()).append("/").append(dirName);
fileStructure.setText(breadcrumbBuilder);
mBreadcrumbsView.addItem(createItem(dirName));
mBreadcrumbsView.setCallback(new DefaultBreadcrumbsCallback<BreadcrumbItem>() {
@Override
public void onNavigateBack(BreadcrumbItem item, int position) {
if(position == 0) {
fetchDataAsync(instanceUrl, Authorization.returnAuthentication(getContext(), loginUid, instanceToken), repoOwner, repoName);
fileStructure.setText("");
return;
}
String filterDir = fileStructure.getText().toString();
String result = filterDir.substring(0, filterDir.indexOf(item.getSelectedItem()));
fileStructure.setText(result + item.getSelectedItem());
fetchDataAsyncSub(instanceUrl, Authorization.returnAuthentication(getContext(), loginUid, instanceToken), repoOwner, repoName, fileStructure.getText().toString());
}
@Override
public void onNavigateNewLocation(BreadcrumbItem newItem, int changedPosition) {
}
});
fetchDataAsyncSub(instanceUrl, Authorization.returnAuthentication(getContext(), loginUid, instanceToken), repoOwner, repoName, fileStructure.getText().toString());
}
@Override
public void onClickFile(String fileName) {
Intent intent = new Intent(getContext(), FileViewActivity.class);
if(!fileStructure.getText().toString().equals("Root")) {
intent.putExtra("singleFileName", fileStructure.getText().toString()+"/"+fileName);
}
else {
intent.putExtra("singleFileName", fileName);
}
Objects.requireNonNull(getContext()).startActivity(intent);
}
private void fetchDataAsync(String instanceUrl, String instanceToken, String owner, String repo) {
mRecyclerView.setVisibility(View.GONE);
mProgressBar.setVisibility(View.VISIBLE);
FilesViewModel filesModel = new ViewModelProvider(this).get(FilesViewModel.class);
filesModel.getFilesList(instanceUrl, instanceToken, owner, repo).observe(this, new Observer<List<Files>>() {
filesModel.getFilesList(instanceUrl, instanceToken, owner, repo, getContext()).observe(this, new Observer<List<Files>>() {
@Override
public void onChanged(@Nullable List<Files> filesListMain) {
adapter = new FilesAdapter(getContext(), filesListMain);
adapter = new FilesAdapter(getContext(), filesListMain, FilesFragment.this);
mBreadcrumbsView.removeItemAfter(1);
if(adapter.getItemCount() > 0) {
mRecyclerView.setVisibility(View.VISIBLE);
mRecyclerView.setAdapter(adapter);
filesFrame.setVisibility(View.VISIBLE);
noDataFiles.setVisibility(View.GONE);
}
else {
mRecyclerView.setVisibility(View.VISIBLE);
adapter.notifyDataSetChanged();
mRecyclerView.setAdapter(adapter);
filesFrame.setVisibility(View.VISIBLE);
@ -149,18 +220,23 @@ public class FilesFragment extends Fragment {
private void fetchDataAsyncSub(String instanceUrl, String instanceToken, String owner, String repo, String filesDir) {
mRecyclerView.setVisibility(View.GONE);
mProgressBar.setVisibility(View.VISIBLE);
FilesViewModel filesModel2 = new ViewModelProvider(this).get(FilesViewModel.class);
filesModel2.getFilesList2(instanceUrl, instanceToken, owner, repo, filesDir).observe(this, new Observer<List<Files>>() {
filesModel2.getFilesList2(instanceUrl, instanceToken, owner, repo, filesDir, getContext()).observe(this, new Observer<List<Files>>() {
@Override
public void onChanged(@Nullable List<Files> filesListMain2) {
adapter = new FilesAdapter(getContext(), filesListMain2);
adapter = new FilesAdapter(getContext(), filesListMain2, FilesFragment.this);
if(adapter.getItemCount() > 0) {
mRecyclerView.setVisibility(View.VISIBLE);
mRecyclerView.setAdapter(adapter);
filesFrame.setVisibility(View.VISIBLE);
noDataFiles.setVisibility(View.GONE);
}
else {
mRecyclerView.setVisibility(View.VISIBLE);
adapter.notifyDataSetChanged();
mRecyclerView.setAdapter(adapter);
filesFrame.setVisibility(View.VISIBLE);

View File

@ -30,7 +30,7 @@ public class SettingsFragment extends Fragment {
private Context ctx = null;
private static String[] langList = {"Arabic", "Chinese", "English", "Finnish", "French", "German", "Persian", "Russian"};
private static String[] langList = {"Arabic", "Chinese", "English", "Finnish", "French", "German", "Italian", "Persian", "Russian", "Serbian"};
private static int langSelectedChoice = 0;
private static String[] timeList = {"Pretty", "Normal"};
@ -259,12 +259,18 @@ public class SettingsFragment extends Fragment {
case "German":
tinyDb.putString("locale", "de");
break;
case "Italian":
tinyDb.putString("locale", "it");
break;
case "Persian":
tinyDb.putString("locale", "fa");
break;
case "Russian":
tinyDb.putString("locale", "ru");
break;
case "Serbian":
tinyDb.putString("locale", "sr");
break;
default:
tinyDb.putString("locale", "en");
break;

View File

@ -1,11 +1,14 @@
package org.mian.gitnex.viewmodels;
import android.content.Context;
import android.util.Log;
import androidx.annotation.NonNull;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
import org.mian.gitnex.R;
import org.mian.gitnex.clients.RetrofitClient;
import org.mian.gitnex.helpers.Toasty;
import org.mian.gitnex.models.Files;
import java.util.Collections;
import java.util.Comparator;
@ -23,15 +26,15 @@ public class FilesViewModel extends ViewModel {
private static MutableLiveData<List<Files>> filesList;
private static MutableLiveData<List<Files>> filesList2;
public LiveData<List<Files>> getFilesList(String instanceUrl, String token, String owner, String repo) {
public LiveData<List<Files>> getFilesList(String instanceUrl, String token, String owner, String repo, Context ctx) {
filesList = new MutableLiveData<>();
loadFilesList(instanceUrl, token, owner, repo);
loadFilesList(instanceUrl, token, owner, repo, ctx);
return filesList;
}
public static void loadFilesList(String instanceUrl, String token, String owner, String repo) {
private static void loadFilesList(String instanceUrl, String token, String owner, String repo, final Context ctx) {
Call<List<Files>> call = RetrofitClient
.getInstance(instanceUrl)
@ -43,16 +46,17 @@ public class FilesViewModel extends ViewModel {
@Override
public void onResponse(@NonNull Call<List<Files>> call, @NonNull Response<List<Files>> response) {
Collections.sort(response.body(), new Comparator<Files>() {
@Override
public int compare(Files byType1, Files byType2) {
return byType1.getType().compareTo(byType2.getType());
}
});
if (response.isSuccessful()) {
Collections.sort(response.body(), new Comparator<Files>() {
@Override
public int compare(Files byType1, Files byType2) {
return byType1.getType().compareTo(byType2.getType());
}
});
filesList.postValue(response.body());
} else {
Toasty.info(ctx, ctx.getString(R.string.noDataFilesTab));
Log.i("onResponse", String.valueOf(response.code()));
}
@ -66,15 +70,15 @@ public class FilesViewModel extends ViewModel {
});
}
public LiveData<List<Files>> getFilesList2(String instanceUrl, String token, String owner, String repo, String filesDir) {
public LiveData<List<Files>> getFilesList2(String instanceUrl, String token, String owner, String repo, String filesDir, Context ctx) {
filesList = new MutableLiveData<>();
loadFilesList2(instanceUrl, token, owner, repo, filesDir);
filesList2 = new MutableLiveData<>();
loadFilesList2(instanceUrl, token, owner, repo, filesDir, ctx);
return filesList;
return filesList2;
}
public static void loadFilesList2(String instanceUrl, String token, String owner, String repo, String filesDir) {
private static void loadFilesList2(String instanceUrl, String token, String owner, String repo, String filesDir, final Context ctx) {
Call<List<Files>> call = RetrofitClient
.getInstance(instanceUrl)
@ -86,16 +90,17 @@ public class FilesViewModel extends ViewModel {
@Override
public void onResponse(@NonNull Call<List<Files>> call, @NonNull Response<List<Files>> response) {
Collections.sort(response.body(), new Comparator<Files>() {
@Override
public int compare(Files byType1, Files byType2) {
return byType1.getType().compareTo(byType2.getType());
}
});
if (response.isSuccessful()) {
filesList.postValue(response.body());
Collections.sort(response.body(), new Comparator<Files>() {
@Override
public int compare(Files byType1, Files byType2) {
return byType1.getType().compareTo(byType2.getType());
}
});
filesList2.postValue(response.body());
} else {
Toasty.info(ctx, ctx.getString(R.string.noDataFilesTab));
Log.i("onResponse", String.valueOf(response.code()));
}

View File

@ -35,8 +35,11 @@
android:layout_gravity="center_vertical"
android:text="@string/defaultFilename"
android:textColor="@color/white"
android:maxLines="1"
android:textSize="20sp" />
android:ellipsize="none"
android:scrollbars="horizontal"
android:singleLine="true"
android:layout_marginEnd="20dp"
android:textSize="18sp" />
</androidx.appcompat.widget.Toolbar>
@ -58,7 +61,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/colorWhite"
android:textSize="16sp"
android:textSize="14sp"
android:padding="15dp"
/>

View File

@ -147,23 +147,13 @@
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/appRepoIssuesText"
android:textColor="@color/colorWhite"
android:textSize="14sp"
android:gravity="center"
android:layout_marginTop="20dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/appRepoIssuesLink"
android:text="@string/appRepoLink"
android:textColor="@color/colorWhite"
android:textSize="14sp"
android:gravity="center"
android:autoLink="web"
android:textColorLink="@color/lightBlue"
android:layout_marginTop="20dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp" />

View File

@ -25,7 +25,7 @@
android:layout_height="28dp"
android:layout_marginEnd="15dp"
android:contentDescription="@string/repoContentAvatar"
android:src="@drawable/ic_android" />
android:src="@drawable/ic_file" />
<LinearLayout
android:id="@+id/infoSection"

View File

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
tools:context=".activities.RepoDetailActivity">
@ -16,32 +16,27 @@
>
<TextView
android:id="@+id/fileBrowserBreadcrumb"
android:id="@+id/fileStructure"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"/>
<moe.feng.common.view.breadcrumbs.BreadcrumbsView
android:id="@+id/breadcrumbs_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="16sp"
android:layout_marginTop="20dp"
android:layout_marginBottom="10dp"
android:layout_marginStart="15dp"
android:layout_marginEnd="15dp"
android:textColor="@color/lightGray"
android:text="@string/filesBreadcrumb" />
app:CustomTextSize="16sp"
app:SelectedTextColor="@color/colorAccent"
app:UnSelectedTextColor="@color/lightGray"
android:text="@string/filesBreadcrumbRoot"/>
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/pullToRefresh"
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorPrimary"
android:padding="4dp"
android:scrollbars="vertical"
/>
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
android:layout_height="match_parent"
android:background="@color/colorPrimary"
android:padding="4dp"
android:scrollbars="vertical" />
<TextView
android:id="@+id/noDataFiles"
@ -63,6 +58,6 @@
android:layout_height="match_parent"
android:layout_gravity="center"
android:indeterminate="true"
android:visibility="visible" />
android:visibility="gone" />
</LinearLayout>

View File

@ -11,6 +11,7 @@
<string name="navAbout">عن التطبيق</string>
<string name="navRate">Rate GitNex</string>
<string name="navLogout">الخروج</string>
<string name="navExplore">استكشف</string>
<!-- menu items -->
<!-- page titles -->
<string name="pageTitleAbout">عن التطبيق</string>
@ -22,7 +23,7 @@
<string name="pageTitleOrganizations">المنظمات</string>
<string name="pageTitleIssues">Issues</string>
<string name="pageTitleSettings">الإعدادات</string>
<string name="pageTitleCreateOrganization">New Organization</string>
<string name="pageTitleCreateOrganization">منظمة جديدة</string>
<string name="pageTitleCreateMilestone">New Milestone</string>
<string name="pageTitleCreateNewIssue">New Issue</string>
<string name="pageTitleCreateLabel">New Label</string>
@ -33,17 +34,18 @@
<string name="pageTitleCreateTeam">فريق جديد</string>
<string name="pageTitleAddEmail">إضافة عنوان بريد الكتروني</string>
<string name="pageTitleNewFile">ملف جديد</string>
<string name="pageTitleExplore">استكشف</string>
<!-- page titles -->
<string name="appVersion">Version\u0020:\u0020</string>
<string name="appBuild">Build No.\u0020:\u0020</string>
<string name="repoName">Demo repo</string>
<string name="repoFullname">Repo with ORG</string>
<string name="repoDescription">Demo description</string>
<string name="repoDescription">مثال عن الوصف</string>
<string name="noData">No repositories found</string>
<string name="orgName">Demo organization</string>
<string name="orgDescription">Demo description</string>
<string name="orgDescription">مثال عن الوصف</string>
<string name="noDataOrg">No organizations found</string>
<string name="newCreateButtonCopy">Create</string>
<string name="newCreateButtonCopy">انشئ</string>
<string name="newUpdateButtonCopy">Update</string>
<string name="newRepoTintCopy">اسم المستودع</string>
<string name="newRepoDescTintCopy">Repository Description</string>
@ -114,7 +116,7 @@
<string name="infoTabRepoForksCount">المُشتقّات</string>
<string name="infoTabRepoCreatedAt">Created</string>
<string name="infoTabRepoUpdatedAt">Last Updated</string>
<string name="timeAtText">at</string>
<string name="timeAtText">على</string>
<string name="createdText">Opened\u0020</string>
<string name="dueDateText">Due Date</string>
<string name="issueStatusTextOpen">Status: open</string>
@ -179,7 +181,7 @@
<!-- settings -->
<string name="settingsLanguageHeaderText">الترجمة</string>
<string name="settingsDateTimeHeaderText">Date &amp; Time</string>
<string name="settingsSave">Settings saved.</string>
<string name="settingsSave">تم حفظ الإعدادات.</string>
<string name="settingsLanguageSelectorHeader">اللغة</string>
<string name="settingsLanguageSelectedHeaderDefault">العربية</string>
<string name="settingsAppearanceHeader">المظهر</string>
@ -364,7 +366,7 @@
<string name="newFileOldBranches">Current Branches</string>
<string name="newFileRequiredFields">Fields like filename, content and commit message are required</string>
<string name="newFileCurrentBranchMessage">Selecting current branch will disable new branch</string>
<string name="newFileNewBranchMessage">e.g: new-branch</string>
<string name="newFileNewBranchMessage">مثال: new-branch</string>
<string name="newFileRequiredFieldNewBranchName">New branch name cannot be empty if current branch is not selected</string>
<string name="strFilter">Filter</string>
<string name="copyIssueUrl">Copy Issue URL</string>
@ -398,4 +400,13 @@
<string name="emptyFields">كافة الحقول لازمة</string>
<!-- generic copy -->
<string name="translateText">ترجم GitNex على كراودين</string>
<string name="exploreTextBoxHint">Explore repositories</string>
<string name="starRepository">Star Repository</string>
<string name="unStarRepository">Unstar Repository</string>
<string name="starRepositorySuccess">تمت إضافة المستودع إلى قائمة المفضلة</string>
<string name="unStarRepositorySuccess">تمت إزالة المستودع مِن قائمة المفضلة</string>
<string name="watchRepository">راقب المستودع</string>
<string name="unWatchRepository">إلغاء مراقبة المستودع</string>
<string name="watchRepositorySuccess">تمت إضافة المستودع إلى قائمة المراقبة</string>
<string name="unWatchRepositorySuccess">تمت إزالة المستودع مِن قائمة المراقبة</string>
</resources>

View File

@ -11,6 +11,7 @@
<string name="navAbout">Über</string>
<string name="navRate">Bewerte GitNex</string>
<string name="navLogout">Ausloggen</string>
<string name="navExplore">Erkunden</string>
<!-- menu items -->
<!-- page titles -->
<string name="pageTitleAbout">Über</string>
@ -33,6 +34,7 @@
<string name="pageTitleCreateTeam">Team erstellen</string>
<string name="pageTitleAddEmail">E-Mail Adresse hinzufügen</string>
<string name="pageTitleNewFile">Neue Datei</string>
<string name="pageTitleExplore">Erkunden</string>
<!-- page titles -->
<string name="appVersion">Version\u0020:\u0020</string>
<string name="appBuild">Build Nr.\u0020:\u0020</string>
@ -189,7 +191,7 @@
<string name="settingsIssueBadgeHeaderText">Issues Badge</string>
<string name="settingsHelpTranslateText">Hilf uns dabei, GitNex in deine Sprache zu übersetzen.</string>
<string name="codeBlockHeaderText">Code Block Farbe</string>
<string name="settingsCodeBlockSelectorDialogTitle">Code Block Farb Auswahl</string>
<string name="settingsCodeBlockSelectorDialogTitle">Code-Block-Farbauswahl</string>
<string name="settingsHomeScreenHeaderText">Startseite</string>
<string name="settingsHomeScreenSelectedText">Meine Repositories</string>
<string name="settingshomeScreenSelectorDialogTitle">Home Screen Auswählen</string>
@ -398,4 +400,13 @@
<string name="emptyFields">Es sind alle Felder erforderlich</string>
<!-- generic copy -->
<string name="translateText">GitNex mit Crowdin übersetzen</string>
<string name="exploreTextBoxHint">Repositories entdecken</string>
<string name="starRepository">Repository favorisieren</string>
<string name="unStarRepository">Repository nicht mehr favorisieren</string>
<string name="starRepositorySuccess">Repository zur Favoriten hinzugefügt</string>
<string name="unStarRepositorySuccess">Repository von Favoriten entfernt</string>
<string name="watchRepository">Repository beobachten</string>
<string name="unWatchRepository">Repository nicht mehr beobachten</string>
<string name="watchRepositorySuccess">Repository zur Merkliste hinzugefügt</string>
<string name="unWatchRepositorySuccess">Repository von der Merkliste entfernt</string>
</resources>

View File

@ -11,6 +11,7 @@
<string name="navAbout">در مورد ما</string>
<string name="navRate">به GitNex امتیاز دهید</string>
<string name="navLogout">خروج از حساب کاربری</string>
<string name="navExplore">Explore</string>
<!-- menu items -->
<!-- page titles -->
<string name="pageTitleAbout">در مورد ما</string>
@ -33,6 +34,7 @@
<string name="pageTitleCreateTeam">تیم جدید</string>
<string name="pageTitleAddEmail">افزدون پست الکترونیکی</string>
<string name="pageTitleNewFile">فایل جدید</string>
<string name="pageTitleExplore">Explore</string>
<!-- page titles -->
<string name="appVersion">نسخه\u0020:\u0020</string>
<string name="appBuild">Build No.\u0020:\u0020</string>
@ -398,4 +400,13 @@
<string name="emptyFields">All fields are required</string>
<!-- generic copy -->
<string name="translateText">Translate GitNex with Crowdin</string>
<string name="exploreTextBoxHint">Explore repositories</string>
<string name="starRepository">Star Repository</string>
<string name="unStarRepository">Unstar Repository</string>
<string name="starRepositorySuccess">Repository added to starred list</string>
<string name="unStarRepositorySuccess">Repository removed from starred list</string>
<string name="watchRepository">Watch Repository</string>
<string name="unWatchRepository">Unwatch Repository</string>
<string name="watchRepositorySuccess">Repository added to watch list</string>
<string name="unWatchRepositorySuccess">Repository removed from watch list</string>
</resources>

View File

@ -11,6 +11,7 @@
<string name="navAbout">Tietoja</string>
<string name="navRate">Anna palautetta</string>
<string name="navLogout">Kirjaudu ulos</string>
<string name="navExplore">Explore</string>
<!-- menu items -->
<!-- page titles -->
<string name="pageTitleAbout">Tietoja</string>
@ -33,6 +34,7 @@
<string name="pageTitleCreateTeam">Uusi tiimi</string>
<string name="pageTitleAddEmail">Lisää sähköpostiosoite</string>
<string name="pageTitleNewFile">Uusi tiedosto</string>
<string name="pageTitleExplore">Explore</string>
<!-- page titles -->
<string name="appVersion">Versio\u0020:\u0020</string>
<string name="appBuild">Alaversio \u0020:\u0020</string>
@ -398,4 +400,13 @@
<string name="emptyFields">All fields are required</string>
<!-- generic copy -->
<string name="translateText">Translate GitNex with Crowdin</string>
<string name="exploreTextBoxHint">Explore repositories</string>
<string name="starRepository">Star Repository</string>
<string name="unStarRepository">Unstar Repository</string>
<string name="starRepositorySuccess">Repository added to starred list</string>
<string name="unStarRepositorySuccess">Repository removed from starred list</string>
<string name="watchRepository">Watch Repository</string>
<string name="unWatchRepository">Unwatch Repository</string>
<string name="watchRepositorySuccess">Repository added to watch list</string>
<string name="unWatchRepositorySuccess">Repository removed from watch list</string>
</resources>

View File

@ -11,6 +11,7 @@
<string name="navAbout">À propos</string>
<string name="navRate">Noter GitNex</string>
<string name="navLogout">Déconnexion</string>
<string name="navExplore">Explorer</string>
<!-- menu items -->
<!-- page titles -->
<string name="pageTitleAbout">À propos</string>
@ -33,6 +34,7 @@
<string name="pageTitleCreateTeam">Nouvelle équipe</string>
<string name="pageTitleAddEmail">Ajouter une adresse e-mail</string>
<string name="pageTitleNewFile">Nouveau fichier</string>
<string name="pageTitleExplore">Explorer</string>
<!-- page titles -->
<string name="appVersion">Version\u0020:\u0020</string>
<string name="appBuild">Build No.\u0020:\u0020</string>
@ -398,4 +400,13 @@
<string name="emptyFields">Tous les champs sont requis</string>
<!-- generic copy -->
<string name="translateText">Traduire GitNex avec Crowdin</string>
<string name="exploreTextBoxHint">Explorer les dépôts</string>
<string name="starRepository">Ajouter aux favoris</string>
<string name="unStarRepository">Retirer des favoris</string>
<string name="starRepositorySuccess">Dépôt ajouté aux favoris</string>
<string name="unStarRepositorySuccess">Dépôt retiré des favoris</string>
<string name="watchRepository">Suivre le dépôt</string>
<string name="unWatchRepository">Ne plus suivre le dépôt</string>
<string name="watchRepositorySuccess">Vous suivez ce dépôt</string>
<string name="unWatchRepositorySuccess">Vous ne suivez plus ce dépôt</string>
</resources>

View File

@ -0,0 +1,412 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<!-- menu items -->
<string name="navMyRepos">I miei Repository</string>
<string name="navStarredRepos">Repository preferiti</string>
<string name="navRepos">Repositories</string>
<string name="navProfile">Profilo</string>
<string name="navSettings">Impostazioni</string>
<string name="navOrgs">Organizzazioni</string>
<string name="navAbout">Info su</string>
<string name="navRate">Valuta GitNex</string>
<string name="navLogout">Esci</string>
<string name="navExplore">Esplora</string>
<!-- menu items -->
<!-- page titles -->
<string name="pageTitleAbout">Info su</string>
<string name="pageTitleHome">Home</string>
<string name="pageTitleMyRepos">I miei Repository</string>
<string name="pageTitleRepositories">Repository</string>
<string name="pageTitleProfile">Profilo</string>
<string name="pageTitleNewRepo">Nuovo Repository</string>
<string name="pageTitleOrganizations">Organizzazioni</string>
<string name="pageTitleIssues">Problemi</string>
<string name="pageTitleSettings">Impostazioni</string>
<string name="pageTitleCreateOrganization">Nuova organizzazione</string>
<string name="pageTitleCreateMilestone">Nuova Milestone</string>
<string name="pageTitleCreateNewIssue">Nuovo Problema</string>
<string name="pageTitleCreateLabel">Nuova etichetta</string>
<string name="pageTitleCredits">Crediti</string>
<string name="pageTitleLabelUpdate">Aggiorna Etichetta</string>
<string name="pageTitleSponsors">Sponsor</string>
<string name="pageTitleStarredRepos">Repository preferiti</string>
<string name="pageTitleCreateTeam">Nuovo Team</string>
<string name="pageTitleAddEmail">Aggiungi indirizzo e-mail</string>
<string name="pageTitleNewFile">Nuovo File</string>
<string name="pageTitleExplore">Esplora</string>
<!-- page titles -->
<string name="appVersion">Versione\u0020:\u0020</string>
<string name="appBuild">Costruzione n.\u0020:\u0020</string>
<string name="repoName">Demo repo</string>
<string name="repoFullname">Repo with ORG</string>
<string name="repoDescription">Descrizione demo</string>
<string name="noData">Nessuna repository trovata</string>
<string name="orgName">Organizzazione demo</string>
<string name="orgDescription">Descrizione demo</string>
<string name="noDataOrg">Nessuna organizzazione trovata</string>
<string name="newCreateButtonCopy">Crea</string>
<string name="newUpdateButtonCopy">Aggiorna</string>
<string name="newRepoTintCopy">Nome Repository</string>
<string name="newRepoDescTintCopy">Descrizione Repository</string>
<string name="newRepoPrivateCopy">Privato</string>
<string name="newRepoDescInfo">Massimo 255 caratteri</string>
<string name="newRepoOwner">Proprietario</string>
<string name="newOrgTintCopy">Nome Organizzazione</string>
<string name="newOrgDescTintCopy">Descrizione Organizzazione</string>
<string name="newOrgDescInfo">Massimo 255 caratteri</string>
<string name="userName">Username</string>
<string name="passWord">Password</string>
<string name="btnLogin">LOGIN</string>
<string name="instanceUrl">Instance URL</string>
<string name="navigation_drawer_open">Open Navigation Drawer</string>
<string name="navigation_drawer_close">Close Navigation Drawer</string>
<string name="logo">Login to Gitea</string>
<string name="urlInfoTooltip">1- Choose the correct protocol(https or http). \n2- Enter Gitea 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.</string>
<string name="loginFailed">Wrong username/password</string>
<string name="protocolError">It is not recommended to use HTTP protocol unless you are testing on local network.</string>
<string name="malformedJson">Malformed JSON was received. Server response was not successful.</string>
<string name="emptyFieldURL">Instance URL is required</string>
<string name="emptyFieldUsername">Username is required</string>
<string name="emptyFieldPassword">Password is required</string>
<string name="checkNetConnection">Cannot access network, please check your Internet connection</string>
<string name="repoNameErrorEmpty">Repository name is empty</string>
<string name="repoNameErrorInvalid">Repository name is not valid. [a&#8211;z A&#8211;Z 0&#8211;9 &#8211; _]</string>
<string name="repoDescError">Repository description exceeds the max 255 characters limit</string>
<string name="repoCreated">Repository created successfully</string>
<string name="repoCreatedError">Something went wrong, please try again</string>
<string name="repoExistsError">Repository of this name already exists under selected Owner</string>
<string name="orgNameErrorEmpty">Organization name is empty</string>
<string name="orgNameErrorInvalid">Organization name is not valid, [a&#8211;z A&#8211;Z 0&#8211;9 &#8211; _]</string>
<string name="orgDescError">Organization description exceeds the max 255 characters limit</string>
<string name="orgCreated">Organization created successfully</string>
<string name="orgCreatedError">Something went wrong, please try again</string>
<string name="orgExistsError">Organization already exists</string>
<string name="processingText">Processing</string>
<string name="search">Search</string>
<string name="wip">Work in progress</string>
<string name="close">Close</string>
<string name="addNewContent">Add</string>
<string name="orgContentAvatar">Org</string>
<string name="repoContentAvatar">Repo</string>
<string name="privateAvatar">Pri</string>
<string name="removeContent">Remove</string>
<string name="genericApiStatusError">Instance has returned an error. Code\u0020</string>
<string name="title_activity_repo_detail">RepoDetailActivity</string>
<string name="tab_text_info">Details</string>
<string name="tab_text_files">Files</string>
<string name="tab_text_issues">Open Issues</string>
<string name="tabItemCloseIssues">Closed Issues</string>
<string name="tab_text_ml">Milestones</string>
<string name="tab_text_releases">Releases</string>
<string name="tab_text_branches">Branches</string>
<string name="tab_text_labels">Labels</string>
<string name="action_settings">Settings</string>
<string name="tab_text_collaborators">Collaborators</string>
<string name="noDataIssueTab">No issues found</string>
<string name="infoTabRepoName1">Repository</string>
<string name="infoTabRepoOwner1">Proprietario</string>
<string name="infoTabRepoDesc">Descrizione</string>
<string name="infoTabRepoWebsite">Sito Web</string>
<string name="infoTabRepoSize">Dimensione</string>
<string name="infoTabRepoDefaultBranch">Branch predefinito</string>
<string name="infoTabRepoSshUrl">SSH URL</string>
<string name="infoTabRepoCloneUrl">Clona URL</string>
<string name="infoTabRepoRepoUrl">URL del Repo</string>
<string name="infoTabRepoForksCount">Forks</string>
<string name="infoTabRepoCreatedAt">Creato</string>
<string name="infoTabRepoUpdatedAt">Ultimo aggiornamento</string>
<string name="timeAtText">alle</string>
<string name="createdText">Aperto\u0020</string>
<string name="dueDateText">Data Scadenza</string>
<string name="issueStatusTextOpen">Stato: aperto</string>
<string name="issueStatusOpen">apri</string>
<string name="issueStatusTextClosed">Stato: chiuso</string>
<string name="issueStatusClosed">chiuso</string>
<string name="issueCreator">Creatore:\u0020</string>
<string name="issueAssigneesText">Assegnatari</string>
<string name="issueTypeIssue">Tipo: Problema</string>
<string name="issueTypePullRequest">Tipo: Richiesta Pull</string>
<string name="issueCommenter">Commentatore:\u0020</string>
<string name="issueMilestone">Milestone %1$s</string>
<string name="dueDate">Scaduto %1$s</string>
<string name="createdTime">Aperto alle: %1$s</string>
<string name="assignedTo">Assegnato a: %1$s</string>
<string name="commentButtonText">Commento</string>
<string name="commentEmptyError">Inserisci il tuo commento</string>
<string name="commentSuccess">Commento pubblicato</string>
<string name="commentError">Qualcosa è andato storto, riprova</string>
<string name="generalImgContentText">Avatar</string>
<string name="noDataMilestonesTab">Nessun milestone trovato</string>
<string name="commitAuthor">Autore commit: %1$s</string>
<string name="commitHash">Hash commit \n%1$s%2$s</string>
<string name="releaseTitle">Nome Release</string>
<string name="releaseDescription">Descrizione Release</string>
<string name="releaseDownloadText">Download</string>
<string name="releaseType">Tipo Release</string>
<string name="releaseZip">Release Zip</string>
<string name="releaseTar">Release Tar</string>
<string name="noDataReleasesTab">Nessun Release trovato</string>
<string name="releaseTag">Tag: %1$s</string>
<string name="collaboratorsNameToast">Collaboratore : %1$s</string>
<string name="noDataCollaboratorTab">Nessun collaboratore trovato</string>
<string name="editText">Modifica</string>
<string name="newMilestoneTitle">Nome</string>
<string name="newMilestoneDescription">Descrizione</string>
<string name="newMilestoneDueDate">Data Scadenza</string>
<string name="milestoneNameErrorEmpty">Milestone title is empty</string>
<string name="milestoneNameErrorInvalid">Milestone title is not valid. [a&#8211;z A&#8211;Z 0&#8211;9 &#8211; _]</string>
<string name="milestoneDescError">Milestone description exceeds the max 255 characters limit</string>
<string name="milestoneCreated">Milestone created successfully</string>
<string name="milestoneCreatedError">Something went wrong, please try again</string>
<string name="milestoneDateEmpty">Please choose due date</string>
<string name="milestoneOpenIssues">Open issues : %1$d</string>
<string name="milestoneClosedIssues">Closed issues : %1$d</string>
<string name="newIssueSelectAssigneesListTitle">Select Assignees</string>
<string name="newIssueSelectLabelsListTitle">Select Labels</string>
<string name="newIssueDialogDone">Done</string>
<string name="newIssueDialogCancel">Cancel</string>
<string name="newIssueTitle">Title</string>
<string name="newIssueAssigneesListTitle">Assignees</string>
<string name="newIssueDescriptionTitle">Description</string>
<string name="newIssueDueDateTitle">Due Date</string>
<string name="newIssueMilestoneTitle">Milestone</string>
<string name="newIssueLabelsTitle">Labels</string>
<string name="issueTitleEmpty">Issue title is empty</string>
<string name="issueDescriptionEmpty">Issue description is empty</string>
<string name="issueCreated">New issue created successfully</string>
<string name="issueCreatedError">Something went wrong, please try again</string>
<string name="noAssigneesFound">No collaborators found</string>
<string name="noLabelsFound">No labels found</string>
<!-- settings -->
<string name="settingsLanguageHeaderText">Translation</string>
<string name="settingsDateTimeHeaderText">Date &amp; Time</string>
<string name="settingsSave">Settings saved.</string>
<string name="settingsLanguageSelectorHeader">Language</string>
<string name="settingsLanguageSelectedHeaderDefault">English</string>
<string name="settingsAppearanceHeader">Appearance</string>
<string name="settingsDateTimeHeaderDefault">Pretty</string>
<string name="settingsLanguageSelectorDialogTitle">Choose Language</string>
<string name="settingsTimeSelectorDialogTitle">Choose Time Format</string>
<string name="settingsIssueBadgeHeaderText">Issues Badge</string>
<string name="settingsHelpTranslateText">Help us translate GitNex to your language</string>
<string name="codeBlockHeaderText">Code Block Color</string>
<string name="settingsCodeBlockSelectorDialogTitle">Code Block Color Selector</string>
<string name="settingsHomeScreenHeaderText">Home Screen</string>
<string name="settingsHomeScreenSelectedText">My Repositories</string>
<string name="settingshomeScreenSelectorDialogTitle">Select Home Screen</string>
<!-- settings -->
<string name="noMoreData">No more data available</string>
<string name="createLabel">New Label</string>
<string name="menuTitleText">Repo Menu</string>
<string name="labelName">Label Name</string>
<string name="labelColor">Label Color</string>
<string name="labelEmptyError">Label name is empty</string>
<string name="labelNameError">Label name is not valid</string>
<string name="labelCreated">Label created.</string>
<string name="labelGeneralError">Something went wrong, please try again</string>
<string name="labelUpdated">Label updated.</string>
<string name="noDataLabelsTab">No labels found</string>
<string name="labelMenuContentDesc">Desc</string>
<string name="labelMenuEdit">Edit</string>
<string name="labelMenuDelete">Delete</string>
<string name="labelDeleteText">Label deleted</string>
<string name="labelDeleteErrorText">Something went wrong, please try again</string>
<string name="noDataBranchesTab">No branches found</string>
<string name="creditsLogoDesign">Design</string>
<!-- credits - this part does not need translation -->
<!-- credits - this part does not need translation -->
<string name="alertDialogTokenRevokedTitle">Authorization Error</string>
<string name="alertDialogTokenRevokedMessage">It seems that the Access Token is revoked OR your are not allowed to see these contents. In case of revoked Token, please logout and login again</string>
<string name="alertDialogTokenRevokedCopyNegativeButton">Cancel</string>
<string name="alertDialogTokenRevokedCopyPositiveButton">Logout</string>
<string name="labelDeleteTitle">Delete\u0020</string>
<string name="labelDeleteMessage">Do you really want to delete this label?</string>
<string name="labelDeletePositiveButton">OK</string>
<string name="labelDeleteNegativeButton">Cancel</string>
<!-- org tabbed layout str -->
<string name="title_activity_org_detail">OrgDetailActivity</string>
<string name="orgTabRepos">Repositories</string>
<string name="orgTabTeams">Teams</string>
<string name="orgTabMembers">Members</string>
<string name="orgCreateTeam">New Team</string>
<string name="noDataTeams">No teams found</string>
<string name="teamTitle">Team name</string>
<string name="teamDescription">Team desc</string>
<string name="teamPermission">Permission : %1$s</string>
<string name="noDataMembers">No members found</string>
<string name="orgMember">Org members</string>
<string name="orgTeamMembers">Organization team members</string>
<!-- org tabbed layout str -->
<!-- create team -->
<string name="newTeamTitle">Team Name</string>
<string name="newTeamDesc">Description</string>
<string name="newTeamPermission">Permission</string>
<string name="newTeamAccessControls">Access Controls</string>
<string name="newTeamPermissionRead">Members can view and clone team repositories</string>
<string name="newTeamPermissionWrite">Members can read and push to team repositories</string>
<string name="newTeamPermissionAdmin">Members can pull and push to team repositories and add collaborators to them</string>
<string name="teamNameEmpty">Please enter team name</string>
<string name="teamNameError">Team name should contain only alphanumeric, dash (-), underscore (_) and dot (.) characters</string>
<string name="teamPermissionEmpty">Please select permission</string>
<string name="teamDescError">Team description have illegal characters</string>
<string name="teamDescLimit">Team description have more than 100 characters</string>
<string name="teamCreated">Team created successfully</string>
<string name="teamCreatedError">Something went wrong, please try again</string>
<!-- create team -->
<!-- edit comment -->
<string name="editCommentTitle">Edit Comment</string>
<string name="editCommentButtonText">Edit</string>
<string name="editCommentUpdatedText">Comment updated</string>
<!-- edit comment -->
<!-- add collaborator -->
<string name="addCollaboratorTitle">Add / Remove Collaborator</string>
<string name="addCollaboratorSearchHint">Search users</string>
<string name="addCollaboratorViewUserDesc">Username</string>
<string name="removeCollaboratorTitle">Remove\u0020</string>
<string name="removeCollaboratorMessage">Do you want to remove this user from the repository?</string>
<string name="removeCollaboratorToastText">User removed from the repository.</string>
<string name="addCollaboratorToastText">User added to the repository.</string>
<!-- add collaborator -->
<!-- profile section -->
<string name="profileTabFollowers">Followers</string>
<string name="profileTabFollowing">Following</string>
<string name="profileCreateNewEmailAddress">Add Email Address</string>
<string name="profileEmailButton">Save</string>
<string name="profileEmailTitle">Email Address</string>
<string name="emailAddedText">New email added successfully.</string>
<string name="emailErrorEmpty">Email address is empty.</string>
<string name="emailErrorInvalid">Email address is not valid</string>
<string name="emailErrorInUse">Email address is already in use</string>
<string name="emailTypeText">Primary</string>
<string name="profileTabEmails">Emails</string>
<!-- profile section -->
<!-- single issue section -->
<string name="singleIssueEditLabels">Add / Remove Labels</string>
<string name="labelsUpdated">Labels updated</string>
<string name="closeIssue">Close Issue</string>
<string name="replyToIssue">Add Comment</string>
<string name="editIssue">Edit Issue</string>
<string name="reOpenIssue">Reopen Issue</string>
<string name="issueStateClosed">Issue closed</string>
<string name="issueStateReopened">Issue reopened</string>
<string name="addRemoveAssignees2">Add Assignees</string>
<string name="addRemoveAssignees">Add / Remove Assignees</string>
<string name="assigneesUpdated">Assignees updated</string>
<!-- single issue section -->
<!-- multi select dialog -->
<string name="select_entry">Select Entries</string>
<string name="validation_text">Please select at least one option</string>
<string name="please_select_atleast">Please select at least </string>
<string name="you_can_only_select_upto">You can only select up to </string>
<string name="option"> option</string>
<string name="options"> options</string>
<string name="select_all">Select all</string>
<string name="de_select_all">Deselect all</string>
<!-- multi select dialog -->
<string name="repoMetaData">Repository Meta</string>
<!-- admin -->
<string name="adminCreateNewUser">Add New User</string>
<string name="adminUsers">Users</string>
<string name="userRoleAdmin">Admin</string>
<!-- admin -->
<!-- create user -->
<string name="userFullNameText">Full Name</string>
<string name="userEmail">Email</string>
<string name="userUserName">Username</string>
<string name="userPassword">Password</string>
<string name="userInvalidFullName">Invalid Full Name</string>
<string name="userInvalidUserName">Invalid Username</string>
<string name="userInvalidEmail">Invalid Email</string>
<string name="userCreatedText">New user added successfully</string>
<string name="userExistsError">User already exists</string>
<!-- create user -->
<!-- sponsors -->
<!-- sponsors -->
<!-- edit issue -->
<string name="editIssueNavHeader">Edit Issue #%1$s</string>
<string name="editIssueSuccessMessage">Issue updated.</string>
<!-- edit issue -->
<!-- release -->
<string name="createRelease">New Release</string>
<string name="releaseTagNameText">Tag Name</string>
<string name="releaseTitleText">Title</string>
<string name="releaseContentText">Content</string>
<string name="releaseTypeText">Mark as Pre-Release</string>
<string name="releaseBranchText">Select Branch</string>
<string name="releaseDraftText">Draft</string>
<string name="tagNameErrorEmpty">Tag name is empty</string>
<string name="titleErrorEmpty">Title is empty</string>
<string name="releaseCreatedText">New release created</string>
<!-- release -->
<string name="loginOTPError">Enter OTP code</string>
<string name="loginOTPTypeError">OTP code should be numbers.</string>
<string name="loginOTP">OTP Code (Optional)</string>
<string name="otpMessage">Enter the otp code if 2FA is enabled</string>
<string name="openWebRepo">Open in Browser</string>
<string name="repoStargazersInMenu">Stargazers</string>
<string name="repoWatchersInMenu">Watchers</string>
<string name="noDataStargazers">No stars found</string>
<string name="noDataWatchers">No watchers found</string>
<string name="starMember">Star</string>
<string name="watcherMember">Watcher</string>
<string name="commitLinkBranchesTab">Commit</string>
<string name="zipArchiveDownloadReleasesTab">Zip Archive</string>
<string name="tarArchiveDownloadReleasesTab">Tar Archive</string>
<!-- new file -->
<string name="newFileNameTintCopy">File Name</string>
<string name="newFileBranchTintCopy">New Branch Name</string>
<string name="newFileContentTintCopy">File Content</string>
<string name="newFileButtonCopy">Create New File</string>
<string name="newFileNameHintMessage">with folder: app/test.md</string>
<string name="newFileMessageTintCopy">Commit Message</string>
<string name="newFileInvalidBranchName">Invalid branch name, may only contain &#8211;, a&#8211;z, 0&#8211;9</string>
<string name="newFileCommitMessageError">Commit message is too long</string>
<string name="newFileSuccessMessage">New file created</string>
<string name="newFileOldBranches">Current Branches</string>
<string name="newFileRequiredFields">Fields like filename, content and commit message are required</string>
<string name="newFileCurrentBranchMessage">Selecting current branch will disable new branch</string>
<string name="newFileNewBranchMessage">e.g: new-branch</string>
<string name="newFileRequiredFieldNewBranchName">New branch name cannot be empty if current branch is not selected</string>
<string name="strFilter">Filter</string>
<string name="copyIssueUrl">Copy Issue URL</string>
<string name="copyIssueUrlToastMsg">Issue URL copied to clipboard</string>
<string name="milestoneCompletion">%1$d\uFF05 completed</string>
<!-- files -->
<string name="noDataFilesTab">No files found</string>
<string name="filesDirNotSupportedYet">Directory browsing is not supported yet</string>
<string name="filesGenericError">Sorry this file cannot be viewed as API returned an error</string>
<string name="filesBreadcrumb">Root</string>
<!-- generic copy -->
<string name="okButton">OK</string>
<string name="doneButton">Done</string>
<string name="cancelButton">Cancel</string>
<string name="genericError">Something went wrong, please try again</string>
<string name="apiNotFound">This request needs higher Gitea version than the one installed. Please upgrade your instance to the latest version of Gitea.</string>
<string name="noDataFound">No data found</string>
<string name="addButton">Add</string>
<string name="removeButton">Remove</string>
<string name="authorizeError">You are not authorized to perform this action.</string>
<string name="menuContentDesc">Menu</string>
<string name="menuEditText">Edit</string>
<string name="menuDeleteText">Delete</string>
<string name="modifiedText">edited</string>
<string name="saveButton">Save</string>
<string name="nameText">Name</string>
<string name="descriptionText">Description</string>
<string name="websiteText">Website</string>
<string name="locationText">Location</string>
<string name="characters255Limit">Max 255 characters</string>
<string name="emptyFields">All fields are required</string>
<!-- generic copy -->
<string name="translateText">Translate GitNex with Crowdin</string>
<string name="exploreTextBoxHint">Explore repositories</string>
<string name="starRepository">Star Repository</string>
<string name="unStarRepository">Unstar Repository</string>
<string name="starRepositorySuccess">Repository added to starred list</string>
<string name="unStarRepositorySuccess">Repository removed from starred list</string>
<string name="watchRepository">Watch Repository</string>
<string name="unWatchRepository">Unwatch Repository</string>
<string name="watchRepositorySuccess">Repository added to watch list</string>
<string name="unWatchRepositorySuccess">Repository removed from watch list</string>
</resources>

View File

@ -11,6 +11,7 @@
<string name="navAbout">О программе</string>
<string name="navRate">Rate GitNex</string>
<string name="navLogout">Выход</string>
<string name="navExplore">Explore</string>
<!-- menu items -->
<!-- page titles -->
<string name="pageTitleAbout">О программе</string>
@ -33,6 +34,7 @@
<string name="pageTitleCreateTeam">Создать команду</string>
<string name="pageTitleAddEmail">Добавить адрес эл. почты</string>
<string name="pageTitleNewFile">New File</string>
<string name="pageTitleExplore">Explore</string>
<!-- page titles -->
<string name="appVersion">Версия\u0020:\u0020</string>
<string name="appBuild">№ сборки\u0020:\u0020</string>
@ -398,4 +400,13 @@
<string name="emptyFields">Все поля обязательны для заполнения</string>
<!-- generic copy -->
<string name="translateText">Translate GitNex with Crowdin</string>
<string name="exploreTextBoxHint">Explore repositories</string>
<string name="starRepository">Star Repository</string>
<string name="unStarRepository">Unstar Repository</string>
<string name="starRepositorySuccess">Repository added to starred list</string>
<string name="unStarRepositorySuccess">Repository removed from starred list</string>
<string name="watchRepository">Watch Repository</string>
<string name="unWatchRepository">Unwatch Repository</string>
<string name="watchRepositorySuccess">Repository added to watch list</string>
<string name="unWatchRepositorySuccess">Repository removed from watch list</string>
</resources>

View File

@ -0,0 +1,412 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<resources>
<!-- menu items -->
<string name="navMyRepos">Моји репозиторијуми</string>
<string name="navStarredRepos">Омиљени репозиторијуми</string>
<string name="navRepos">Репозиторијуми</string>
<string name="navProfile">Профил</string>
<string name="navSettings">Подешавања</string>
<string name="navOrgs">Организације</string>
<string name="navAbout">О програму</string>
<string name="navRate">Оцени GitNex</string>
<string name="navLogout">Одјави ме</string>
<string name="navExplore">Истражи</string>
<!-- menu items -->
<!-- page titles -->
<string name="pageTitleAbout">О програму</string>
<string name="pageTitleHome">Почетни екран</string>
<string name="pageTitleMyRepos">Моји репозиторијуми</string>
<string name="pageTitleRepositories">Репозиторијуми</string>
<string name="pageTitleProfile">Профил</string>
<string name="pageTitleNewRepo">Нови репозиторијум</string>
<string name="pageTitleOrganizations">Организације</string>
<string name="pageTitleIssues">Проблеми</string>
<string name="pageTitleSettings">Подешавања</string>
<string name="pageTitleCreateOrganization">Нова организација</string>
<string name="pageTitleCreateMilestone">New Milestone</string>
<string name="pageTitleCreateNewIssue">Нови проблем</string>
<string name="pageTitleCreateLabel">Нова ознака</string>
<string name="pageTitleCredits">Заслуге</string>
<string name="pageTitleLabelUpdate">Ажурирај ознаку</string>
<string name="pageTitleSponsors">Спонзори</string>
<string name="pageTitleStarredRepos">Омиљени репозиторијуми</string>
<string name="pageTitleCreateTeam">Нови тим</string>
<string name="pageTitleAddEmail">Додај имејл-адресу</string>
<string name="pageTitleNewFile">Нови фајл</string>
<string name="pageTitleExplore">Истражи</string>
<!-- page titles -->
<string name="appVersion">Верзија\u0020:\u0020</string>
<string name="appBuild">Build No.\u0020:\u0020</string>
<string name="repoName">Демо репозиторијум</string>
<string name="repoFullname">Repo with ORG</string>
<string name="repoDescription">Демо опис</string>
<string name="noData">Ниједан репозиторијум није пронађен</string>
<string name="orgName">Демо организација</string>
<string name="orgDescription">Демо опис</string>
<string name="noDataOrg">Ниједна организација није пронађена</string>
<string name="newCreateButtonCopy">Креирај</string>
<string name="newUpdateButtonCopy">Ажурирај</string>
<string name="newRepoTintCopy">Назив репозиторијума</string>
<string name="newRepoDescTintCopy">Опис репозиторијума</string>
<string name="newRepoPrivateCopy">Приватни</string>
<string name="newRepoDescInfo">Максимално 255 карактера</string>
<string name="newRepoOwner">Власник</string>
<string name="newOrgTintCopy">Назив организације</string>
<string name="newOrgDescTintCopy">Опис организације</string>
<string name="newOrgDescInfo">Максимално 255 карактера</string>
<string name="userName">Корисничко име</string>
<string name="passWord">Лозинка</string>
<string name="btnLogin">Пријави ме</string>
<string name="instanceUrl">URL инстанце</string>
<string name="navigation_drawer_open">Open Navigation Drawer</string>
<string name="navigation_drawer_close">Close Navigation Drawer</string>
<string name="logo">Login to Gitea</string>
<string name="urlInfoTooltip">1- Choose the correct protocol(https or http). \n2- Enter Gitea 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.</string>
<string name="loginFailed">Погрешно корисничко име или лозинка</string>
<string name="protocolError">Употреба HTTP протокола није препоручена уколико не тестираш на локалној мрежи</string>
<string name="malformedJson">Malformed JSON was received. Server response was not successful.</string>
<string name="emptyFieldURL">URL инстанце је обавезан</string>
<string name="emptyFieldUsername">Корисничко име је обавезно</string>
<string name="emptyFieldPassword">Лозинка је обавезна</string>
<string name="checkNetConnection">Cannot access network, please check your Internet connection</string>
<string name="repoNameErrorEmpty">Назив репозиторијума је обавезан</string>
<string name="repoNameErrorInvalid">Назив репозиторијума није валидан [a&#8211;z A&#8211;Z 0&#8211;9 &#8211; _]</string>
<string name="repoDescError">Опис је дужи од максималних 255 карактера</string>
<string name="repoCreated">Репозиторијум је успешно креиран</string>
<string name="repoCreatedError">Нешто је пошло наопако, покушај поново</string>
<string name="repoExistsError">Репозиторијум већ постоји</string>
<string name="orgNameErrorEmpty">Назив организације је обавезан</string>
<string name="orgNameErrorInvalid">Назив организације није валидан [a&#8211;z A&#8211;Z 0&#8211;9 &#8211; _]</string>
<string name="orgDescError">Опис је дужи од максималних 255 карактера</string>
<string name="orgCreated">Организација је успешно креирана</string>
<string name="orgCreatedError">Нешто је пошло наопако, покушај поново</string>
<string name="orgExistsError">Организација већ постоји</string>
<string name="processingText">Processing</string>
<string name="search">Претражи</string>
<string name="wip">Work in progress</string>
<string name="close">Затвори</string>
<string name="addNewContent">Додај</string>
<string name="orgContentAvatar">Org</string>
<string name="repoContentAvatar">Repo</string>
<string name="privateAvatar">Pri</string>
<string name="removeContent">Уклони</string>
<string name="genericApiStatusError">Instance has returned an error. Code\u0020</string>
<string name="title_activity_repo_detail">RepoDetailActivity</string>
<string name="tab_text_info">Детаљи</string>
<string name="tab_text_files">Фајлови</string>
<string name="tab_text_issues">Текући проблеми</string>
<string name="tabItemCloseIssues">Решени проблеми</string>
<string name="tab_text_ml">Milestones</string>
<string name="tab_text_releases">Releases</string>
<string name="tab_text_branches">Гране</string>
<string name="tab_text_labels">Ознаке</string>
<string name="action_settings">Подешавања</string>
<string name="tab_text_collaborators">Сарадници</string>
<string name="noDataIssueTab">Ниједан задатак није пронађен</string>
<string name="infoTabRepoName1">Репозиторијум</string>
<string name="infoTabRepoOwner1">Власник</string>
<string name="infoTabRepoDesc">Опис</string>
<string name="infoTabRepoWebsite">Веб-сајт</string>
<string name="infoTabRepoSize">Величина</string>
<string name="infoTabRepoDefaultBranch">Подразумевана грана</string>
<string name="infoTabRepoSshUrl">SSH URL</string>
<string name="infoTabRepoCloneUrl">HTTPS URL</string>
<string name="infoTabRepoRepoUrl">URL репозиторијума</string>
<string name="infoTabRepoForksCount">Број форкова</string>
<string name="infoTabRepoCreatedAt">Креиран</string>
<string name="infoTabRepoUpdatedAt">Last Updated</string>
<string name="timeAtText">у</string>
<string name="createdText">Opened\u0020</string>
<string name="dueDateText">Рок</string>
<string name="issueStatusTextOpen">Status: open</string>
<string name="issueStatusOpen">open</string>
<string name="issueStatusTextClosed">Status: closed</string>
<string name="issueStatusClosed">closed</string>
<string name="issueCreator">Creator :\u0020</string>
<string name="issueAssigneesText">Assignees</string>
<string name="issueTypeIssue">Type: Issue</string>
<string name="issueTypePullRequest">Type: Pull Request</string>
<string name="issueCommenter">Commenter:\u0020</string>
<string name="issueMilestone">Milestone %1$s</string>
<string name="dueDate">Due %1$s</string>
<string name="createdTime">Opened %1$s</string>
<string name="assignedTo">Assigned to: %1$s</string>
<string name="commentButtonText">Коментар</string>
<string name="commentEmptyError">Please write your comment</string>
<string name="commentSuccess">Comment posted</string>
<string name="commentError">Нешто је пошло наопако, покушај поново</string>
<string name="generalImgContentText">Аватар</string>
<string name="noDataMilestonesTab">No milestones found</string>
<string name="commitAuthor">Commit author: %1$s</string>
<string name="commitHash">Commit hash \n%1$s%2$s</string>
<string name="releaseTitle">Release Title</string>
<string name="releaseDescription">Release Description</string>
<string name="releaseDownloadText">Преузимања</string>
<string name="releaseType">Release Type</string>
<string name="releaseZip">Release Zip</string>
<string name="releaseTar">Release Tar</string>
<string name="noDataReleasesTab">No releases found</string>
<string name="releaseTag">Tag: %1$s</string>
<string name="collaboratorsNameToast">Collaborator : %1$s</string>
<string name="noDataCollaboratorTab">Ниједан сарадник није пронађен</string>
<string name="editText">Уреди</string>
<string name="newMilestoneTitle">Наслов</string>
<string name="newMilestoneDescription">Опис</string>
<string name="newMilestoneDueDate">Рок</string>
<string name="milestoneNameErrorEmpty">Milestone title is empty</string>
<string name="milestoneNameErrorInvalid">Milestone title is not valid. [a&#8211;z A&#8211;Z 0&#8211;9 &#8211; _]</string>
<string name="milestoneDescError">Опис је дужи од максималних 255 карактера</string>
<string name="milestoneCreated">Milestone created successfully</string>
<string name="milestoneCreatedError">Нешто је пошло наопако, покушај поново</string>
<string name="milestoneDateEmpty">Please choose due date</string>
<string name="milestoneOpenIssues">Open issues : %1$d</string>
<string name="milestoneClosedIssues">Closed issues : %1$d</string>
<string name="newIssueSelectAssigneesListTitle">Select Assignees</string>
<string name="newIssueSelectLabelsListTitle">Одабери ознаке</string>
<string name="newIssueDialogDone">Done</string>
<string name="newIssueDialogCancel">Откажи</string>
<string name="newIssueTitle">Наслов</string>
<string name="newIssueAssigneesListTitle">Assignees</string>
<string name="newIssueDescriptionTitle">Опис</string>
<string name="newIssueDueDateTitle">Рок</string>
<string name="newIssueMilestoneTitle">Milestone</string>
<string name="newIssueLabelsTitle">Ознаке</string>
<string name="issueTitleEmpty">Наслов проблема је обавезан</string>
<string name="issueDescriptionEmpty">Опис проблема је обавезан</string>
<string name="issueCreated">Проблем је успешно креиран</string>
<string name="issueCreatedError">Нешто је пошло наопако, покушај поново</string>
<string name="noAssigneesFound">Ниједан сарадник није пронађен</string>
<string name="noLabelsFound">Ниједна ознака није пронађена</string>
<!-- settings -->
<string name="settingsLanguageHeaderText">Превод</string>
<string name="settingsDateTimeHeaderText">Датум и време</string>
<string name="settingsSave">Подешавања су сачувана</string>
<string name="settingsLanguageSelectorHeader">Језик</string>
<string name="settingsLanguageSelectedHeaderDefault">Енглески</string>
<string name="settingsAppearanceHeader">Изглед</string>
<string name="settingsDateTimeHeaderDefault">Pretty</string>
<string name="settingsLanguageSelectorDialogTitle">Одабери језик</string>
<string name="settingsTimeSelectorDialogTitle">Одабери формат</string>
<string name="settingsIssueBadgeHeaderText">Прикажи број текућих проблема</string>
<string name="settingsHelpTranslateText">Help us translate GitNex to your language</string>
<string name="codeBlockHeaderText">Code Block Color</string>
<string name="settingsCodeBlockSelectorDialogTitle">Code Block Color Selector</string>
<string name="settingsHomeScreenHeaderText">Почетни екран</string>
<string name="settingsHomeScreenSelectedText">Моји репозиторијуми</string>
<string name="settingshomeScreenSelectorDialogTitle">Одабери почетни екран</string>
<!-- settings -->
<string name="noMoreData">No more data available</string>
<string name="createLabel">Нова ознака</string>
<string name="menuTitleText">Мени репозиторијума</string>
<string name="labelName">Назив ознаке</string>
<string name="labelColor">Боја ознаке</string>
<string name="labelEmptyError">Назив ознаке је обавезан</string>
<string name="labelNameError">Назив ознаке није валидан</string>
<string name="labelCreated">Ознака је креирана</string>
<string name="labelGeneralError">Нешто је пошло наопако, покушај поново</string>
<string name="labelUpdated">Ознака је ажурирана</string>
<string name="noDataLabelsTab">Ниједна ознака није пронађена</string>
<string name="labelMenuContentDesc">Опис</string>
<string name="labelMenuEdit">Уреди</string>
<string name="labelMenuDelete">Избриши</string>
<string name="labelDeleteText">Ознака је избрисана</string>
<string name="labelDeleteErrorText">Нешто је пошло наопако, покушај поново</string>
<string name="noDataBranchesTab">Ниједна грана није пронађена</string>
<string name="creditsLogoDesign">Дизајн</string>
<!-- credits - this part does not need translation -->
<!-- credits - this part does not need translation -->
<string name="alertDialogTokenRevokedTitle">Грешка приликом ауторизације</string>
<string name="alertDialogTokenRevokedMessage">It seems that the Access Token is revoked OR your are not allowed to see these contents. In case of revoked Token, please logout and login again</string>
<string name="alertDialogTokenRevokedCopyNegativeButton">Откажи</string>
<string name="alertDialogTokenRevokedCopyPositiveButton">Одјави ме</string>
<string name="labelDeleteTitle">Избриши\u0020</string>
<string name="labelDeleteMessage">Do you really want to delete this label?</string>
<string name="labelDeletePositiveButton">У реду</string>
<string name="labelDeleteNegativeButton">Откажи</string>
<!-- org tabbed layout str -->
<string name="title_activity_org_detail">OrgDetailActivity</string>
<string name="orgTabRepos">Репозиторијуми</string>
<string name="orgTabTeams">Тимови</string>
<string name="orgTabMembers">Чланови</string>
<string name="orgCreateTeam">Нови тим</string>
<string name="noDataTeams">Ниједан тим није пронађен</string>
<string name="teamTitle">Назив тима</string>
<string name="teamDescription">Опис тима</string>
<string name="teamPermission">Право: %1$s</string>
<string name="noDataMembers">Ниједан члан није пронађен</string>
<string name="orgMember">Org members</string>
<string name="orgTeamMembers">Organization team members</string>
<!-- org tabbed layout str -->
<!-- create team -->
<string name="newTeamTitle">Назив тима</string>
<string name="newTeamDesc">Опис</string>
<string name="newTeamPermission">Право</string>
<string name="newTeamAccessControls">Access Controls</string>
<string name="newTeamPermissionRead">Members can view and clone team repositories</string>
<string name="newTeamPermissionWrite">Members can read and push to team repositories</string>
<string name="newTeamPermissionAdmin">Members can pull and push to team repositories and add collaborators to them</string>
<string name="teamNameEmpty">Унеси назив тима</string>
<string name="teamNameError">Team name should contain only alphanumeric, dash (-), underscore (_) and dot (.) characters</string>
<string name="teamPermissionEmpty">Please select permission</string>
<string name="teamDescError">Team description have illegal characters</string>
<string name="teamDescLimit">Team description have more than 100 characters</string>
<string name="teamCreated">Тим је успешно креиран</string>
<string name="teamCreatedError">Нешто је пошло наопако, покушај поново</string>
<!-- create team -->
<!-- edit comment -->
<string name="editCommentTitle">Уреди коментар</string>
<string name="editCommentButtonText">Уреди</string>
<string name="editCommentUpdatedText">Коментар је ажуриран</string>
<!-- edit comment -->
<!-- add collaborator -->
<string name="addCollaboratorTitle">Додај или уклони сарадника</string>
<string name="addCollaboratorSearchHint">Претражи кориснике</string>
<string name="addCollaboratorViewUserDesc">Корисничко име</string>
<string name="removeCollaboratorTitle">Уклони\u0020</string>
<string name="removeCollaboratorMessage">Do you want to remove this user from the repository?</string>
<string name="removeCollaboratorToastText">User removed from the repository.</string>
<string name="addCollaboratorToastText">User added to the repository.</string>
<!-- add collaborator -->
<!-- profile section -->
<string name="profileTabFollowers">Followers</string>
<string name="profileTabFollowing">Following</string>
<string name="profileCreateNewEmailAddress">Додај имејл-адресу</string>
<string name="profileEmailButton">Сачувај</string>
<string name="profileEmailTitle">Имејл-адреса</string>
<string name="emailAddedText">Имејл-адреса је успешно додата</string>
<string name="emailErrorEmpty">Имејл-адреса је обавезна</string>
<string name="emailErrorInvalid">Имејл-адреса није валидна</string>
<string name="emailErrorInUse">Неко већ користи ову имејл-адресу</string>
<string name="emailTypeText">Главна адреса</string>
<string name="profileTabEmails">Имејл</string>
<!-- profile section -->
<!-- single issue section -->
<string name="singleIssueEditLabels">Додај или уклони ознаку</string>
<string name="labelsUpdated">Ознаке су ажуриране</string>
<string name="closeIssue">Close Issue</string>
<string name="replyToIssue">Додај коментар</string>
<string name="editIssue">Edit Issue</string>
<string name="reOpenIssue">Reopen Issue</string>
<string name="issueStateClosed">Issue closed</string>
<string name="issueStateReopened">Issue reopened</string>
<string name="addRemoveAssignees2">Add Assignees</string>
<string name="addRemoveAssignees">Add / Remove Assignees</string>
<string name="assigneesUpdated">Assignees updated</string>
<!-- single issue section -->
<!-- multi select dialog -->
<string name="select_entry">Select Entries</string>
<string name="validation_text">Одабери бар једну опцију</string>
<string name="please_select_atleast">Please select at least </string>
<string name="you_can_only_select_upto">You can only select up to </string>
<string name="option"> option</string>
<string name="options"> options</string>
<string name="select_all">Select all</string>
<string name="de_select_all">Deselect all</string>
<!-- multi select dialog -->
<string name="repoMetaData">Основни подаци</string>
<!-- admin -->
<string name="adminCreateNewUser">Додај новог корисника</string>
<string name="adminUsers">Корисници</string>
<string name="userRoleAdmin">Администратор</string>
<!-- admin -->
<!-- create user -->
<string name="userFullNameText">Full Name</string>
<string name="userEmail">Имејл</string>
<string name="userUserName">Корисничко име</string>
<string name="userPassword">Лозинка</string>
<string name="userInvalidFullName">Invalid Full Name</string>
<string name="userInvalidUserName">Invalid Username</string>
<string name="userInvalidEmail">Invalid Email</string>
<string name="userCreatedText">Корисник је успешно додат</string>
<string name="userExistsError">Корисник већ постоји</string>
<!-- create user -->
<!-- sponsors -->
<!-- sponsors -->
<!-- edit issue -->
<string name="editIssueNavHeader">Edit Issue #%1$s</string>
<string name="editIssueSuccessMessage">Проблем је ажуриран</string>
<!-- edit issue -->
<!-- release -->
<string name="createRelease">New Release</string>
<string name="releaseTagNameText">Tag Name</string>
<string name="releaseTitleText">Наслов</string>
<string name="releaseContentText">Садржај</string>
<string name="releaseTypeText">Mark as Pre-Release</string>
<string name="releaseBranchText">Одабери грану</string>
<string name="releaseDraftText">Draft</string>
<string name="tagNameErrorEmpty">Tag name is empty</string>
<string name="titleErrorEmpty">Наслов је обавезан</string>
<string name="releaseCreatedText">New release created</string>
<!-- release -->
<string name="loginOTPError">Унеси OTP код</string>
<string name="loginOTPTypeError">OTP code should be numbers.</string>
<string name="loginOTP">OTP код (опционо)</string>
<string name="otpMessage">Enter the otp code if 2FA is enabled</string>
<string name="openWebRepo">Отвори у претраживачу</string>
<string name="repoStargazersInMenu">Stargazers</string>
<string name="repoWatchersInMenu">Watchers</string>
<string name="noDataStargazers">No stars found</string>
<string name="noDataWatchers">No watchers found</string>
<string name="starMember">Star</string>
<string name="watcherMember">Watcher</string>
<string name="commitLinkBranchesTab">Commit</string>
<string name="zipArchiveDownloadReleasesTab">Zip архива</string>
<string name="tarArchiveDownloadReleasesTab">Tar архива</string>
<!-- new file -->
<string name="newFileNameTintCopy">Назив фајла</string>
<string name="newFileBranchTintCopy">Назив нове гране</string>
<string name="newFileContentTintCopy">Садржај фајла</string>
<string name="newFileButtonCopy">Креирај нови фајл</string>
<string name="newFileNameHintMessage">with folder: app/test.md</string>
<string name="newFileMessageTintCopy">Опис комита</string>
<string name="newFileInvalidBranchName">Invalid branch name, may only contain &#8211;, a&#8211;z, 0&#8211;9</string>
<string name="newFileCommitMessageError">Commit message is too long</string>
<string name="newFileSuccessMessage">Фајл је креиран</string>
<string name="newFileOldBranches">Постојеће гране</string>
<string name="newFileRequiredFields">Fields like filename, content and commit message are required</string>
<string name="newFileCurrentBranchMessage">Selecting current branch will disable new branch</string>
<string name="newFileNewBranchMessage">e.g: new-branch</string>
<string name="newFileRequiredFieldNewBranchName">New branch name cannot be empty if current branch is not selected</string>
<string name="strFilter">Филтер</string>
<string name="copyIssueUrl">Копирај URL проблема</string>
<string name="copyIssueUrlToastMsg">URL проблема је копиран</string>
<string name="milestoneCompletion">%1$d\uFF05 completed</string>
<!-- files -->
<string name="noDataFilesTab">Ниједан фајл није пронађен</string>
<string name="filesDirNotSupportedYet">Directory browsing is not supported yet</string>
<string name="filesGenericError">Sorry this file cannot be viewed as API returned an error</string>
<string name="filesBreadcrumb">Root</string>
<!-- generic copy -->
<string name="okButton">У реду</string>
<string name="doneButton">Done</string>
<string name="cancelButton">Откажи</string>
<string name="genericError">Нешто је пошло наопако, покушај поново</string>
<string name="apiNotFound">This request needs higher Gitea version than the one installed. Please upgrade your instance to the latest version of Gitea.</string>
<string name="noDataFound">Ниједан податак није пронађен</string>
<string name="addButton">Додај</string>
<string name="removeButton">Уклони</string>
<string name="authorizeError">You are not authorized to perform this action.</string>
<string name="menuContentDesc">Мени</string>
<string name="menuEditText">Уреди</string>
<string name="menuDeleteText">Избриши</string>
<string name="modifiedText">edited</string>
<string name="saveButton">Сачувај</string>
<string name="nameText">Назив</string>
<string name="descriptionText">Опис</string>
<string name="websiteText">Веб-сајт</string>
<string name="locationText">Локација</string>
<string name="characters255Limit">Максимално 255 карактера</string>
<string name="emptyFields">Сва поља су обавезна</string>
<!-- generic copy -->
<string name="translateText">Преведи GitNex на платформи Crowdin</string>
<string name="exploreTextBoxHint">Истражи репозиторијуме</string>
<string name="starRepository">Додај у омиљене</string>
<string name="unStarRepository">Уклони из омиљених</string>
<string name="starRepositorySuccess">Репозиторијум је додат у омиљене</string>
<string name="unStarRepositorySuccess">Репозиторијум је уклоњен из омиљених</string>
<string name="watchRepository">Прати репозиторијум</string>
<string name="unWatchRepository">Престани да пратиш репозиторијум</string>
<string name="watchRepositorySuccess">Сад пратиш овај репозиторијум</string>
<string name="unWatchRepositorySuccess">Више не пратиш овај репозиторијум</string>
</resources>

View File

@ -11,6 +11,7 @@
<string name="navAbout">关于</string>
<string name="navRate">评价 GitNex</string>
<string name="navLogout">退出</string>
<string name="navExplore">Explore</string>
<!-- menu items -->
<!-- page titles -->
<string name="pageTitleAbout">关于</string>
@ -33,11 +34,12 @@
<string name="pageTitleCreateTeam">创建团队</string>
<string name="pageTitleAddEmail">添加电子邮件地址</string>
<string name="pageTitleNewFile">新建文件</string>
<string name="pageTitleExplore">Explore</string>
<!-- page titles -->
<string name="appVersion">版本\u0020:\u0020</string>
<string name="appBuild">构建编号 \u0020:\u0020</string>
<string name="repoName">演示仓库</string>
<string name="repoFullname">Repo with ORG</string>
<string name="repoFullname">有组织的存储库</string>
<string name="repoDescription">演示描述</string>
<string name="noData">没有任何仓库</string>
<string name="orgName">演示组织</string>
@ -55,35 +57,35 @@
<string name="newOrgDescInfo">最大 255 字符</string>
<string name="userName">用户名</string>
<string name="passWord">密码</string>
<string name="btnLogin">LOGIN</string>
<string name="instanceUrl">Instance URL</string>
<string name="navigation_drawer_open">Open Navigation Drawer</string>
<string name="navigation_drawer_close">Close Navigation Drawer</string>
<string name="logo">Login to Gitea</string>
<string name="btnLogin">登录</string>
<string name="instanceUrl">实例URL</string>
<string name="navigation_drawer_open">打开隐藏式导览侧选单</string>
<string name="navigation_drawer_close">关闭导航栏</string>
<string name="logo">登录到 Gitea</string>
<string name="urlInfoTooltip">1- Choose the correct protocol(https or http). \n2- Enter Gitea 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.</string>
<string name="loginFailed">Wrong username/password</string>
<string name="protocolError">It is not recommended to use HTTP protocol unless you are testing on local network.</string>
<string name="malformedJson">Malformed JSON was received. Server response was not successful.</string>
<string name="emptyFieldURL">Instance URL is required</string>
<string name="emptyFieldUsername">Username is required</string>
<string name="emptyFieldPassword">Password is required</string>
<string name="emptyFieldURL">实例URL是必需的</string>
<string name="emptyFieldUsername">用户名必填</string>
<string name="emptyFieldPassword">密码为必填</string>
<string name="checkNetConnection">Cannot access network, please check your Internet connection</string>
<string name="repoNameErrorEmpty">Repository name is empty</string>
<string name="repoNameErrorEmpty">仓库名称为空</string>
<string name="repoNameErrorInvalid">Repository name is not valid. [a&#8211;z A&#8211;Z 0&#8211;9 &#8211; _]</string>
<string name="repoDescError">Repository description exceeds the max 255 characters limit</string>
<string name="repoCreated">Repository created successfully</string>
<string name="repoCreated">仓库创建成功</string>
<string name="repoCreatedError">Something went wrong, please try again</string>
<string name="repoExistsError">Repository of this name already exists under selected Owner</string>
<string name="orgNameErrorEmpty">Organization name is empty</string>
<string name="orgNameErrorEmpty">组织名称为空</string>
<string name="orgNameErrorInvalid">Organization name is not valid, [a&#8211;z A&#8211;Z 0&#8211;9 &#8211; _]</string>
<string name="orgDescError">Organization description exceeds the max 255 characters limit</string>
<string name="orgCreated">Organization created successfully</string>
<string name="orgCreatedError">Something went wrong, please try again</string>
<string name="orgExistsError">Organization already exists</string>
<string name="processingText">Processing</string>
<string name="search">Search</string>
<string name="orgCreated">组织创建成功</string>
<string name="orgCreatedError">出错了,请重试</string>
<string name="orgExistsError">组织已存在</string>
<string name="processingText">处理中</string>
<string name="search">搜索</string>
<string name="wip">Work in progress</string>
<string name="close">Close</string>
<string name="close">关闭</string>
<string name="addNewContent">Add</string>
<string name="orgContentAvatar">Org</string>
<string name="repoContentAvatar">Repo</string>
@ -91,27 +93,27 @@
<string name="removeContent">Remove</string>
<string name="genericApiStatusError">Instance has returned an error. Code\u0020</string>
<string name="title_activity_repo_detail">RepoDetailActivity</string>
<string name="tab_text_info">Details</string>
<string name="tab_text_info">详情</string>
<string name="tab_text_files">Files</string>
<string name="tab_text_issues">Open Issues</string>
<string name="tabItemCloseIssues">Closed Issues</string>
<string name="tab_text_ml">Milestones</string>
<string name="tab_text_releases">Releases</string>
<string name="tab_text_branches">Branches</string>
<string name="tab_text_labels">Labels</string>
<string name="action_settings">Settings</string>
<string name="tab_text_collaborators">Collaborators</string>
<string name="noDataIssueTab">No issues found</string>
<string name="infoTabRepoName1">Repository</string>
<string name="infoTabRepoOwner1">Owner</string>
<string name="tab_text_ml">里程碑</string>
<string name="tab_text_releases">版本发布</string>
<string name="tab_text_branches">分支</string>
<string name="tab_text_labels">标签</string>
<string name="action_settings">设置</string>
<string name="tab_text_collaborators">协作者</string>
<string name="noDataIssueTab">没有工单</string>
<string name="infoTabRepoName1">仓库</string>
<string name="infoTabRepoOwner1">所有者</string>
<string name="infoTabRepoDesc">Description</string>
<string name="infoTabRepoWebsite">Website</string>
<string name="infoTabRepoSize">Size</string>
<string name="infoTabRepoDefaultBranch">Default Branch</string>
<string name="infoTabRepoDefaultBranch">默认分支</string>
<string name="infoTabRepoSshUrl">SSH URL</string>
<string name="infoTabRepoCloneUrl">Clone URL</string>
<string name="infoTabRepoRepoUrl">Repo URL</string>
<string name="infoTabRepoForksCount">Forks</string>
<string name="infoTabRepoForksCount">派生仓库</string>
<string name="infoTabRepoCreatedAt">Created</string>
<string name="infoTabRepoUpdatedAt">Last Updated</string>
<string name="timeAtText">at</string>
@ -130,29 +132,29 @@
<string name="dueDate">Due %1$s</string>
<string name="createdTime">Opened %1$s</string>
<string name="assignedTo">Assigned to: %1$s</string>
<string name="commentButtonText">Comment</string>
<string name="commentButtonText">评论</string>
<string name="commentEmptyError">Please write your comment</string>
<string name="commentSuccess">Comment posted</string>
<string name="commentError">Something went wrong, please try again</string>
<string name="generalImgContentText">Avatar</string>
<string name="generalImgContentText">头像</string>
<string name="noDataMilestonesTab">No milestones found</string>
<string name="commitAuthor">Commit author: %1$s</string>
<string name="commitHash">Commit hash \n%1$s%2$s</string>
<string name="releaseTitle">Release Title</string>
<string name="releaseDescription">Release Description</string>
<string name="releaseDownloadText">Downloads</string>
<string name="releaseDownloadText">下载</string>
<string name="releaseType">Release Type</string>
<string name="releaseZip">Release Zip</string>
<string name="releaseTar">Release Tar</string>
<string name="noDataReleasesTab">No releases found</string>
<string name="releaseTag">Tag: %1$s</string>
<string name="collaboratorsNameToast">Collaborator : %1$s</string>
<string name="noDataCollaboratorTab">No collaborators found</string>
<string name="editText">Edit</string>
<string name="newMilestoneTitle">Title</string>
<string name="noDataCollaboratorTab">没有协作者</string>
<string name="editText">编辑</string>
<string name="newMilestoneTitle">标题</string>
<string name="newMilestoneDescription">Description</string>
<string name="newMilestoneDueDate">Due Date</string>
<string name="milestoneNameErrorEmpty">Milestone title is empty</string>
<string name="milestoneNameErrorEmpty">里程碑标题为空</string>
<string name="milestoneNameErrorInvalid">Milestone title is not valid. [a&#8211;z A&#8211;Z 0&#8211;9 &#8211; _]</string>
<string name="milestoneDescError">Milestone description exceeds the max 255 characters limit</string>
<string name="milestoneCreated">Milestone created successfully</string>
@ -164,12 +166,12 @@
<string name="newIssueSelectLabelsListTitle">Select Labels</string>
<string name="newIssueDialogDone">Done</string>
<string name="newIssueDialogCancel">Cancel</string>
<string name="newIssueTitle">Title</string>
<string name="newIssueTitle">标题</string>
<string name="newIssueAssigneesListTitle">Assignees</string>
<string name="newIssueDescriptionTitle">Description</string>
<string name="newIssueDueDateTitle">Due Date</string>
<string name="newIssueMilestoneTitle">Milestone</string>
<string name="newIssueLabelsTitle">Labels</string>
<string name="newIssueMilestoneTitle">里程碑</string>
<string name="newIssueLabelsTitle">标签</string>
<string name="issueTitleEmpty">Issue title is empty</string>
<string name="issueDescriptionEmpty">Issue description is empty</string>
<string name="issueCreated">New issue created successfully</string>
@ -177,28 +179,28 @@
<string name="noAssigneesFound">No collaborators found</string>
<string name="noLabelsFound">No labels found</string>
<!-- settings -->
<string name="settingsLanguageHeaderText">Translation</string>
<string name="settingsLanguageHeaderText">翻译</string>
<string name="settingsDateTimeHeaderText">Date &amp; Time</string>
<string name="settingsSave">Settings saved.</string>
<string name="settingsLanguageSelectorHeader">Language</string>
<string name="settingsLanguageSelectedHeaderDefault">English</string>
<string name="settingsAppearanceHeader">Appearance</string>
<string name="settingsSave">设置已保存。</string>
<string name="settingsLanguageSelectorHeader">语言</string>
<string name="settingsLanguageSelectedHeaderDefault">英语</string>
<string name="settingsAppearanceHeader">外观</string>
<string name="settingsDateTimeHeaderDefault">Pretty</string>
<string name="settingsLanguageSelectorDialogTitle">Choose Language</string>
<string name="settingsTimeSelectorDialogTitle">Choose Time Format</string>
<string name="settingsLanguageSelectorDialogTitle">选择语言</string>
<string name="settingsTimeSelectorDialogTitle">选择日期格式</string>
<string name="settingsIssueBadgeHeaderText">Issues Badge</string>
<string name="settingsHelpTranslateText">Help us translate GitNex to your language</string>
<string name="codeBlockHeaderText">Code Block Color</string>
<string name="settingsCodeBlockSelectorDialogTitle">Code Block Color Selector</string>
<string name="settingsHomeScreenHeaderText">Home Screen</string>
<string name="settingsHomeScreenSelectedText">My Repositories</string>
<string name="settingsHomeScreenHeaderText">主屏幕</string>
<string name="settingsHomeScreenSelectedText">我的仓库</string>
<string name="settingshomeScreenSelectorDialogTitle">Select Home Screen</string>
<!-- settings -->
<string name="noMoreData">No more data available</string>
<string name="createLabel">New Label</string>
<string name="createLabel">创建标签</string>
<string name="menuTitleText">Repo Menu</string>
<string name="labelName">Label Name</string>
<string name="labelColor">Label Color</string>
<string name="labelName">标签名称</string>
<string name="labelColor">标签颜色</string>
<string name="labelEmptyError">Label name is empty</string>
<string name="labelNameError">Label name is not valid</string>
<string name="labelCreated">Label created.</string>
@ -206,9 +208,9 @@
<string name="labelUpdated">Label updated.</string>
<string name="noDataLabelsTab">No labels found</string>
<string name="labelMenuContentDesc">Desc</string>
<string name="labelMenuEdit">Edit</string>
<string name="labelMenuDelete">Delete</string>
<string name="labelDeleteText">Label deleted</string>
<string name="labelMenuEdit">编辑</string>
<string name="labelMenuDelete">删除</string>
<string name="labelDeleteText">标签已删除</string>
<string name="labelDeleteErrorText">Something went wrong, please try again</string>
<string name="noDataBranchesTab">No branches found</string>
<string name="creditsLogoDesign">Design</string>
@ -216,30 +218,30 @@
<!-- credits - this part does not need translation -->
<string name="alertDialogTokenRevokedTitle">Authorization Error</string>
<string name="alertDialogTokenRevokedMessage">It seems that the Access Token is revoked OR your are not allowed to see these contents. In case of revoked Token, please logout and login again</string>
<string name="alertDialogTokenRevokedCopyNegativeButton">Cancel</string>
<string name="alertDialogTokenRevokedCopyPositiveButton">Logout</string>
<string name="alertDialogTokenRevokedCopyNegativeButton">取消</string>
<string name="alertDialogTokenRevokedCopyPositiveButton">退出</string>
<string name="labelDeleteTitle">Delete\u0020</string>
<string name="labelDeleteMessage">Do you really want to delete this label?</string>
<string name="labelDeletePositiveButton">OK</string>
<string name="labelDeleteNegativeButton">Cancel</string>
<string name="labelDeletePositiveButton">确定</string>
<string name="labelDeleteNegativeButton">取消</string>
<!-- org tabbed layout str -->
<string name="title_activity_org_detail">OrgDetailActivity</string>
<string name="orgTabRepos">Repositories</string>
<string name="orgTabTeams">Teams</string>
<string name="orgTabMembers">Members</string>
<string name="orgCreateTeam">New Team</string>
<string name="orgTabRepos">仓库列表</string>
<string name="orgTabTeams">团队</string>
<string name="orgTabMembers">成员</string>
<string name="orgCreateTeam">创建团队</string>
<string name="noDataTeams">No teams found</string>
<string name="teamTitle">Team name</string>
<string name="teamDescription">Team desc</string>
<string name="teamTitle">团队名称</string>
<string name="teamDescription">团队描述</string>
<string name="teamPermission">Permission : %1$s</string>
<string name="noDataMembers">No members found</string>
<string name="orgMember">Org members</string>
<string name="orgMember">组织成员</string>
<string name="orgTeamMembers">Organization team members</string>
<!-- org tabbed layout str -->
<!-- create team -->
<string name="newTeamTitle">Team Name</string>
<string name="newTeamTitle">团队名称</string>
<string name="newTeamDesc">Description</string>
<string name="newTeamPermission">Permission</string>
<string name="newTeamPermission">权限</string>
<string name="newTeamAccessControls">Access Controls</string>
<string name="newTeamPermissionRead">Members can view and clone team repositories</string>
<string name="newTeamPermissionWrite">Members can read and push to team repositories</string>
@ -277,16 +279,16 @@
<string name="emailErrorInvalid">Email address is not valid</string>
<string name="emailErrorInUse">Email address is already in use</string>
<string name="emailTypeText">Primary</string>
<string name="profileTabEmails">Emails</string>
<string name="profileTabEmails">电子邮件</string>
<!-- profile section -->
<!-- single issue section -->
<string name="singleIssueEditLabels">Add / Remove Labels</string>
<string name="singleIssueEditLabels">添加/删除标签</string>
<string name="labelsUpdated">Labels updated</string>
<string name="closeIssue">Close Issue</string>
<string name="replyToIssue">Add Comment</string>
<string name="editIssue">Edit Issue</string>
<string name="reOpenIssue">Reopen Issue</string>
<string name="issueStateClosed">Issue closed</string>
<string name="reOpenIssue">重新打开工单</string>
<string name="issueStateClosed">已关闭工单</string>
<string name="issueStateReopened">Issue reopened</string>
<string name="addRemoveAssignees2">Add Assignees</string>
<string name="addRemoveAssignees">Add / Remove Assignees</string>
@ -299,8 +301,8 @@
<string name="you_can_only_select_upto">You can only select up to </string>
<string name="option"> option</string>
<string name="options"> options</string>
<string name="select_all">Select all</string>
<string name="de_select_all">Deselect all</string>
<string name="select_all">全选</string>
<string name="de_select_all">反选</string>
<!-- multi select dialog -->
<string name="repoMetaData">Repository Meta</string>
<!-- admin -->
@ -314,8 +316,8 @@
<string name="userUserName">Username</string>
<string name="userPassword">Password</string>
<string name="userInvalidFullName">Invalid Full Name</string>
<string name="userInvalidUserName">Invalid Username</string>
<string name="userInvalidEmail">Invalid Email</string>
<string name="userInvalidUserName">无效的用户名</string>
<string name="userInvalidEmail">无效的电子邮件</string>
<string name="userCreatedText">New user added successfully</string>
<string name="userExistsError">User already exists</string>
<!-- create user -->
@ -326,34 +328,34 @@
<string name="editIssueSuccessMessage">Issue updated.</string>
<!-- edit issue -->
<!-- release -->
<string name="createRelease">New Release</string>
<string name="releaseTagNameText">Tag Name</string>
<string name="releaseTitleText">Title</string>
<string name="releaseContentText">Content</string>
<string name="createRelease">发布新版</string>
<string name="releaseTagNameText">标签名称</string>
<string name="releaseTitleText">标题</string>
<string name="releaseContentText">内容</string>
<string name="releaseTypeText">Mark as Pre-Release</string>
<string name="releaseBranchText">Select Branch</string>
<string name="releaseDraftText">Draft</string>
<string name="releaseDraftText">草稿</string>
<string name="tagNameErrorEmpty">Tag name is empty</string>
<string name="titleErrorEmpty">Title is empty</string>
<string name="titleErrorEmpty">标题为空</string>
<string name="releaseCreatedText">New release created</string>
<!-- release -->
<string name="loginOTPError">Enter OTP code</string>
<string name="loginOTPTypeError">OTP code should be numbers.</string>
<string name="loginOTP">OTP Code (Optional)</string>
<string name="otpMessage">Enter the otp code if 2FA is enabled</string>
<string name="openWebRepo">Open in Browser</string>
<string name="openWebRepo">在浏览器中打开</string>
<string name="repoStargazersInMenu">Stargazers</string>
<string name="repoWatchersInMenu">Watchers</string>
<string name="noDataStargazers">No stars found</string>
<string name="noDataWatchers">No watchers found</string>
<string name="starMember">Star</string>
<string name="watcherMember">Watcher</string>
<string name="commitLinkBranchesTab">Commit</string>
<string name="commitLinkBranchesTab">提交</string>
<string name="zipArchiveDownloadReleasesTab">Zip Archive</string>
<string name="tarArchiveDownloadReleasesTab">Tar Archive</string>
<!-- new file -->
<string name="newFileNameTintCopy">File Name</string>
<string name="newFileBranchTintCopy">New Branch Name</string>
<string name="newFileBranchTintCopy">新分支名称</string>
<string name="newFileContentTintCopy">File Content</string>
<string name="newFileButtonCopy">Create New File</string>
<string name="newFileNameHintMessage">with folder: app/test.md</string>
@ -387,15 +389,24 @@
<string name="authorizeError">You are not authorized to perform this action.</string>
<string name="menuContentDesc">Menu</string>
<string name="menuEditText">Edit</string>
<string name="menuDeleteText">Delete</string>
<string name="menuDeleteText">删除</string>
<string name="modifiedText">edited</string>
<string name="saveButton">Save</string>
<string name="nameText">Name</string>
<string name="descriptionText">Description</string>
<string name="websiteText">Website</string>
<string name="locationText">Location</string>
<string name="characters255Limit">Max 255 characters</string>
<string name="emptyFields">All fields are required</string>
<string name="characters255Limit">最大 255 字符</string>
<string name="emptyFields">所有字段都是必填项</string>
<!-- generic copy -->
<string name="translateText">Translate GitNex with Crowdin</string>
<string name="translateText">到 Crowdin 翻译</string>
<string name="exploreTextBoxHint">Explore repositories</string>
<string name="starRepository">Star Repository</string>
<string name="unStarRepository">Unstar Repository</string>
<string name="starRepositorySuccess">Repository added to starred list</string>
<string name="unStarRepositorySuccess">Repository removed from starred list</string>
<string name="watchRepository">Watch Repository</string>
<string name="unWatchRepository">Unwatch Repository</string>
<string name="watchRepositorySuccess">Repository added to watch list</string>
<string name="unWatchRepositorySuccess">Repository removed from watch list</string>
</resources>

View File

@ -514,5 +514,6 @@
<string name="unWatchRepositorySuccess">Repository removed from watch list</string>
<string name="navCommentsDraft">Drafts</string>
<string name="pageTitleCommentsDraft">Drafts</string>
<string name="filesBreadcrumbRoot" translatable="false">Root</string>
</resources>

View File

@ -0,0 +1,13 @@
2.2.0
- New: Explore repositories
- New: Files and directory browser (Require Gitea 1.9)
- New: Basic file viewer
- New: Filter files/directories
- New: Star/unstar a repository
- New: Watch/unwatch a repository
- Improvement: Added Corwdin for translation
- Improvement: Bottomsheet scroll and line dividers
- Improvement: New languages support
For more, check the release notes.
https://gitea.com/gitnex/GitNex/releases