Compare commits
118 Commits
Author | SHA1 | Date | |
---|---|---|---|
d9a7fa4e44 | |||
9950d4ea65 | |||
98054b89cc | |||
24d56c625e | |||
5970995ef0 | |||
cf75c61704 | |||
8ac92a8b3c | |||
f1f92ba494 | |||
d7b1a226d0 | |||
2bebe1e81d | |||
f5d560c601 | |||
d27000d481 | |||
9aff1cb42a | |||
7fe376fa44 | |||
6da4398369 | |||
dac0f690d8 | |||
8a7031e7f5 | |||
dd5f17d54d | |||
505c930c32 | |||
edb6cdf154 | |||
687b66751f | |||
f14ae18324 | |||
ea52d6c6d2 | |||
40d12c3b97 | |||
32ebf31ef4 | |||
7fc4146c98 | |||
e296a83aab | |||
0fc7c67d0b | |||
143d680627 | |||
69745b027e | |||
7f3aed9bae | |||
5496401a77 | |||
4c0fd3c286 | |||
40f924de2e | |||
1953a9feff | |||
24c71b4beb | |||
958606e476 | |||
39d1007423 | |||
0e673bb256 | |||
246ff6296a | |||
1d0b940c14 | |||
4d3fb54925 | |||
cd81ff74bf | |||
02843b4ca1 | |||
2189bd10bd | |||
35b9647709 | |||
2d2f486182 | |||
640771d4fa | |||
2ba8a80b9f | |||
2f55e7f5d1 | |||
d285115090 | |||
d5cffddc72 | |||
9e2921697b | |||
e868364554 | |||
88a8303b1c | |||
ac1fc696ea | |||
2fe175223c | |||
9cab502e84 | |||
88748998b3 | |||
264ed393cb | |||
821eef91a3 | |||
05afc9fc5a | |||
4cb6948288 | |||
7012c2587c | |||
dbcbd076ea | |||
c633b62fdb | |||
1ce1a15955 | |||
60b95e3c5d | |||
48fb0cf91c | |||
8fcb05b0d2 | |||
074bbfe3cc | |||
84438b740a | |||
d4cd16a111 | |||
5ed053bba7 | |||
598633a20a | |||
8fe53dfd01 | |||
aadbcbd0c6 | |||
e3b901741a | |||
f8275cd7aa | |||
c3afe1044c | |||
a6503ba7c4 | |||
dddc9b0178 | |||
13bc50da40 | |||
b32d291554 | |||
c15e6e99f7 | |||
1512032f05 | |||
e32ccde995 | |||
1be577cd3f | |||
7fa57621d9 | |||
75ac6ff113 | |||
9ef04b1287 | |||
8c903b9658 | |||
08b8275546 | |||
5baacbd801 | |||
56b8b486df | |||
7abfdc9567 | |||
0ab8784a7a | |||
e4ab2f64fc | |||
345d577fbf | |||
22b3802e73 | |||
07a1fa6aad | |||
5c9b53f5ab | |||
572f93d35c | |||
a77716970b | |||
4d998150a3 | |||
90df3a31fe | |||
0bcbca8bdc | |||
b90b3c3320 | |||
21097da995 | |||
06b71586c1 | |||
d2213c0c14 | |||
4c3b735534 | |||
90dce6fff8 | |||
d9337a24d3 | |||
45ec660ba1 | |||
bb24254e66 | |||
13e69cd09b | |||
71839bcfd6 |
31
.drone.yml
Normal file
@ -0,0 +1,31 @@
|
||||
---
|
||||
kind: pipeline
|
||||
name: gitnex-ci-test
|
||||
|
||||
steps:
|
||||
|
||||
- name: test
|
||||
image: nextcloudci/android:android-49
|
||||
commands:
|
||||
- ./gradlew test
|
||||
|
||||
trigger:
|
||||
event:
|
||||
- pull_request
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
name: gitnex-ci-build
|
||||
|
||||
steps:
|
||||
|
||||
- name: build
|
||||
image: nextcloudci/android:android-49
|
||||
commands:
|
||||
- ./gradlew build
|
||||
|
||||
trigger:
|
||||
event:
|
||||
- push
|
||||
branch:
|
||||
- master
|
3
.gitignore
vendored
@ -180,6 +180,9 @@ crashlytics.properties
|
||||
crashlytics-build.properties
|
||||
fabric.properties
|
||||
|
||||
# Crowdin
|
||||
crowdin.yml
|
||||
|
||||
### AndroidStudio Patch ###
|
||||
|
||||
!/gradle/wrapper/gradle-wrapper.jar
|
||||
|
@ -1,2 +1,2 @@
|
||||
# Changelog
|
||||
[Check out the release notes](https://gitea.com/mmarif/GitNex/releases)
|
||||
[Check out the release notes](https://gitea.com/gitnex/GitNex/releases)
|
||||
|
@ -20,10 +20,3 @@ Before creating an issue please take a moment and search the repository issues(o
|
||||
In case you want to submit a bug report, please provide as much details as possible to better debug the problem. The important part is how to reproduce the bug and steps to reproduce are appreciated.
|
||||
|
||||
**Note:** Please contact the project directly via email(gitnex@swatian.com) if have to share sensitive and security related details.
|
||||
|
||||
## Translation
|
||||
Help us translate GitNex to your native language.
|
||||
|
||||
Take a look [here](https://gitea.com/mmarif/GitNex/src/branch/master/app/src/main/res/values/strings.xml) for strings, please ignore the lines with `translatable="false"`. It is recommended to create a Pull Request with your changes.
|
||||
|
||||
Check the structure of other languages for example [French](https://gitea.com/mmarif/GitNex/src/branch/master/app/src/main/res/values-fr/strings.xml).
|
22
CONTRIBUTORS.md
Normal file
@ -0,0 +1,22 @@
|
||||
# Contributors
|
||||
This part lists all PUBLIC individuals having contributed content to the code.
|
||||
|
||||
* M M Arif (mmarif)
|
||||
* 6543
|
||||
|
||||
# Translators
|
||||
This part lists all PUBLIC individuals having contributed content to the translation.
|
||||
*Entries are in alphabetical order*
|
||||
|
||||
* 6543
|
||||
* ButterflyOfFire (BoFFire)
|
||||
* IndeedNotJames
|
||||
* Lunny Xiao (xiaolunwen)
|
||||
* mmarif
|
||||
* Nadezhda Moiseeva (digitalkiller)
|
||||
* PsychotherapistSam
|
||||
* Rodion Borisov (vintproykt)
|
||||
* valeriezhao1013
|
||||
* Voyvode
|
||||
|
||||
**Thank you for all your work** :+1:
|
33
README.md
@ -1,5 +1,7 @@
|
||||
[](https://www.gnu.org/licenses/gpl-3.0)
|
||||
[](https://gitea.com/mmarif/GitNex/releases)
|
||||
[](https://gitea.com/gitnex/GitNex/releases)
|
||||
[](https://drone.gitea.com/gitnex/GitNex)
|
||||
[](https://crowdin.com/project/gitnex)
|
||||
|
||||
[<img alt="Become a Patroen" src="https://c5.patreon.com/external/logo/become_a_patron_button@2x.png" height="40"/>](https://www.patreon.com/mmarif)
|
||||
[<img alt="Donate using Liberapay" src="https://liberapay.com/assets/widgets/donate.svg" height="40"/>](https://liberapay.com/mmarif/donate)
|
||||
@ -14,12 +16,12 @@ No trackers are used and source code is available here for anyone to audit.
|
||||
## Downloads
|
||||
[<img alt='Get it on F-droid' src='https://gitlab.com/fdroid/artwork/raw/master/badge/get-it-on.png' height="80"/>](https://f-droid.org/en/packages/org.mian.gitnex/)
|
||||
[<img alt='Get it on Google Play' src='https://play.google.com/intl/en_us/badges/images/generic/en_badge_web_generic.png' height="80"/>](https://play.google.com/store/apps/details?id=org.mian.gitnex)
|
||||
[<img alt='Download APK' src='https://gitnex.com/img/download-apk.png' height="80"/>](https://gitea.com/mmarif/GitNex/releases)
|
||||
[<img alt='Download APK' src='https://gitnex.com/img/download-apk.png' height="80"/>](https://gitea.com/gitnex/GitNex/releases)
|
||||
|
||||
## Note about Gitea version
|
||||
Please make sure that you are on Gitea **1.9.x** stable release or later. Below this may not work as one would expect because of the newly added objects to the API at later versions. Please consider updating your Gitea server.
|
||||
|
||||
Check the versions [compatibility page](https://gitea.com/mmarif/GitNex/wiki/Compatibility) which lists all the supported versions with compatibility ratio.
|
||||
Check the versions [compatibility page](https://gitea.com/gitnex/GitNex/wiki/Compatibility) which lists all the supported versions with compatibility ratio.
|
||||
|
||||
## Build from source
|
||||
Option 1 - Download the source code, open it in Android Studio and build it there.
|
||||
@ -33,25 +35,37 @@ Option 2 - Open terminal(Linux) and cd to the project dir. Run `./gradlew build`
|
||||
- Create repository
|
||||
- Create organization
|
||||
- Issues list
|
||||
- [MANY MORE](https://gitea.com/mmarif/GitNex/wiki/Features)
|
||||
- [MANY MORE](https://gitea.com/gitnex/GitNex/wiki/Features)
|
||||
|
||||
## Contributing
|
||||
[CONTRIBUTING](https://gitea.com/mmarif/GitNex/src/branch/master/CONTRIBUTING.md)
|
||||
[CONTRIBUTING](https://gitea.com/gitnex/GitNex/src/branch/master/CONTRIBUTING.md)
|
||||
|
||||
## Translation
|
||||
Help us translate GitNex to your native language.
|
||||
|
||||
We use [Crowdin](https://crowdin.com/project/gitnex) for translation.
|
||||
If your language is not listed, please request [here](https://gitea.com/gitnex/GitNex/issues) to add it to the project.
|
||||
|
||||
**Link: https://crowdin.com/project/GitNex**
|
||||
|
||||
## Screenshots:
|
||||
[Screenshots](https://gitea.com/mmarif/GitNex/src/branch/master/fastlane/metadata/android/en-US/images/phoneScreenshots)
|
||||
|
||||
<img src="https://gitea.com/gitnex/GitNex/raw/branch/master/fastlane/metadata/android/en-US/images/phoneScreenshots/001.png" alt="001.png" width="200"/> | <img src="https://gitea.com/gitnex/GitNex/raw/branch/master/fastlane/metadata/android/en-US/images/phoneScreenshots/002.png" alt="002.png" width="200"/> | <img src="https://gitea.com/gitnex/GitNex/raw/branch/master/fastlane/metadata/android/en-US/images/phoneScreenshots/003.png" alt="003.png" width="200"/> | <img src="https://gitea.com/gitnex/GitNex/raw/branch/master/fastlane/metadata/android/en-US/images/phoneScreenshots/004.png" alt="004.png" width="200"/>
|
||||
---|---|---|---
|
||||
<img src="https://gitea.com/gitnex/GitNex/raw/branch/master/fastlane/metadata/android/en-US/images/phoneScreenshots/005.png" alt="005.png" width="200"/> | <img src="https://gitea.com/gitnex/GitNex/raw/branch/master/fastlane/metadata/android/en-US/images/phoneScreenshots/006.png" alt="006.png" width="200"/> | <img src="https://gitea.com/gitnex/GitNex/raw/branch/master/fastlane/metadata/android/en-US/images/phoneScreenshots/007.png" alt="007.png" width="200"/> | <img src="https://gitea.com/gitnex/GitNex/raw/branch/master/fastlane/metadata/android/en-US/images/phoneScreenshots/008.png" alt="008.png" width="200"/>
|
||||
|
||||
|
||||
## FAQ
|
||||
[Faq](https://gitea.com/mmarif/GitNex/wiki/FAQ)
|
||||
[Faq](https://gitea.com/gitnex/GitNex/wiki/FAQ)
|
||||
|
||||
## Links
|
||||
[Website](https://gitnex.com)
|
||||
|
||||
[Wiki](https://gitea.com/mmarif/GitNex/wiki/Home)
|
||||
[Wiki](https://gitea.com/gitnex/GitNex/wiki/Home)
|
||||
|
||||
[Website Repository](https://gitlab.com/mmarif4u/gitnex-website)
|
||||
|
||||
[Troubleshoot Guide](https://gitea.com/mmarif/GitNex/wiki/Troubleshoot-Guide)
|
||||
[Troubleshoot Guide](https://gitea.com/gitnex/GitNex/wiki/Troubleshoot-Guide)
|
||||
|
||||
## Thanks
|
||||
Thanks to all the open source libraries, contributors and donators.
|
||||
@ -69,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)
|
||||
|
@ -6,8 +6,8 @@ android {
|
||||
applicationId "org.mian.gitnex"
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 28
|
||||
versionCode 61
|
||||
versionName "2.1.1"
|
||||
versionCode 71
|
||||
versionName "2.2.1"
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
buildTypes {
|
||||
@ -23,12 +23,12 @@ android {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
def lifecycle_version = "2.2.0-alpha05"
|
||||
final def markwon_version = "4.1.1"
|
||||
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'
|
||||
@ -68,4 +68,6 @@ dependencies {
|
||||
|
||||
implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"
|
||||
implementation "androidx.lifecycle:lifecycle-viewmodel:$lifecycle_version"
|
||||
|
||||
implementation "com.github.HamidrezaAmz:BreadcrumbsView:0.2.9"
|
||||
}
|
||||
|
@ -11,8 +11,11 @@
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/AppTheme">
|
||||
<activity
|
||||
android:name=".activities.NewFileActivity"
|
||||
android:name=".activities.FileViewActivity"
|
||||
android:theme="@style/AppTheme.NoActionBar"></activity>
|
||||
<activity
|
||||
android:name=".activities.NewFileActivity"
|
||||
android:theme="@style/AppTheme.NoActionBar" />
|
||||
<activity
|
||||
android:name=".activities.RepoWatchersActivity"
|
||||
android:theme="@style/AppTheme.NoActionBar" />
|
||||
@ -64,8 +67,8 @@
|
||||
<activity android:name=".activities.NewOrganizationActivity" />
|
||||
<activity android:name=".activities.OpenRepoInBrowserActivity" />
|
||||
</application>
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
|
||||
</manifest>
|
280
app/src/main/java/org/mian/gitnex/actions/RepositoryActions.java
Normal file
@ -0,0 +1,280 @@
|
||||
package org.mian.gitnex.actions;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.Log;
|
||||
import androidx.annotation.NonNull;
|
||||
import com.google.gson.JsonElement;
|
||||
import org.mian.gitnex.R;
|
||||
import org.mian.gitnex.clients.RetrofitClient;
|
||||
import org.mian.gitnex.helpers.AlertDialogs;
|
||||
import org.mian.gitnex.helpers.Authorization;
|
||||
import org.mian.gitnex.helpers.Toasty;
|
||||
import org.mian.gitnex.util.TinyDB;
|
||||
import retrofit2.Call;
|
||||
import retrofit2.Callback;
|
||||
|
||||
/**
|
||||
* Author M M Arif
|
||||
*/
|
||||
|
||||
public class RepositoryActions {
|
||||
|
||||
public static void starRepository(final Context context) {
|
||||
|
||||
final TinyDB tinyDb = new TinyDB(context);
|
||||
final String instanceUrl = tinyDb.getString("instanceUrl");
|
||||
final String loginUid = tinyDb.getString("loginUid");
|
||||
final String instanceToken = "token " + tinyDb.getString(loginUid + "-token");
|
||||
String repoFullName = tinyDb.getString("repoFullName");
|
||||
String[] parts = repoFullName.split("/");
|
||||
final String repoOwner = parts[0];
|
||||
final String repoName = parts[1];
|
||||
|
||||
Call<JsonElement> call;
|
||||
|
||||
call = RetrofitClient
|
||||
.getInstance(instanceUrl)
|
||||
.getApiInterface()
|
||||
.starRepository(Authorization.returnAuthentication(context, loginUid, instanceToken), repoOwner, repoName);
|
||||
|
||||
call.enqueue(new Callback<JsonElement>() {
|
||||
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<JsonElement> call, @NonNull retrofit2.Response<JsonElement> response) {
|
||||
|
||||
if(response.isSuccessful()) {
|
||||
if(response.code() == 204) {
|
||||
|
||||
tinyDb.putBoolean("repoCreated", true);
|
||||
Toasty.info(context, context.getString(R.string.starRepositorySuccess));
|
||||
|
||||
}
|
||||
}
|
||||
else if(response.code() == 401) {
|
||||
|
||||
AlertDialogs.authorizationTokenRevokedDialog(context, context.getResources().getString(R.string.alertDialogTokenRevokedTitle),
|
||||
context.getResources().getString(R.string.alertDialogTokenRevokedMessage),
|
||||
context.getResources().getString(R.string.alertDialogTokenRevokedCopyNegativeButton),
|
||||
context.getResources().getString(R.string.alertDialogTokenRevokedCopyPositiveButton));
|
||||
|
||||
}
|
||||
else if(response.code() == 403) {
|
||||
|
||||
Toasty.info(context, context.getString(R.string.authorizeError));
|
||||
|
||||
}
|
||||
else if(response.code() == 404) {
|
||||
|
||||
Toasty.info(context, context.getString(R.string.apiNotFound));
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
Toasty.info(context, context.getString(R.string.genericError));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(@NonNull Call<JsonElement> call, @NonNull Throwable t) {
|
||||
Log.e("onFailure", t.toString());
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
public static void unStarRepository(final Context context) {
|
||||
|
||||
final TinyDB tinyDb = new TinyDB(context);
|
||||
final String instanceUrl = tinyDb.getString("instanceUrl");
|
||||
final String loginUid = tinyDb.getString("loginUid");
|
||||
final String instanceToken = "token " + tinyDb.getString(loginUid + "-token");
|
||||
String repoFullName = tinyDb.getString("repoFullName");
|
||||
String[] parts = repoFullName.split("/");
|
||||
final String repoOwner = parts[0];
|
||||
final String repoName = parts[1];
|
||||
|
||||
Call<JsonElement> call;
|
||||
|
||||
call = RetrofitClient
|
||||
.getInstance(instanceUrl)
|
||||
.getApiInterface()
|
||||
.unStarRepository(Authorization.returnAuthentication(context, loginUid, instanceToken), repoOwner, repoName);
|
||||
|
||||
call.enqueue(new Callback<JsonElement>() {
|
||||
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<JsonElement> call, @NonNull retrofit2.Response<JsonElement> response) {
|
||||
|
||||
if(response.isSuccessful()) {
|
||||
if(response.code() == 204) {
|
||||
|
||||
tinyDb.putBoolean("repoCreated", true);
|
||||
Toasty.info(context, context.getString(R.string.unStarRepositorySuccess));
|
||||
|
||||
}
|
||||
}
|
||||
else if(response.code() == 401) {
|
||||
|
||||
AlertDialogs.authorizationTokenRevokedDialog(context, context.getResources().getString(R.string.alertDialogTokenRevokedTitle),
|
||||
context.getResources().getString(R.string.alertDialogTokenRevokedMessage),
|
||||
context.getResources().getString(R.string.alertDialogTokenRevokedCopyNegativeButton),
|
||||
context.getResources().getString(R.string.alertDialogTokenRevokedCopyPositiveButton));
|
||||
|
||||
}
|
||||
else if(response.code() == 403) {
|
||||
|
||||
Toasty.info(context, context.getString(R.string.authorizeError));
|
||||
|
||||
}
|
||||
else if(response.code() == 404) {
|
||||
|
||||
Toasty.info(context, context.getString(R.string.apiNotFound));
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
Toasty.info(context, context.getString(R.string.genericError));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(@NonNull Call<JsonElement> call, @NonNull Throwable t) {
|
||||
Log.e("onFailure", t.toString());
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
public static void watchRepository(final Context context) {
|
||||
|
||||
final TinyDB tinyDb = new TinyDB(context);
|
||||
final String instanceUrl = tinyDb.getString("instanceUrl");
|
||||
final String loginUid = tinyDb.getString("loginUid");
|
||||
final String instanceToken = "token " + tinyDb.getString(loginUid + "-token");
|
||||
String repoFullName = tinyDb.getString("repoFullName");
|
||||
String[] parts = repoFullName.split("/");
|
||||
final String repoOwner = parts[0];
|
||||
final String repoName = parts[1];
|
||||
|
||||
Call<JsonElement> call;
|
||||
|
||||
call = RetrofitClient
|
||||
.getInstance(instanceUrl)
|
||||
.getApiInterface()
|
||||
.watchRepository(Authorization.returnAuthentication(context, loginUid, instanceToken), repoOwner, repoName);
|
||||
|
||||
call.enqueue(new Callback<JsonElement>() {
|
||||
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<JsonElement> call, @NonNull retrofit2.Response<JsonElement> response) {
|
||||
|
||||
if(response.isSuccessful()) {
|
||||
if(response.code() == 200) {
|
||||
|
||||
tinyDb.putBoolean("repoCreated", true);
|
||||
Toasty.info(context, context.getString(R.string.watchRepositorySuccess));
|
||||
|
||||
}
|
||||
}
|
||||
else if(response.code() == 401) {
|
||||
|
||||
AlertDialogs.authorizationTokenRevokedDialog(context, context.getResources().getString(R.string.alertDialogTokenRevokedTitle),
|
||||
context.getResources().getString(R.string.alertDialogTokenRevokedMessage),
|
||||
context.getResources().getString(R.string.alertDialogTokenRevokedCopyNegativeButton),
|
||||
context.getResources().getString(R.string.alertDialogTokenRevokedCopyPositiveButton));
|
||||
|
||||
}
|
||||
else if(response.code() == 403) {
|
||||
|
||||
Toasty.info(context, context.getString(R.string.authorizeError));
|
||||
|
||||
}
|
||||
else if(response.code() == 404) {
|
||||
|
||||
Toasty.info(context, context.getString(R.string.apiNotFound));
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
Toasty.info(context, context.getString(R.string.genericError));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(@NonNull Call<JsonElement> call, @NonNull Throwable t) {
|
||||
Log.e("onFailure", t.toString());
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
public static void unWatchRepository(final Context context) {
|
||||
|
||||
final TinyDB tinyDb = new TinyDB(context);
|
||||
final String instanceUrl = tinyDb.getString("instanceUrl");
|
||||
final String loginUid = tinyDb.getString("loginUid");
|
||||
final String instanceToken = "token " + tinyDb.getString(loginUid + "-token");
|
||||
String repoFullName = tinyDb.getString("repoFullName");
|
||||
String[] parts = repoFullName.split("/");
|
||||
final String repoOwner = parts[0];
|
||||
final String repoName = parts[1];
|
||||
|
||||
Call<JsonElement> call;
|
||||
|
||||
call = RetrofitClient
|
||||
.getInstance(instanceUrl)
|
||||
.getApiInterface()
|
||||
.unWatchRepository(Authorization.returnAuthentication(context, loginUid, instanceToken), repoOwner, repoName);
|
||||
|
||||
call.enqueue(new Callback<JsonElement>() {
|
||||
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<JsonElement> call, @NonNull retrofit2.Response<JsonElement> response) {
|
||||
|
||||
if(response.code() == 204) {
|
||||
|
||||
tinyDb.putBoolean("repoCreated", true);
|
||||
Toasty.info(context, context.getString(R.string.unWatchRepositorySuccess));
|
||||
|
||||
}
|
||||
else if(response.code() == 401) {
|
||||
|
||||
AlertDialogs.authorizationTokenRevokedDialog(context, context.getResources().getString(R.string.alertDialogTokenRevokedTitle),
|
||||
context.getResources().getString(R.string.alertDialogTokenRevokedMessage),
|
||||
context.getResources().getString(R.string.alertDialogTokenRevokedCopyNegativeButton),
|
||||
context.getResources().getString(R.string.alertDialogTokenRevokedCopyPositiveButton));
|
||||
|
||||
}
|
||||
else if(response.code() == 403) {
|
||||
|
||||
Toasty.info(context, context.getString(R.string.authorizeError));
|
||||
|
||||
}
|
||||
else if(response.code() == 404) {
|
||||
|
||||
Toasty.info(context, context.getString(R.string.apiNotFound));
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
Toasty.info(context, context.getString(R.string.genericError));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(@NonNull Call<JsonElement> call, @NonNull Throwable t) {
|
||||
Log.e("onFailure", t.toString());
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,149 @@
|
||||
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;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import org.mian.gitnex.R;
|
||||
import org.mian.gitnex.clients.RetrofitClient;
|
||||
import org.mian.gitnex.helpers.AlertDialogs;
|
||||
import org.mian.gitnex.helpers.Toasty;
|
||||
import org.mian.gitnex.models.Files;
|
||||
import org.mian.gitnex.util.AppUtil;
|
||||
import org.mian.gitnex.util.TinyDB;
|
||||
import retrofit2.Call;
|
||||
import retrofit2.Callback;
|
||||
|
||||
/**
|
||||
* Author M M Arif
|
||||
*/
|
||||
|
||||
public class FileViewActivity extends AppCompatActivity {
|
||||
|
||||
private View.OnClickListener onClickListener;
|
||||
private TextView singleFileContents;
|
||||
final Context ctx = this;
|
||||
private ProgressBar mProgressBar;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_file_view);
|
||||
Toolbar toolbar = findViewById(R.id.toolbar);
|
||||
setSupportActionBar(toolbar);
|
||||
|
||||
final TinyDB tinyDb = new TinyDB(getApplicationContext());
|
||||
String repoFullName = tinyDb.getString("repoFullName");
|
||||
String[] parts = repoFullName.split("/");
|
||||
final String repoOwner = parts[0];
|
||||
final String repoName = parts[1];
|
||||
final String instanceUrl = tinyDb.getString("instanceUrl");
|
||||
final String loginUid = tinyDb.getString("loginUid");
|
||||
final String instanceToken = "token " + tinyDb.getString(loginUid + "-token");
|
||||
|
||||
boolean connToInternet = AppUtil.haveNetworkConnection(getApplicationContext());
|
||||
|
||||
ImageView closeActivity = findViewById(R.id.close);
|
||||
singleFileContents = findViewById(R.id.singleFileContents);
|
||||
singleFileContents.setVisibility(View.GONE);
|
||||
mProgressBar = findViewById(R.id.progress_bar);
|
||||
|
||||
String singleFileName = getIntent().getStringExtra("singleFileName");
|
||||
|
||||
TextView toolbar_title = findViewById(R.id.toolbar_title);
|
||||
toolbar_title.setMovementMethod(new ScrollingMovementMethod());
|
||||
toolbar_title.setText(singleFileName);
|
||||
|
||||
initCloseListener();
|
||||
closeActivity.setOnClickListener(onClickListener);
|
||||
|
||||
if(connToInternet) {
|
||||
getSingleFileContents(instanceUrl, instanceToken, repoOwner, repoName, singleFileName);
|
||||
}
|
||||
else {
|
||||
Toasty.info(getApplicationContext(), getString(R.string.checkNetConnection));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void getSingleFileContents(String instanceUrl, String token, final String owner, String repo, final String filename) {
|
||||
|
||||
Call<Files> call = RetrofitClient
|
||||
.getInstance(instanceUrl)
|
||||
.getApiInterface()
|
||||
.getSingleFileContents(token, owner, repo, filename);
|
||||
|
||||
call.enqueue(new Callback<Files>() {
|
||||
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<Files> call, @NonNull retrofit2.Response<Files> response) {
|
||||
|
||||
if (response.code() == 200) {
|
||||
|
||||
AppUtil appUtil = new AppUtil();
|
||||
assert response.body() != null;
|
||||
|
||||
if(!response.body().getContent().equals("")) {
|
||||
singleFileContents.setVisibility(View.VISIBLE);
|
||||
mProgressBar.setVisibility(View.GONE);
|
||||
singleFileContents.setText(appUtil.decodeBase64(response.body().getContent()));
|
||||
}
|
||||
else {
|
||||
singleFileContents.setText("");
|
||||
mProgressBar.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
}
|
||||
else if(response.code() == 401) {
|
||||
|
||||
AlertDialogs.authorizationTokenRevokedDialog(ctx, getResources().getString(R.string.alertDialogTokenRevokedTitle),
|
||||
getResources().getString(R.string.alertDialogTokenRevokedMessage),
|
||||
getResources().getString(R.string.alertDialogTokenRevokedCopyNegativeButton),
|
||||
getResources().getString(R.string.alertDialogTokenRevokedCopyPositiveButton));
|
||||
|
||||
}
|
||||
else if(response.code() == 403) {
|
||||
|
||||
Toasty.info(ctx, ctx.getString(R.string.authorizeError));
|
||||
|
||||
}
|
||||
else if(response.code() == 404) {
|
||||
|
||||
Toasty.info(ctx, ctx.getString(R.string.apiNotFound));
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
Toasty.info(getApplicationContext(), getString(R.string.labelGeneralError));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(@NonNull Call<Files> call, @NonNull Throwable t) {
|
||||
Log.e("onFailure", t.toString());
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
private void initCloseListener() {
|
||||
onClickListener = new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
getIntent().removeExtra("singleFileName");
|
||||
finish();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
}
|
@ -21,6 +21,7 @@ import com.squareup.picasso.Picasso;
|
||||
import org.mian.gitnex.R;
|
||||
import org.mian.gitnex.clients.RetrofitClient;
|
||||
import org.mian.gitnex.fragments.AboutFragment;
|
||||
import org.mian.gitnex.fragments.ExploreRepositoriesFragment;
|
||||
import org.mian.gitnex.fragments.MyRepositoriesFragment;
|
||||
import org.mian.gitnex.fragments.NavSubMenuBottomSheetFragment;
|
||||
import org.mian.gitnex.fragments.OrganizationsFragment;
|
||||
@ -278,6 +279,11 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
|
||||
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
|
||||
new StarredRepositoriesFragment()).commit();
|
||||
break;
|
||||
case R.id.nav_explore:
|
||||
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
|
||||
new ExploreRepositoriesFragment()).commit();
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
drawer.closeDrawer(GravityCompat.START);
|
||||
@ -354,9 +360,9 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
|
||||
|
||||
userAvatar = hView.findViewById(R.id.userAvatar);
|
||||
if (!Objects.requireNonNull(userDetails).getAvatar().equals("")) {
|
||||
Picasso.get().load(userDetails.getAvatar()).transform(new RoundedTransformation(8, 0)).resize(120, 120).centerCrop().into(userAvatar);
|
||||
Picasso.get().load(userDetails.getAvatar()).transform(new RoundedTransformation(8, 0)).resize(160, 160).centerCrop().into(userAvatar);
|
||||
} else {
|
||||
userAvatar.setImageResource(R.mipmap.ic_launcher_round);
|
||||
userAvatar.setImageResource(R.mipmap.app_logo_round);
|
||||
}
|
||||
|
||||
userFullName = hView.findViewById(R.id.userFullname);
|
||||
|
@ -1,6 +1,7 @@
|
||||
package org.mian.gitnex.activities;
|
||||
|
||||
import com.google.android.material.tabs.TabLayout;
|
||||
import com.google.gson.JsonElement;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
@ -26,6 +27,7 @@ import org.mian.gitnex.clients.RetrofitClient;
|
||||
import org.mian.gitnex.fragments.BranchesFragment;
|
||||
import org.mian.gitnex.fragments.ClosedIssuesFragment;
|
||||
import org.mian.gitnex.fragments.CollaboratorsFragment;
|
||||
import org.mian.gitnex.fragments.FilesFragment;
|
||||
import org.mian.gitnex.fragments.IssuesFragment;
|
||||
import org.mian.gitnex.fragments.LabelsFragment;
|
||||
import org.mian.gitnex.fragments.MilestonesFragment;
|
||||
@ -34,6 +36,7 @@ import org.mian.gitnex.fragments.RepoBottomSheetFragment;
|
||||
import org.mian.gitnex.fragments.RepoInfoFragment;
|
||||
import org.mian.gitnex.helpers.Authorization;
|
||||
import org.mian.gitnex.models.UserRepositories;
|
||||
import org.mian.gitnex.models.WatchRepository;
|
||||
import org.mian.gitnex.util.AppUtil;
|
||||
import org.mian.gitnex.util.TinyDB;
|
||||
import java.util.Objects;
|
||||
@ -87,15 +90,18 @@ public class RepoDetailActivity extends AppCompatActivity implements RepoBottomS
|
||||
if(!tinyDb.getString("issuesCounter").isEmpty()) {
|
||||
getRepoInfo(instanceUrl, Authorization.returnAuthentication(getApplicationContext(), loginUid, instanceToken), repoOwner, repoName1);
|
||||
}
|
||||
Objects.requireNonNull(tabLayout.getTabAt(1)).setCustomView(tabHeader);
|
||||
Objects.requireNonNull(tabLayout.getTabAt(2)).setCustomView(tabHeader);
|
||||
|
||||
TabLayout.Tab tabOpenIssues = tabLayout.getTabAt(1);
|
||||
TabLayout.Tab tabOpenIssues = tabLayout.getTabAt(2);
|
||||
ColorStateList textColor = tabLayout.getTabTextColors();
|
||||
assert tabOpenIssues != null;
|
||||
TextView openIssueTabView = Objects.requireNonNull(tabOpenIssues.getCustomView()).findViewById(R.id.counterBadgeText);
|
||||
openIssueTabView.setTextColor(textColor);
|
||||
|
||||
}
|
||||
|
||||
checkRepositoryStarStatus(instanceUrl, Authorization.returnAuthentication(getApplicationContext(), loginUid, instanceToken), repoOwner, repoName1);
|
||||
checkRepositoryWatchStatus(instanceUrl, Authorization.returnAuthentication(getApplicationContext(), loginUid, instanceToken), repoOwner, repoName1);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -199,21 +205,23 @@ public class RepoDetailActivity extends AppCompatActivity implements RepoBottomS
|
||||
switch (position) {
|
||||
case 0: // information
|
||||
return RepoInfoFragment.newInstance(repoOwner, repoName);
|
||||
case 1: // issues
|
||||
case 1: // files
|
||||
return FilesFragment.newInstance(repoOwner, repoName);
|
||||
case 2: // issues
|
||||
fragment = new IssuesFragment();
|
||||
break;
|
||||
case 2: // closed issues
|
||||
case 3: // closed issues
|
||||
fragment = new ClosedIssuesFragment();
|
||||
break;
|
||||
case 3: // milestones
|
||||
case 4: // milestones
|
||||
return MilestonesFragment.newInstance(repoOwner, repoName);
|
||||
case 4: // labels
|
||||
case 5: // labels
|
||||
return LabelsFragment.newInstance(repoOwner, repoName);
|
||||
case 5: // branches
|
||||
case 6: // branches
|
||||
return BranchesFragment.newInstance(repoOwner, repoName);
|
||||
case 6: // releases
|
||||
case 7: // releases
|
||||
return ReleasesFragment.newInstance(repoOwner, repoName);
|
||||
case 7: // collaborators
|
||||
case 8: // collaborators
|
||||
return CollaboratorsFragment.newInstance(repoOwner, repoName);
|
||||
}
|
||||
return fragment;
|
||||
@ -221,7 +229,7 @@ public class RepoDetailActivity extends AppCompatActivity implements RepoBottomS
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return 8;
|
||||
return 9;
|
||||
}
|
||||
|
||||
}
|
||||
@ -264,4 +272,67 @@ public class RepoDetailActivity extends AppCompatActivity implements RepoBottomS
|
||||
|
||||
}
|
||||
|
||||
private void checkRepositoryStarStatus(String instanceUrl, String instanceToken, final String owner, String repo) {
|
||||
|
||||
Call<JsonElement> call;
|
||||
|
||||
call = RetrofitClient
|
||||
.getInstance(instanceUrl)
|
||||
.getApiInterface()
|
||||
.checkRepoStarStatus(instanceToken, owner, repo);
|
||||
|
||||
call.enqueue(new Callback<JsonElement>() {
|
||||
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<JsonElement> call, @NonNull retrofit2.Response<JsonElement> response) {
|
||||
|
||||
TinyDB tinyDb = new TinyDB(getApplicationContext());
|
||||
tinyDb.putInt("repositoryStarStatus", response.code());
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(@NonNull Call<JsonElement> call, @NonNull Throwable t) {
|
||||
Log.e("onFailure", t.toString());
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
private void checkRepositoryWatchStatus(String instanceUrl, String instanceToken, final String owner, String repo) {
|
||||
|
||||
Call<WatchRepository> call;
|
||||
|
||||
call = RetrofitClient
|
||||
.getInstance(instanceUrl)
|
||||
.getApiInterface()
|
||||
.checkRepoWatchStatus(instanceToken, owner, repo);
|
||||
|
||||
call.enqueue(new Callback<WatchRepository>() {
|
||||
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<WatchRepository> call, @NonNull retrofit2.Response<WatchRepository> response) {
|
||||
|
||||
TinyDB tinyDb = new TinyDB(getApplicationContext());
|
||||
|
||||
if(response.code() == 200) {
|
||||
assert response.body() != null;
|
||||
if(response.body().getSubscribed()) {
|
||||
tinyDb.putBoolean("repositoryWatchStatus", true);
|
||||
}
|
||||
}
|
||||
else {
|
||||
tinyDb.putBoolean("repositoryWatchStatus", false);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(@NonNull Call<WatchRepository> call, @NonNull Throwable t) {
|
||||
Log.e("onFailure", t.toString());
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,216 @@
|
||||
package org.mian.gitnex.adapters;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Typeface;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.view.ContextThemeWrapper;
|
||||
import androidx.appcompat.widget.PopupMenu;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import com.amulyakhare.textdrawable.TextDrawable;
|
||||
import com.amulyakhare.textdrawable.util.ColorGenerator;
|
||||
import com.squareup.picasso.Picasso;
|
||||
import org.mian.gitnex.R;
|
||||
import org.mian.gitnex.activities.OpenRepoInBrowserActivity;
|
||||
import org.mian.gitnex.activities.RepoDetailActivity;
|
||||
import org.mian.gitnex.activities.RepoStargazersActivity;
|
||||
import org.mian.gitnex.activities.RepoWatchersActivity;
|
||||
import org.mian.gitnex.helpers.RoundedTransformation;
|
||||
import org.mian.gitnex.models.UserRepositories;
|
||||
import org.mian.gitnex.util.TinyDB;
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Author M M Arif
|
||||
*/
|
||||
|
||||
public class ExploreRepositoriesAdapter extends RecyclerView.Adapter<ExploreRepositoriesAdapter.ReposSearchViewHolder> {
|
||||
|
||||
|
||||
private List<UserRepositories> searchedReposList;
|
||||
private Context mCtx;
|
||||
|
||||
public ExploreRepositoriesAdapter(List<UserRepositories> dataList, Context mCtx) {
|
||||
this.mCtx = mCtx;
|
||||
this.searchedReposList = dataList;
|
||||
}
|
||||
|
||||
static class ReposSearchViewHolder extends RecyclerView.ViewHolder {
|
||||
|
||||
private ImageView image;
|
||||
private TextView mTextView1;
|
||||
private TextView mTextView2;
|
||||
private TextView fullName;
|
||||
private ImageView repoPrivatePublic;
|
||||
private TextView repoStars;
|
||||
private TextView repoForks;
|
||||
private TextView repoOpenIssuesCount;
|
||||
|
||||
private ReposSearchViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
|
||||
mTextView1 = itemView.findViewById(R.id.repoName);
|
||||
mTextView2 = itemView.findViewById(R.id.repoDescription);
|
||||
image = itemView.findViewById(R.id.imageAvatar);
|
||||
fullName = itemView.findViewById(R.id.repoFullName);
|
||||
repoPrivatePublic = itemView.findViewById(R.id.imageRepoType);
|
||||
repoStars = itemView.findViewById(R.id.repoStars);
|
||||
repoForks = itemView.findViewById(R.id.repoForks);
|
||||
repoOpenIssuesCount = itemView.findViewById(R.id.repoOpenIssuesCount);
|
||||
ImageView reposDropdownMenu = itemView.findViewById(R.id.reposDropdownMenu);
|
||||
|
||||
itemView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
||||
Context context = v.getContext();
|
||||
TextView repoFullName = v.findViewById(R.id.repoFullName);
|
||||
|
||||
Intent intent = new Intent(context, RepoDetailActivity.class);
|
||||
intent.putExtra("repoFullName", repoFullName.getText().toString());
|
||||
|
||||
TinyDB tinyDb = new TinyDB(context);
|
||||
tinyDb.putString("repoFullName", repoFullName.getText().toString());
|
||||
tinyDb.putBoolean("resumeIssues", true);
|
||||
context.startActivity(intent);
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
reposDropdownMenu.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
||||
final Context context = v.getContext();
|
||||
Context context_ = new ContextThemeWrapper(context, R.style.popupMenuStyle);
|
||||
|
||||
PopupMenu popupMenu = new PopupMenu(context_, v);
|
||||
popupMenu.inflate(R.menu.repo_dotted_list_menu);
|
||||
|
||||
Object menuHelper;
|
||||
Class[] argTypes;
|
||||
try {
|
||||
|
||||
Field fMenuHelper = PopupMenu.class.getDeclaredField("mPopup");
|
||||
fMenuHelper.setAccessible(true);
|
||||
menuHelper = fMenuHelper.get(popupMenu);
|
||||
argTypes = new Class[] { boolean.class };
|
||||
menuHelper.getClass().getDeclaredMethod("setForceShowIcon",
|
||||
argTypes).invoke(menuHelper, true);
|
||||
|
||||
} catch (Exception e) {
|
||||
|
||||
popupMenu.show();
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
|
||||
@Override
|
||||
public boolean onMenuItemClick(MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case R.id.repoStargazers:
|
||||
|
||||
Intent intent = new Intent(context, RepoStargazersActivity.class);
|
||||
intent.putExtra("repoFullNameForStars", fullName.getText());
|
||||
context.startActivity(intent);
|
||||
break;
|
||||
|
||||
case R.id.repoWatchers:
|
||||
|
||||
Intent intentW = new Intent(context, RepoWatchersActivity.class);
|
||||
intentW.putExtra("repoFullNameForWatchers", fullName.getText());
|
||||
context.startActivity(intentW);
|
||||
break;
|
||||
|
||||
case R.id.repoOpenInBrowser:
|
||||
|
||||
Intent intentOpenInBrowser = new Intent(context, OpenRepoInBrowserActivity.class);
|
||||
intentOpenInBrowser.putExtra("repoFullNameBrowser", fullName.getText());
|
||||
context.startActivity(intentOpenInBrowser);
|
||||
break;
|
||||
|
||||
}
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
popupMenu.show();
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public ExploreRepositoriesAdapter.ReposSearchViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.repos_list, parent, false);
|
||||
return new ExploreRepositoriesAdapter.ReposSearchViewHolder(v);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull final ExploreRepositoriesAdapter.ReposSearchViewHolder holder, int position) {
|
||||
|
||||
final UserRepositories currentItem = searchedReposList.get(position);
|
||||
|
||||
|
||||
holder.mTextView2.setVisibility(View.GONE);
|
||||
|
||||
ColorGenerator generator = ColorGenerator.MATERIAL;
|
||||
int color = generator.getColor(currentItem.getName());
|
||||
String firstCharacter = String.valueOf(currentItem.getName().charAt(0));
|
||||
|
||||
TextDrawable drawable = TextDrawable.builder()
|
||||
.beginConfig()
|
||||
.useFont(Typeface.DEFAULT)
|
||||
.fontSize(18)
|
||||
.toUpperCase()
|
||||
.width(28)
|
||||
.height(28)
|
||||
.endConfig()
|
||||
.buildRoundRect(firstCharacter, color, 3);
|
||||
|
||||
if (currentItem.getAvatar_url() != null) {
|
||||
if (!currentItem.getAvatar_url().equals("")) {
|
||||
Picasso.get().load(currentItem.getAvatar_url()).transform(new RoundedTransformation(8, 0)).resize(120, 120).centerCrop().into(holder.image);
|
||||
} else {
|
||||
holder.image.setImageDrawable(drawable);
|
||||
}
|
||||
}
|
||||
else {
|
||||
holder.image.setImageDrawable(drawable);
|
||||
}
|
||||
|
||||
holder.mTextView1.setText(currentItem.getName());
|
||||
if (!currentItem.getDescription().equals("")) {
|
||||
holder.mTextView2.setVisibility(View.VISIBLE);
|
||||
holder.mTextView2.setText(currentItem.getDescription());
|
||||
}
|
||||
holder.fullName.setText(currentItem.getFullname());
|
||||
if(currentItem.getPrivateFlag()) {
|
||||
holder.repoPrivatePublic.setImageResource(R.drawable.ic_lock_bold);
|
||||
}
|
||||
else {
|
||||
holder.repoPrivatePublic.setImageResource(R.drawable.ic_public);
|
||||
}
|
||||
holder.repoStars.setText(currentItem.getStars_count());
|
||||
holder.repoForks.setText(currentItem.getForks_count());
|
||||
holder.repoOpenIssuesCount.setText(currentItem.getOpen_issues_count());
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return searchedReposList.size();
|
||||
}
|
||||
}
|
212
app/src/main/java/org/mian/gitnex/adapters/FilesAdapter.java
Normal file
@ -0,0 +1,212 @@
|
||||
package org.mian.gitnex.adapters;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Filter;
|
||||
import android.widget.Filterable;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import org.mian.gitnex.R;
|
||||
import org.mian.gitnex.helpers.Toasty;
|
||||
import org.mian.gitnex.models.Files;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Author M M Arif
|
||||
*/
|
||||
|
||||
public class FilesAdapter extends RecyclerView.Adapter<FilesAdapter.FilesViewHolder> implements Filterable {
|
||||
|
||||
private List<Files> filesList;
|
||||
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;
|
||||
private TextView fileName;
|
||||
private TextView fileType;
|
||||
|
||||
private FilesViewHolder(View itemView) {
|
||||
|
||||
super(itemView);
|
||||
fileName = itemView.findViewById(R.id.fileName);
|
||||
fileTypeImage = itemView.findViewById(R.id.fileImage);
|
||||
fileType = itemView.findViewById(R.id.fileType);
|
||||
|
||||
//ImageView filesDropdownMenu = itemView.findViewById(R.id.filesDropdownMenu);
|
||||
|
||||
fileName.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
||||
Context context = v.getContext();
|
||||
|
||||
if(fileType.getText().toString().equals("file")) {
|
||||
filesListener.onClickFile(fileName.getText().toString());
|
||||
}
|
||||
else if(fileType.getText().toString().equals("dir")) {
|
||||
filesListener.onClickDir(fileName.getText().toString());
|
||||
}
|
||||
else {
|
||||
Toasty.info(context, context.getString(R.string.filesGenericError));
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
/*filesDropdownMenu.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
||||
final Context context = v.getContext();
|
||||
Context context_ = new ContextThemeWrapper(context, R.style.popupMenuStyle);
|
||||
|
||||
PopupMenu popupMenu = new PopupMenu(context_, v);
|
||||
popupMenu.inflate(R.menu.files_dotted_list_menu);
|
||||
|
||||
Object menuHelper;
|
||||
Class[] argTypes;
|
||||
try {
|
||||
|
||||
Field fMenuHelper = PopupMenu.class.getDeclaredField("mPopup");
|
||||
fMenuHelper.setAccessible(true);
|
||||
menuHelper = fMenuHelper.get(popupMenu);
|
||||
argTypes = new Class[] { boolean.class };
|
||||
menuHelper.getClass().getDeclaredMethod("setForceShowIcon",
|
||||
argTypes).invoke(menuHelper, true);
|
||||
|
||||
} catch (Exception e) {
|
||||
|
||||
popupMenu.show();
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
|
||||
@Override
|
||||
public boolean onMenuItemClick(MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case R.id.deleteFile:
|
||||
|
||||
Intent intent = new Intent(context, DeleteFileActivity.class);
|
||||
intent.putExtra("repoFullNameForDeleteFile", fullName.getText());
|
||||
context.startActivity(intent);
|
||||
break;
|
||||
|
||||
case R.id.editFile:
|
||||
|
||||
Intent intentW = new Intent(context, EditFileActivity.class);
|
||||
intentW.putExtra("repoFullNameForEditFile", fullName.getText());
|
||||
context.startActivity(intentW);
|
||||
break;
|
||||
|
||||
case R.id.openInBrowser:
|
||||
|
||||
Intent intentOpenInBrowser = new Intent(context, OpenFileInBrowserActivity.class);
|
||||
intentOpenInBrowser.putExtra("fileFullNameBrowser", fullName.getText());
|
||||
context.startActivity(intentOpenInBrowser);
|
||||
break;
|
||||
|
||||
}
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
popupMenu.show();
|
||||
|
||||
}
|
||||
});*/
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public FilesAdapter(Context mCtx, List<Files> filesListMain, FilesAdapterListener filesListener) {
|
||||
this.mCtx = mCtx;
|
||||
this.filesList = filesListMain;
|
||||
filesListFull = new ArrayList<>(filesList);
|
||||
this.filesListener = filesListener;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public FilesAdapter.FilesViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.files_list, parent, false);
|
||||
return new FilesAdapter.FilesViewHolder(v);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull FilesAdapter.FilesViewHolder holder, int position) {
|
||||
|
||||
Files currentItem = filesList.get(position);
|
||||
|
||||
holder.fileType.setText(currentItem.getType());
|
||||
holder.fileName.setText(currentItem.getName());
|
||||
|
||||
if(currentItem.getType().equals("file")) {
|
||||
holder.fileTypeImage.setImageDrawable(mCtx.getResources().getDrawable(R.drawable.ic_file_new));
|
||||
}
|
||||
else if(currentItem.getType().equals("dir")) {
|
||||
holder.fileTypeImage.setImageDrawable(mCtx.getResources().getDrawable(R.drawable.ic_folder_24));
|
||||
}
|
||||
else {
|
||||
holder.fileTypeImage.setImageDrawable(mCtx.getResources().getDrawable(R.drawable.ic_question_mark_24));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return filesList.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Filter getFilter() {
|
||||
return filesFilter;
|
||||
}
|
||||
|
||||
private Filter filesFilter = new Filter() {
|
||||
@Override
|
||||
protected FilterResults performFiltering(CharSequence constraint) {
|
||||
List<Files> filteredList = new ArrayList<>();
|
||||
|
||||
if (constraint == null || constraint.length() == 0) {
|
||||
filteredList.addAll(filesListFull);
|
||||
} else {
|
||||
String filterPattern = constraint.toString().toLowerCase().trim();
|
||||
|
||||
for (Files item : filesListFull) {
|
||||
if (item.getName().toLowerCase().contains(filterPattern) || item.getPath().toLowerCase().contains(filterPattern)) {
|
||||
filteredList.add(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
FilterResults results = new FilterResults();
|
||||
results.values = filteredList;
|
||||
|
||||
return results;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void publishResults(CharSequence constraint, FilterResults results) {
|
||||
filesList.clear();
|
||||
filesList.addAll((List) results.values);
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
};
|
||||
|
||||
}
|
@ -179,9 +179,14 @@ public class MyReposListAdapter extends RecyclerView.Adapter<MyReposListAdapter.
|
||||
.endConfig()
|
||||
.buildRoundRect(firstCharacter, color, 3);
|
||||
|
||||
if (!currentItem.getAvatar_url().equals("")) {
|
||||
Picasso.get().load(currentItem.getAvatar_url()).transform(new RoundedTransformation(8, 0)).resize(120, 120).centerCrop().into(holder.imageMy);
|
||||
} else {
|
||||
if (currentItem.getAvatar_url() != null) {
|
||||
if (!currentItem.getAvatar_url().equals("")) {
|
||||
Picasso.get().load(currentItem.getAvatar_url()).transform(new RoundedTransformation(8, 0)).resize(120, 120).centerCrop().into(holder.imageMy);
|
||||
} else {
|
||||
holder.imageMy.setImageDrawable(drawable);
|
||||
}
|
||||
}
|
||||
else {
|
||||
holder.imageMy.setImageDrawable(drawable);
|
||||
}
|
||||
|
||||
|
@ -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());
|
||||
|
@ -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());
|
||||
|
@ -180,9 +180,14 @@ public class RepositoriesByOrgAdapter extends RecyclerView.Adapter<RepositoriesB
|
||||
.endConfig()
|
||||
.buildRoundRect(firstCharacter, color, 3);
|
||||
|
||||
if (!currentItem.getAvatar_url().equals("")) {
|
||||
Picasso.get().load(currentItem.getAvatar_url()).transform(new RoundedTransformation(8, 0)).resize(120, 120).centerCrop().into(holder.image);
|
||||
} else {
|
||||
if (currentItem.getAvatar_url() != null) {
|
||||
if (!currentItem.getAvatar_url().equals("")) {
|
||||
Picasso.get().load(currentItem.getAvatar_url()).transform(new RoundedTransformation(8, 0)).resize(120, 120).centerCrop().into(holder.image);
|
||||
} else {
|
||||
holder.image.setImageDrawable(drawable);
|
||||
}
|
||||
}
|
||||
else {
|
||||
holder.image.setImageDrawable(drawable);
|
||||
}
|
||||
|
||||
|
@ -180,9 +180,14 @@ public class StarredReposListAdapter extends RecyclerView.Adapter<StarredReposLi
|
||||
.endConfig()
|
||||
.buildRoundRect(firstCharacter, color, 3);
|
||||
|
||||
if (!currentItem.getAvatar_url().equals("")) {
|
||||
Picasso.get().load(currentItem.getAvatar_url()).transform(new RoundedTransformation(8, 0)).resize(120, 120).centerCrop().into(holder.image);
|
||||
} else {
|
||||
if (currentItem.getAvatar_url() != null) {
|
||||
if (!currentItem.getAvatar_url().equals("")) {
|
||||
Picasso.get().load(currentItem.getAvatar_url()).transform(new RoundedTransformation(8, 0)).resize(120, 120).centerCrop().into(holder.image);
|
||||
} else {
|
||||
holder.image.setImageDrawable(drawable);
|
||||
}
|
||||
}
|
||||
else {
|
||||
holder.image.setImageDrawable(drawable);
|
||||
}
|
||||
|
||||
|
@ -49,6 +49,7 @@ public class AboutFragment extends Fragment {
|
||||
final TextView appVerBuild;
|
||||
final TextView donationLink;
|
||||
final TextView donationLinkPatreon;
|
||||
final TextView translateLink;
|
||||
final TextView creditsButton;
|
||||
final TextView sponsorsButton;
|
||||
final TextView appWebsite;
|
||||
@ -64,6 +65,7 @@ public class AboutFragment extends Fragment {
|
||||
creditsButton = v.findViewById(R.id.creditsButton);
|
||||
donationLink = v.findViewById(R.id.donationLink);
|
||||
donationLinkPatreon = v.findViewById(R.id.donationLinkPatreon);
|
||||
translateLink = v.findViewById(R.id.translateLink);
|
||||
sponsorsButton = v.findViewById(R.id.sponsorsButton);
|
||||
appWebsite = v.findViewById(R.id.appWebsite);
|
||||
appRepo = v.findViewById(R.id.appRepo);
|
||||
@ -90,6 +92,16 @@ public class AboutFragment extends Fragment {
|
||||
}
|
||||
});
|
||||
|
||||
translateLink.setOnClickListener(new View.OnClickListener() {
|
||||
public void onClick(View v) {
|
||||
Intent intent = new Intent();
|
||||
intent.setAction(Intent.ACTION_VIEW);
|
||||
intent.addCategory(Intent.CATEGORY_BROWSABLE);
|
||||
intent.setData(Uri.parse(getResources().getString(R.string.crowdInLink)));
|
||||
startActivity(intent);
|
||||
}
|
||||
});
|
||||
|
||||
appWebsite.setOnClickListener(new View.OnClickListener() {
|
||||
public void onClick(View v) {
|
||||
Intent intent = new Intent();
|
||||
|
@ -0,0 +1,194 @@
|
||||
package org.mian.gitnex.fragments;
|
||||
|
||||
import android.content.Context;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.inputmethod.EditorInfo;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.recyclerview.widget.DividerItemDecoration;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import org.mian.gitnex.R;
|
||||
import org.mian.gitnex.activities.MainActivity;
|
||||
import org.mian.gitnex.adapters.ExploreRepositoriesAdapter;
|
||||
import org.mian.gitnex.clients.RetrofitClient;
|
||||
import org.mian.gitnex.helpers.Authorization;
|
||||
import org.mian.gitnex.models.ExploreRepositories;
|
||||
import org.mian.gitnex.models.UserRepositories;
|
||||
import org.mian.gitnex.util.AppUtil;
|
||||
import org.mian.gitnex.util.TinyDB;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import retrofit2.Call;
|
||||
import retrofit2.Callback;
|
||||
import retrofit2.Response;
|
||||
|
||||
/**
|
||||
+ * Template Author M M Arif
|
||||
+ * Author 6543
|
||||
+ */
|
||||
|
||||
public class ExploreRepositoriesFragment extends Fragment {
|
||||
|
||||
private static String repoNameF = "param2";
|
||||
private static String repoOwnerF = "param1";
|
||||
private ProgressBar mProgressBar;
|
||||
private RecyclerView mRecyclerView;
|
||||
private TextView noData;
|
||||
private TextView searchKeyword;
|
||||
private Boolean repoTypeInclude = true;
|
||||
private String sort = "updated";
|
||||
private String order = "asc";
|
||||
|
||||
private ExploreRepositoriesAdapter adapter;
|
||||
|
||||
private OnFragmentInteractionListener mListener;
|
||||
|
||||
public ExploreRepositoriesFragment() {
|
||||
}
|
||||
|
||||
public static ExploreRepositoriesFragment newInstance(String param1, String param2) {
|
||||
ExploreRepositoriesFragment fragment = new ExploreRepositoriesFragment();
|
||||
Bundle args = new Bundle();
|
||||
args.putString(repoOwnerF, param1);
|
||||
args.putString(repoNameF, param2);
|
||||
fragment.setArguments(args);
|
||||
return fragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
if (getArguments() != null) {
|
||||
String repoName = getArguments().getString(repoNameF);
|
||||
String repoOwner = getArguments().getString(repoOwnerF);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
|
||||
boolean connToInternet = AppUtil.haveNetworkConnection(Objects.requireNonNull(getContext()));
|
||||
|
||||
final View v = inflater.inflate(R.layout.fragment_explore_repo, container, false);
|
||||
//setHasOptionsMenu(true);
|
||||
((MainActivity) Objects.requireNonNull(getActivity())).setActionBarTitle(getResources().getString(R.string.pageTitleExplore));
|
||||
|
||||
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");
|
||||
|
||||
searchKeyword = v.findViewById(R.id.searchKeyword);
|
||||
noData = v.findViewById(R.id.noData);
|
||||
mProgressBar = v.findViewById(R.id.progress_bar);
|
||||
mRecyclerView = v.findViewById(R.id.recyclerViewReposSearch);
|
||||
|
||||
if(connToInternet) {
|
||||
|
||||
searchKeyword.setOnEditorActionListener(new TextView.OnEditorActionListener() {
|
||||
@Override
|
||||
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
|
||||
if (actionId == EditorInfo.IME_ACTION_SEND) {
|
||||
if(!searchKeyword.getText().toString().equals("")) {
|
||||
mProgressBar.setVisibility(View.VISIBLE);
|
||||
mRecyclerView.setVisibility(View.GONE);
|
||||
loadSearchReposList(instanceUrl, instanceToken, loginUid, searchKeyword.getText().toString(), repoTypeInclude, sort, order, getContext());
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
else {
|
||||
mProgressBar.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
return v;
|
||||
|
||||
}
|
||||
|
||||
private void loadSearchReposList(String instanceUrl, String instanceToken, String loginUid, String searchKeyword, Boolean repoTypeInclude, String sort, String order, final Context context) {
|
||||
|
||||
Call<ExploreRepositories> call = RetrofitClient
|
||||
.getInstance(instanceUrl)
|
||||
.getApiInterface()
|
||||
.queryRepos(Authorization.returnAuthentication(getContext(), loginUid, instanceToken), searchKeyword, repoTypeInclude, sort, order);
|
||||
|
||||
call.enqueue(new Callback<ExploreRepositories>() {
|
||||
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<ExploreRepositories> call, @NonNull Response<ExploreRepositories> response) {
|
||||
|
||||
if (response.isSuccessful()) {
|
||||
assert response.body() != null;
|
||||
getReposList(response.body().getSearchedData(), context);
|
||||
} else {
|
||||
Log.i("onResponse", String.valueOf(response.code()));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(@NonNull Call<ExploreRepositories> call, @NonNull Throwable t) {
|
||||
Log.i("onFailure", t.getMessage());
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
private void getReposList(List<UserRepositories> dataList, Context context) {
|
||||
|
||||
adapter = new ExploreRepositoriesAdapter(dataList, context);
|
||||
|
||||
mRecyclerView.setVisibility(View.VISIBLE);
|
||||
|
||||
mRecyclerView.setHasFixedSize(true);
|
||||
mRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
|
||||
DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(mRecyclerView.getContext(),
|
||||
DividerItemDecoration.VERTICAL);
|
||||
mRecyclerView.addItemDecoration(dividerItemDecoration);
|
||||
|
||||
if(adapter.getItemCount() > 0) {
|
||||
|
||||
mRecyclerView.setAdapter(adapter);
|
||||
noData.setVisibility(View.GONE);
|
||||
mProgressBar.setVisibility(View.GONE);
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
noData.setVisibility(View.VISIBLE);
|
||||
mProgressBar.setVisibility(View.GONE);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void onButtonPressed(Uri uri) {
|
||||
if (mListener != null) {
|
||||
mListener.onFragmentInteraction(uri);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDetach() {
|
||||
super.onDetach();
|
||||
mListener = null;
|
||||
}
|
||||
|
||||
public interface OnFragmentInteractionListener {
|
||||
void onFragmentInteraction(Uri uri);
|
||||
}
|
||||
}
|
301
app/src/main/java/org/mian/gitnex/fragments/FilesFragment.java
Normal file
@ -0,0 +1,301 @@
|
||||
package org.mian.gitnex.fragments;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.lifecycle.Observer;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
import androidx.recyclerview.widget.DividerItemDecoration;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.inputmethod.EditorInfo;
|
||||
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 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 BreadcrumbsView mBreadcrumbsView;
|
||||
|
||||
private String repoName;
|
||||
private String repoOwner;
|
||||
|
||||
private OnFragmentInteractionListener mListener;
|
||||
|
||||
public FilesFragment() {
|
||||
}
|
||||
|
||||
public static FilesFragment newInstance(String param1, String param2) {
|
||||
FilesFragment fragment = new FilesFragment();
|
||||
Bundle args = new Bundle();
|
||||
args.putString(repoOwnerF, param1);
|
||||
args.putString(repoNameF, param2);
|
||||
fragment.setArguments(args);
|
||||
return fragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
if (getArguments() != null) {
|
||||
repoName = getArguments().getString(repoNameF);
|
||||
repoOwner = getArguments().getString(repoOwnerF);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
|
||||
View v = inflater.inflate(R.layout.fragment_files, container, false);
|
||||
setHasOptionsMenu(true);
|
||||
|
||||
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");
|
||||
|
||||
noDataFiles = v.findViewById(R.id.noDataFiles);
|
||||
filesFrame = v.findViewById(R.id.filesFrame);
|
||||
|
||||
fileStructure = v.findViewById(R.id.fileStructure);
|
||||
mRecyclerView = v.findViewById(R.id.recyclerView);
|
||||
mRecyclerView.setHasFixedSize(true);
|
||||
mRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
|
||||
|
||||
DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(mRecyclerView.getContext(),
|
||||
DividerItemDecoration.VERTICAL);
|
||||
mRecyclerView.addItemDecoration(dividerItemDecoration);
|
||||
|
||||
mProgressBar = v.findViewById(R.id.progress_bar);
|
||||
|
||||
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, getContext()).observe(this, new Observer<List<Files>>() {
|
||||
@Override
|
||||
public void onChanged(@Nullable List<Files> 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);
|
||||
noDataFiles.setVisibility(View.VISIBLE);
|
||||
}
|
||||
filesFrame.setVisibility(View.VISIBLE);
|
||||
mProgressBar.setVisibility(View.GONE);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
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, getContext()).observe(this, new Observer<List<Files>>() {
|
||||
@Override
|
||||
public void onChanged(@Nullable List<Files> 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);
|
||||
noDataFiles.setVisibility(View.VISIBLE);
|
||||
}
|
||||
filesFrame.setVisibility(View.VISIBLE);
|
||||
mProgressBar.setVisibility(View.GONE);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
|
||||
|
||||
boolean connToInternet = AppUtil.haveNetworkConnection(Objects.requireNonNull(getContext()));
|
||||
|
||||
inflater.inflate(R.menu.search_menu, menu);
|
||||
super.onCreateOptionsMenu(menu, inflater);
|
||||
|
||||
MenuItem searchItem = menu.findItem(R.id.action_search);
|
||||
androidx.appcompat.widget.SearchView searchView = (androidx.appcompat.widget.SearchView) searchItem.getActionView();
|
||||
searchView.setImeOptions(EditorInfo.IME_ACTION_DONE);
|
||||
searchView.setQueryHint(getContext().getString(R.string.strFilter));
|
||||
|
||||
if(!connToInternet) {
|
||||
return;
|
||||
}
|
||||
|
||||
searchView.setOnQueryTextListener(new androidx.appcompat.widget.SearchView.OnQueryTextListener() {
|
||||
@Override
|
||||
public boolean onQueryTextSubmit(String query) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onQueryTextChange(String newText) {
|
||||
if(mRecyclerView.getAdapter() != null) {
|
||||
adapter.getFilter().filter(newText);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
public void onButtonPressed(Uri uri) {
|
||||
if (mListener != null) {
|
||||
mListener.onFragmentInteraction(uri);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDetach() {
|
||||
super.onDetach();
|
||||
mListener = null;
|
||||
}
|
||||
|
||||
public interface OnFragmentInteractionListener {
|
||||
void onFragmentInteraction(Uri uri);
|
||||
}
|
||||
}
|
@ -8,6 +8,7 @@ import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
|
||||
import org.mian.gitnex.R;
|
||||
import org.mian.gitnex.actions.RepositoryActions;
|
||||
import org.mian.gitnex.util.TinyDB;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
@ -34,6 +35,10 @@ public class RepoBottomSheetFragment extends BottomSheetDialogFragment {
|
||||
TextView createRelease = v.findViewById(R.id.createRelease);
|
||||
TextView openWebRepo = v.findViewById(R.id.openWebRepo);
|
||||
TextView newFile = v.findViewById(R.id.newFile);
|
||||
TextView starRepository = v.findViewById(R.id.starRepository);
|
||||
TextView unStarRepository = v.findViewById(R.id.unStarRepository);
|
||||
TextView watchRepository = v.findViewById(R.id.watchRepository);
|
||||
TextView unWatchRepository = v.findViewById(R.id.unWatchRepository);
|
||||
|
||||
createLabel.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
@ -97,6 +102,72 @@ public class RepoBottomSheetFragment extends BottomSheetDialogFragment {
|
||||
}
|
||||
});
|
||||
|
||||
if(tinyDb.getInt("repositoryStarStatus") == 204) { // star a repo
|
||||
|
||||
starRepository.setVisibility(View.GONE);
|
||||
|
||||
unStarRepository.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
||||
RepositoryActions.unStarRepository(getContext());
|
||||
tinyDb.putInt("repositoryStarStatus", 404);
|
||||
dismiss();
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
else if(tinyDb.getInt("repositoryStarStatus") == 404) {
|
||||
|
||||
unStarRepository.setVisibility(View.GONE);
|
||||
|
||||
starRepository.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
||||
RepositoryActions.starRepository(getContext());
|
||||
tinyDb.putInt("repositoryStarStatus", 204);
|
||||
dismiss();
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
if(tinyDb.getBoolean("repositoryWatchStatus")) { // watch a repo
|
||||
|
||||
watchRepository.setVisibility(View.GONE);
|
||||
|
||||
unWatchRepository.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
||||
RepositoryActions.unWatchRepository(getContext());
|
||||
tinyDb.putBoolean("repositoryWatchStatus", false);
|
||||
dismiss();
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
unWatchRepository.setVisibility(View.GONE);
|
||||
|
||||
watchRepository.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
||||
RepositoryActions.watchRepository(getContext());
|
||||
tinyDb.putBoolean("repositoryWatchStatus", true);
|
||||
dismiss();
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
return v;
|
||||
}
|
||||
|
||||
|
@ -247,7 +247,12 @@ public class RepoInfoFragment extends Fragment {
|
||||
repoRepoUrlInfo.setText(repoInfo.getHtml_url());
|
||||
repoForksCountInfo.setText(repoInfo.getForks_count());
|
||||
|
||||
tinyDb.putBoolean("hasIssues", repoInfo.getHas_issues());
|
||||
if(repoInfo.getHas_issues() != null) {
|
||||
tinyDb.putBoolean("hasIssues", repoInfo.getHas_issues());
|
||||
}
|
||||
else {
|
||||
tinyDb.putBoolean("hasIssues", true);
|
||||
}
|
||||
|
||||
switch (timeFormat) {
|
||||
case "pretty": {
|
||||
|
@ -30,7 +30,7 @@ public class SettingsFragment extends Fragment {
|
||||
|
||||
private Context ctx = null;
|
||||
|
||||
private static String[] langList = {"English", "French", "German", "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"};
|
||||
@ -68,7 +68,7 @@ public class SettingsFragment extends Fragment {
|
||||
Intent intent = new Intent();
|
||||
intent.setAction(Intent.ACTION_VIEW);
|
||||
intent.addCategory(Intent.CATEGORY_BROWSABLE);
|
||||
intent.setData(Uri.parse(getResources().getString(R.string.appRepoContributingLink)));
|
||||
intent.setData(Uri.parse(getResources().getString(R.string.crowdInLink)));
|
||||
startActivity(intent);
|
||||
}
|
||||
});
|
||||
@ -244,15 +244,33 @@ public class SettingsFragment extends Fragment {
|
||||
tinyDb.putInt("langId", i);
|
||||
|
||||
switch (langList[i]) {
|
||||
case "Arabic":
|
||||
tinyDb.putString("locale", "ar");
|
||||
break;
|
||||
case "Chinese":
|
||||
tinyDb.putString("locale", "zh");
|
||||
break;
|
||||
case "Finnish":
|
||||
tinyDb.putString("locale", "fi");
|
||||
break;
|
||||
case "French":
|
||||
tinyDb.putString("locale", "fr");
|
||||
break;
|
||||
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;
|
||||
|
@ -19,6 +19,7 @@ import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import android.content.ClipboardManager;
|
||||
import android.content.ClipData;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* Author M M Arif
|
||||
@ -97,7 +98,7 @@ public class SingleIssueBottomSheetFragment extends BottomSheetDialogFragment {
|
||||
String issueUrl = instanceUrlWithProtocol + "/" + repoFullName + "/issues/" + tinyDB.getString("issueNumber");
|
||||
|
||||
// copy to clipboard
|
||||
ClipboardManager clipboard = (ClipboardManager) getContext().getSystemService(android.content.Context.CLIPBOARD_SERVICE);
|
||||
ClipboardManager clipboard = (ClipboardManager) Objects.requireNonNull(getContext()).getSystemService(android.content.Context.CLIPBOARD_SERVICE);
|
||||
ClipData clip = ClipData.newPlainText("issueUrl", issueUrl);
|
||||
clipboard.setPrimaryClip(clip);
|
||||
|
||||
|
@ -3,6 +3,8 @@ package org.mian.gitnex.interfaces;
|
||||
import com.google.gson.JsonElement;
|
||||
import org.mian.gitnex.models.AddEmail;
|
||||
import org.mian.gitnex.models.Branches;
|
||||
import org.mian.gitnex.models.ExploreRepositories;
|
||||
import org.mian.gitnex.models.Files;
|
||||
import org.mian.gitnex.models.NewFile;
|
||||
import org.mian.gitnex.models.UpdateIssueAssignee;
|
||||
import org.mian.gitnex.models.UpdateIssueState;
|
||||
@ -26,6 +28,7 @@ import org.mian.gitnex.models.UserOrganizations;
|
||||
import org.mian.gitnex.models.UserRepositories;
|
||||
import org.mian.gitnex.models.UserSearch;
|
||||
import org.mian.gitnex.models.UserTokens;
|
||||
import org.mian.gitnex.models.WatchRepository;
|
||||
import java.util.List;
|
||||
import retrofit2.Call;
|
||||
import retrofit2.http.Body;
|
||||
@ -212,6 +215,36 @@ public interface ApiInterface {
|
||||
@GET("repos/{owner}/{repo}/subscribers") // get all repo watchers
|
||||
Call<List<UserInfo>> getRepoWatchers(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName);
|
||||
|
||||
@GET("repos/search") // get all the repos which match the query string
|
||||
Call<ExploreRepositories> queryRepos(@Header("Authorization") String token, @Query("q") String searchKeyword, @Query("private") Boolean repoTypeInclude, @Query("sort") String sort, @Query("order") String order);
|
||||
|
||||
@POST("repos/{owner}/{repo}/contents/{file}") // create new file
|
||||
Call<JsonElement> createNewFile(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Path("file") String fileName, @Body NewFile jsonStr);
|
||||
}
|
||||
|
||||
@GET("repos/{owner}/{repo}/contents") // get all the files and dirs of a repository
|
||||
Call<List<Files>> getFiles(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName);
|
||||
|
||||
@GET("repos/{owner}/{repo}/contents/{file}") // get single file contents
|
||||
Call<Files> getSingleFileContents(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Path("file") String file);
|
||||
|
||||
@GET("repos/{owner}/{repo}/contents/{fileDir}") // get all the sub files and dirs of a repository
|
||||
Call<List<Files>> getDirFiles(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName, @Path("fileDir") String fileDir);
|
||||
|
||||
@GET("user/starred/{owner}/{repo}") // check star status of a repository
|
||||
Call<JsonElement> checkRepoStarStatus(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName);
|
||||
|
||||
@PUT("user/starred/{owner}/{repo}") // star a repository
|
||||
Call<JsonElement> starRepository(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName);
|
||||
|
||||
@DELETE("user/starred/{owner}/{repo}") // un star a repository
|
||||
Call<JsonElement> unStarRepository(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName);
|
||||
|
||||
@GET("repos/{owner}/{repo}/subscription") // check watch status of a repository
|
||||
Call<WatchRepository> checkRepoWatchStatus(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName);
|
||||
|
||||
@PUT("repos/{owner}/{repo}/subscription") // watch a repository
|
||||
Call<JsonElement> watchRepository(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName);
|
||||
|
||||
@DELETE("repos/{owner}/{repo}/subscription") // un watch a repository
|
||||
Call<JsonElement> unWatchRepository(@Header("Authorization") String token, @Path("owner") String ownerName, @Path("repo") String repoName);
|
||||
}
|
||||
|
@ -0,0 +1,22 @@
|
||||
package org.mian.gitnex.models;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* Author M M Arif
|
||||
*/
|
||||
|
||||
public class ExploreRepositories {
|
||||
|
||||
private ArrayList<UserRepositories> data;
|
||||
private Boolean ok;
|
||||
|
||||
public ArrayList<UserRepositories> getSearchedData() {
|
||||
return data;
|
||||
}
|
||||
|
||||
public Boolean getOk() {
|
||||
return ok;
|
||||
}
|
||||
|
||||
}
|
74
app/src/main/java/org/mian/gitnex/models/Files.java
Normal file
@ -0,0 +1,74 @@
|
||||
package org.mian.gitnex.models;
|
||||
|
||||
/**
|
||||
* Author M M Arif
|
||||
*/
|
||||
|
||||
public class Files {
|
||||
|
||||
private String name;
|
||||
private String path;
|
||||
private String sha;
|
||||
private String type;
|
||||
private int size;
|
||||
private String encoding;
|
||||
private String content;
|
||||
private String target;
|
||||
private String url;
|
||||
private String html_url;
|
||||
private String git_url;
|
||||
private String download_url;
|
||||
private String submodule_git_url;
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public String getPath() {
|
||||
return path;
|
||||
}
|
||||
|
||||
public String getSha() {
|
||||
return sha;
|
||||
}
|
||||
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public int getSize() {
|
||||
return size;
|
||||
}
|
||||
|
||||
public String getEncoding() {
|
||||
return encoding;
|
||||
}
|
||||
|
||||
public String getContent() {
|
||||
return content;
|
||||
}
|
||||
|
||||
public String getTarget() {
|
||||
return target;
|
||||
}
|
||||
|
||||
public String getUrl() {
|
||||
return url;
|
||||
}
|
||||
|
||||
public String getHtml_url() {
|
||||
return html_url;
|
||||
}
|
||||
|
||||
public String getGit_url() {
|
||||
return git_url;
|
||||
}
|
||||
|
||||
public String getDownload_url() {
|
||||
return download_url;
|
||||
}
|
||||
|
||||
public String getSubmodule_git_url() {
|
||||
return submodule_git_url;
|
||||
}
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
package org.mian.gitnex.models;
|
||||
|
||||
/**
|
||||
* Author M M Arif
|
||||
*/
|
||||
|
||||
public class WatchRepository {
|
||||
|
||||
private Boolean subscribed;
|
||||
private Boolean ignored;
|
||||
private String reason;
|
||||
private String created_at;
|
||||
private String url;
|
||||
private String repository_url;
|
||||
|
||||
public Boolean getSubscribed() {
|
||||
return subscribed;
|
||||
}
|
||||
|
||||
public Boolean getIgnored() {
|
||||
return ignored;
|
||||
}
|
||||
|
||||
public String getReason() {
|
||||
return reason;
|
||||
}
|
||||
|
||||
public String getCreated_at() {
|
||||
return created_at;
|
||||
}
|
||||
|
||||
public String getUrl() {
|
||||
return url;
|
||||
}
|
||||
|
||||
public String getRepository_url() {
|
||||
return repository_url;
|
||||
}
|
||||
}
|
117
app/src/main/java/org/mian/gitnex/viewmodels/FilesViewModel.java
Normal file
@ -0,0 +1,117 @@
|
||||
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;
|
||||
import java.util.List;
|
||||
import retrofit2.Call;
|
||||
import retrofit2.Callback;
|
||||
import retrofit2.Response;
|
||||
|
||||
/**
|
||||
* Author M M Arif
|
||||
*/
|
||||
|
||||
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, Context ctx) {
|
||||
|
||||
filesList = new MutableLiveData<>();
|
||||
loadFilesList(instanceUrl, token, owner, repo, ctx);
|
||||
|
||||
return filesList;
|
||||
}
|
||||
|
||||
private static void loadFilesList(String instanceUrl, String token, String owner, String repo, final Context ctx) {
|
||||
|
||||
Call<List<Files>> call = RetrofitClient
|
||||
.getInstance(instanceUrl)
|
||||
.getApiInterface()
|
||||
.getFiles(token, owner, repo);
|
||||
|
||||
call.enqueue(new Callback<List<Files>>() {
|
||||
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<List<Files>> call, @NonNull Response<List<Files>> response) {
|
||||
|
||||
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()));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(@NonNull Call<List<Files>> call, Throwable t) {
|
||||
Log.i("onFailure", t.toString());
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
public LiveData<List<Files>> getFilesList2(String instanceUrl, String token, String owner, String repo, String filesDir, Context ctx) {
|
||||
|
||||
filesList2 = new MutableLiveData<>();
|
||||
loadFilesList2(instanceUrl, token, owner, repo, filesDir, ctx);
|
||||
|
||||
return filesList2;
|
||||
}
|
||||
|
||||
private static void loadFilesList2(String instanceUrl, String token, String owner, String repo, String filesDir, final Context ctx) {
|
||||
|
||||
Call<List<Files>> call = RetrofitClient
|
||||
.getInstance(instanceUrl)
|
||||
.getApiInterface()
|
||||
.getDirFiles(token, owner, repo, filesDir);
|
||||
|
||||
call.enqueue(new Callback<List<Files>>() {
|
||||
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<List<Files>> call, @NonNull Response<List<Files>> response) {
|
||||
|
||||
if (response.isSuccessful()) {
|
||||
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()));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(@NonNull Call<List<Files>> call, Throwable t) {
|
||||
Log.i("onFailure", t.toString());
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
}
|
11
app/src/main/res/drawable/ic_file_new.xml
Normal file
@ -0,0 +1,11 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:width="512dp"
|
||||
android:height="512dp"
|
||||
android:viewportWidth="16"
|
||||
android:viewportHeight="16"
|
||||
tools:ignore="VectorRaster">
|
||||
<path
|
||||
android:fillColor="#FFFFFF"
|
||||
android:pathData="m13.707,3.293 l-3,-3c-0.1875,-0.1875 -0.4419,-0.293 -0.707,-0.293h-7c-0.5522,0 -1,0.4478 -1,1v14c0,0.5527 0.4478,1 1,1h10c0.5522,0 1,-0.4473 1,-1v-11c0,-0.2651 -0.1055,-0.5195 -0.293,-0.707zM8,12h-3v-2h3zM11,9h-6v-2h6zM11,4c-0.5523,0 -1,-0.4478 -1,-1v-2l3,3z"/>
|
||||
</vector>
|
5
app/src/main/res/drawable/ic_folder_24.xml
Normal file
@ -0,0 +1,5 @@
|
||||
<vector android:height="24dp" android:tint="#FFFFFF"
|
||||
android:viewportHeight="24.0" android:viewportWidth="24.0"
|
||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="#FF000000" android:pathData="M10,4H4c-1.1,0 -1.99,0.9 -1.99,2L2,18c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2V8c0,-1.1 -0.9,-2 -2,-2h-8l-2,-2z"/>
|
||||
</vector>
|
5
app/src/main/res/drawable/ic_question_mark_24.xml
Normal file
@ -0,0 +1,5 @@
|
||||
<vector android:height="24dp" android:tint="#FFFFFF"
|
||||
android:viewportHeight="24.0" android:viewportWidth="24.0"
|
||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="#FF000000" android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM13,19h-2v-2h2v2zM15.07,11.25l-0.9,0.92C13.45,12.9 13,13.5 13,15h-2v-0.5c0,-1.1 0.45,-2.1 1.17,-2.83l1.24,-1.26c0.37,-0.36 0.59,-0.86 0.59,-1.41 0,-1.1 -0.9,-2 -2,-2s-2,0.9 -2,2L8,9c0,-2.21 1.79,-4 4,-4s4,1.79 4,4c0,0.88 -0.36,1.68 -0.93,2.25z"/>
|
||||
</vector>
|
5
app/src/main/res/drawable/ic_star_border_24dp.xml
Normal file
@ -0,0 +1,5 @@
|
||||
<vector android:height="24dp" android:tint="#FFFFFF"
|
||||
android:viewportHeight="24.0" android:viewportWidth="24.0"
|
||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="#FF000000" android:pathData="M22,9.24l-7.19,-0.62L12,2 9.19,8.63 2,9.24l5.46,4.73L5.82,21 12,17.27 18.18,21l-1.63,-7.03L22,9.24zM12,15.4l-3.76,2.27 1,-4.28 -3.32,-2.88 4.38,-0.38L12,6.1l1.71,4.04 4.38,0.38 -3.32,2.88 1,4.28L12,15.4z"/>
|
||||
</vector>
|
6
app/src/main/res/drawable/ic_unwatch.xml
Normal file
@ -0,0 +1,6 @@
|
||||
<vector android:autoMirrored="true" android:height="24dp"
|
||||
android:viewportHeight="511.999" android:viewportWidth="511.999"
|
||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="#FFFFFFFF" android:pathData="M508.745,246.041c-4.574,-6.257 -113.557,-153.206 -252.748,-153.206S7.818,239.784 3.249,246.035c-4.332,5.936 -4.332,13.987 0,19.923c4.569,6.257 113.557,153.206 252.748,153.206s248.174,-146.95 252.748,-153.201C513.083,260.028 513.083,251.971 508.745,246.041zM255.997,385.406c-102.529,0 -191.33,-97.533 -217.617,-129.418c26.253,-31.913 114.868,-129.395 217.617,-129.395c102.524,0 191.319,97.516 217.617,129.418C447.361,287.923 358.746,385.406 255.997,385.406z"/>
|
||||
<path android:fillColor="#FFFFFFFF" android:pathData="M255.997,154.725c-55.842,0 -101.275,45.433 -101.275,101.275s45.433,101.275 101.275,101.275s101.275,-45.433 101.275,-101.275S311.839,154.725 255.997,154.725zM255.997,323.516c-37.23,0 -67.516,-30.287 -67.516,-67.516s30.287,-67.516 67.516,-67.516s67.516,30.287 67.516,67.516S293.227,323.516 255.997,323.516z"/>
|
||||
</vector>
|
81
app/src/main/res/layout/activity_file_view.xml
Normal file
@ -0,0 +1,81 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:orientation="vertical"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:background="@color/colorPrimary">
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<androidx.appcompat.widget.Toolbar
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/colorPrimary"
|
||||
tools:ignore="UnusedAttribute">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/close"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="30dp"
|
||||
android:layout_marginRight="15dp"
|
||||
android:layout_marginLeft="15dp"
|
||||
android:gravity="center_vertical"
|
||||
android:contentDescription="@string/close"
|
||||
android:src="@drawable/ic_close" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/toolbar_title"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/defaultFilename"
|
||||
android:textColor="@color/white"
|
||||
android:ellipsize="none"
|
||||
android:scrollbars="horizontal"
|
||||
android:singleLine="true"
|
||||
android:layout_marginEnd="20dp"
|
||||
android:textSize="18sp" />
|
||||
|
||||
</androidx.appcompat.widget.Toolbar>
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_marginTop="50dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/toastBackground">
|
||||
|
||||
<ScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
tools:ignore="UselessParent">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/singleFileContents"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@color/colorWhite"
|
||||
android:textSize="14sp"
|
||||
android:padding="15dp"
|
||||
/>
|
||||
|
||||
</ScrollView>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/progress_bar"
|
||||
style="@style/Base.Widget.AppCompat.ProgressBar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerInParent="true"
|
||||
android:indeterminate="true"
|
||||
android:visibility="visible" />
|
||||
|
||||
</RelativeLayout>
|
@ -22,7 +22,7 @@
|
||||
android:layout_marginBottom="20dp"
|
||||
android:baselineAligned="false"
|
||||
android:contentDescription="@string/app_name"
|
||||
android:src="@mipmap/app_logo_round" />
|
||||
android:src="@mipmap/app_logo" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
@ -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" />
|
||||
|
||||
|
@ -39,6 +39,12 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/tab_text_info" />
|
||||
|
||||
<com.google.android.material.tabs.TabItem
|
||||
android:id="@+id/tabItemFiles"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/tab_text_files" />
|
||||
|
||||
<com.google.android.material.tabs.TabItem
|
||||
android:id="@+id/tabItem2_issues"
|
||||
android:layout_width="wrap_content"
|
||||
|
@ -2,22 +2,35 @@
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:paddingBottom="8dp"
|
||||
android:background="@color/backgroundColor"
|
||||
android:paddingTop="8dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/createNewUser"
|
||||
<androidx.core.widget.NestedScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/adminCreateNewUser"
|
||||
android:drawableStart="@drawable/ic_add_person"
|
||||
android:drawablePadding="24dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
android:padding="16dp" />
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/createNewUser"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/adminCreateNewUser"
|
||||
android:drawableStart="@drawable/ic_add_person"
|
||||
android:drawablePadding="24dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
android:padding="16dp" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
|
||||
</LinearLayout>
|
60
app/src/main/res/layout/files_list.xml
Normal file
@ -0,0 +1,60 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@+id/linearLayoutFilesFrame"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentTop="true"
|
||||
android:fitsSystemWindows="true"
|
||||
android:orientation="vertical"
|
||||
android:layout_margin="10dp"
|
||||
android:theme="@style/AppTheme"
|
||||
android:background="@color/backgroundColor"
|
||||
tools:context=".activities.MainActivity">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/fileType"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="invisible"/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/fileImage"
|
||||
android:layout_width="28dp"
|
||||
android:layout_height="28dp"
|
||||
android:layout_marginEnd="15dp"
|
||||
android:contentDescription="@string/repoContentAvatar"
|
||||
android:src="@drawable/ic_file" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/infoSection"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_toEndOf="@+id/fileImage"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/fileName"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight=".80"
|
||||
android:layout_marginBottom="0dp"
|
||||
android:text="@string/defaultFilename"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/filesDropdownMenu"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight=".10"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="end"
|
||||
android:scaleType="fitEnd"
|
||||
android:visibility="gone"
|
||||
android:src="@drawable/ic_dotted_menu_horizontal"
|
||||
android:contentDescription="@string/menuContentDesc" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</RelativeLayout>
|
@ -25,7 +25,7 @@
|
||||
android:layout_marginTop="20dp"
|
||||
android:baselineAligned="false"
|
||||
android:contentDescription="@string/logo"
|
||||
android:src="@mipmap/app_logo_round" />
|
||||
android:src="@mipmap/app_logo" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/appName"
|
||||
@ -105,8 +105,21 @@
|
||||
android:gravity="start"
|
||||
android:autoLink="web"
|
||||
android:visibility="visible"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:textColorLink="@color/lightBlue" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/translateLink"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:autoLink="web"
|
||||
android:gravity="start"
|
||||
android:text="@string/translateText"
|
||||
android:textColor="@color/lightBlue"
|
||||
android:textColorLink="@color/lightBlue"
|
||||
android:textSize="16sp"
|
||||
android:visibility="visible" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
|
57
app/src/main/res/layout/fragment_explore_repo.xml
Normal file
@ -0,0 +1,57 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/colorPrimary"
|
||||
android:orientation="vertical">
|
||||
|
||||
<EditText
|
||||
android:id="@+id/searchKeyword"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="10dp"
|
||||
android:textSize="14sp"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:layout_marginTop="20dp"
|
||||
android:layout_marginBottom="20dp"
|
||||
android:inputType="text"
|
||||
android:background="@drawable/shape_inputs"
|
||||
android:textColor="@color/white"
|
||||
android:textColorHint="@color/colorAccent"
|
||||
android:hint="@string/exploreTextBoxHint"
|
||||
android:textColorHighlight="@color/white"
|
||||
android:imeOptions="actionSend" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/noData"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_margin="15dp"
|
||||
android:gravity="center"
|
||||
android:text="@string/noDataFound"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="20sp"
|
||||
android:visibility="gone" />
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/progress_bar"
|
||||
style="@style/Base.Widget.AppCompat.ProgressBar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:indeterminate="true"
|
||||
android:visibility="gone" />
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/recyclerViewReposSearch"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/colorPrimary"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_marginBottom="0dp"
|
||||
android:scrollbars="vertical" />
|
||||
|
||||
</LinearLayout>
|
63
app/src/main/res/layout/fragment_files.xml
Normal file
@ -0,0 +1,63 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<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">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/filesFrame"
|
||||
android:visibility="gone"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
>
|
||||
|
||||
<TextView
|
||||
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"
|
||||
app:CustomTextSize="16sp"
|
||||
app:SelectedTextColor="@color/colorAccent"
|
||||
app:UnSelectedTextColor="@color/lightGray"
|
||||
android:text="@string/filesBreadcrumbRoot"/>
|
||||
|
||||
<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" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/noDataFiles"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_margin="15dp"
|
||||
android:gravity="center"
|
||||
android:text="@string/noDataFilesTab"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="20sp"
|
||||
android:visibility="gone" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/progress_bar"
|
||||
style="@style/Base.Widget.AppCompat.ProgressBar"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="center"
|
||||
android:indeterminate="true"
|
||||
android:visibility="gone" />
|
||||
|
||||
</LinearLayout>
|
@ -2,22 +2,35 @@
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:paddingBottom="8dp"
|
||||
android:background="@color/backgroundColor"
|
||||
android:paddingTop="8dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/adminUsers"
|
||||
<androidx.core.widget.NestedScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/adminUsers"
|
||||
android:drawableStart="@drawable/ic_users"
|
||||
android:drawablePadding="24dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
android:padding="16dp" />
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/adminUsers"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/adminUsers"
|
||||
android:drawableStart="@drawable/ic_users"
|
||||
android:drawablePadding="24dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
android:padding="16dp" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
|
||||
</LinearLayout>
|
@ -1,22 +1,36 @@
|
||||
<?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"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:paddingBottom="8dp"
|
||||
android:background="@color/backgroundColor"
|
||||
android:paddingTop="8dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/createTeam"
|
||||
<androidx.core.widget.NestedScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/orgCreateTeam"
|
||||
android:drawableStart="@drawable/ic_organizations"
|
||||
android:drawablePadding="24dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
android:padding="16dp" />
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/createTeam"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/orgCreateTeam"
|
||||
android:drawableStart="@drawable/ic_organizations"
|
||||
android:drawablePadding="24dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
android:padding="16dp" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
|
||||
</LinearLayout>
|
@ -1,22 +1,36 @@
|
||||
<?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"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:paddingBottom="8dp"
|
||||
android:background="@color/backgroundColor"
|
||||
android:paddingTop="8dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/addNewEmailAddress"
|
||||
<androidx.core.widget.NestedScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/profileCreateNewEmailAddress"
|
||||
android:drawableStart="@drawable/ic_email"
|
||||
android:drawablePadding="24dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
android:padding="16dp" />
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/addNewEmailAddress"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/profileCreateNewEmailAddress"
|
||||
android:drawableStart="@drawable/ic_email"
|
||||
android:drawablePadding="24dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
android:padding="16dp" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
|
||||
</LinearLayout>
|
@ -1,94 +1,160 @@
|
||||
<?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"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:paddingBottom="8dp"
|
||||
android:background="@color/backgroundColor"
|
||||
android:paddingTop="8dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/newFile"
|
||||
<androidx.core.widget.NestedScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/pageTitleNewFile"
|
||||
android:drawableStart="@drawable/ic_file"
|
||||
android:drawablePadding="24dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
android:padding="16dp" />
|
||||
android:layout_height="400dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/createNewIssue"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/pageTitleCreateNewIssue"
|
||||
android:drawableStart="@drawable/ic_issue_open_white"
|
||||
android:drawablePadding="24dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
android:padding="16dp" />
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/createNewMilestone"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/pageTitleCreateMilestone"
|
||||
android:drawableStart="@drawable/ic_milestone"
|
||||
android:drawablePadding="24dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
android:padding="16dp" />
|
||||
<TextView
|
||||
android:id="@+id/newFile"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/pageTitleNewFile"
|
||||
android:drawableStart="@drawable/ic_file"
|
||||
android:drawablePadding="24dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
android:padding="16dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/createLabel"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/createLabel"
|
||||
android:drawableStart="@drawable/ic_label"
|
||||
android:drawablePadding="24dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
android:padding="16dp" />
|
||||
<TextView
|
||||
android:id="@+id/createNewIssue"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/pageTitleCreateNewIssue"
|
||||
android:drawableStart="@drawable/ic_issue_open_white"
|
||||
android:drawablePadding="24dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
android:padding="16dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/createRelease"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/createRelease"
|
||||
android:drawableStart="@drawable/ic_new_releases"
|
||||
android:drawablePadding="24dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
android:padding="16dp" />
|
||||
<TextView
|
||||
android:id="@+id/createNewMilestone"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/pageTitleCreateMilestone"
|
||||
android:drawableStart="@drawable/ic_milestone"
|
||||
android:drawablePadding="24dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
android:padding="16dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/addCollaborator"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/addCollaboratorTitle"
|
||||
android:drawableStart="@drawable/ic_person_filled"
|
||||
android:drawablePadding="24dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
android:padding="16dp" />
|
||||
<TextView
|
||||
android:id="@+id/createLabel"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/createLabel"
|
||||
android:drawableStart="@drawable/ic_label"
|
||||
android:drawablePadding="24dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
android:padding="16dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/openWebRepo"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:drawableStart="@drawable/ic_open_in_browser"
|
||||
android:drawablePadding="24dp"
|
||||
android:padding="16dp"
|
||||
android:text="@string/openWebRepo"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp" />
|
||||
<TextView
|
||||
android:id="@+id/createRelease"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/createRelease"
|
||||
android:drawableStart="@drawable/ic_new_releases"
|
||||
android:drawablePadding="24dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
android:padding="16dp" />
|
||||
|
||||
<View style="@style/lineDividerHorizontal" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/addCollaborator"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/addCollaboratorTitle"
|
||||
android:drawableStart="@drawable/ic_person_filled"
|
||||
android:drawablePadding="24dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
android:padding="16dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/starRepository"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/starRepository"
|
||||
android:drawableStart="@drawable/ic_star_border_24dp"
|
||||
android:drawablePadding="24dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
android:padding="16dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/unStarRepository"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/unStarRepository"
|
||||
android:drawableStart="@drawable/ic_star"
|
||||
android:drawablePadding="24dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
android:padding="16dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/watchRepository"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/watchRepository"
|
||||
android:drawableStart="@drawable/ic_unwatch"
|
||||
android:drawablePadding="24dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
android:padding="16dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/unWatchRepository"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/unWatchRepository"
|
||||
android:drawableStart="@drawable/ic_watchers"
|
||||
android:drawablePadding="24dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
android:padding="16dp" />
|
||||
|
||||
<View style="@style/lineDividerHorizontal" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/openWebRepo"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:drawableStart="@drawable/ic_open_in_browser"
|
||||
android:drawablePadding="24dp"
|
||||
android:padding="16dp"
|
||||
android:text="@string/openWebRepo"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
|
||||
</LinearLayout>
|
@ -1,94 +1,112 @@
|
||||
<?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"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:paddingBottom="8dp"
|
||||
android:background="@color/backgroundColor"
|
||||
android:paddingTop="8dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/replyToIssue"
|
||||
<androidx.core.widget.NestedScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/replyToIssue"
|
||||
android:drawableStart="@drawable/ic_reply"
|
||||
android:drawablePadding="24dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
android:padding="16dp" />
|
||||
android:layout_height="400dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/editIssue"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/editIssue"
|
||||
android:drawableStart="@drawable/ic_edit"
|
||||
android:drawablePadding="24dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
android:padding="16dp" />
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/addRemoveAssignees"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/addRemoveAssignees"
|
||||
android:drawableStart="@drawable/ic_person_filled"
|
||||
android:drawablePadding="24dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
android:padding="16dp" />
|
||||
<TextView
|
||||
android:id="@+id/replyToIssue"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/replyToIssue"
|
||||
android:drawableStart="@drawable/ic_reply"
|
||||
android:drawablePadding="24dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
android:padding="16dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/editLabels"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/singleIssueEditLabels"
|
||||
android:drawableStart="@drawable/ic_label"
|
||||
android:drawablePadding="24dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
android:padding="16dp" />
|
||||
<TextView
|
||||
android:id="@+id/editIssue"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/editIssue"
|
||||
android:drawableStart="@drawable/ic_edit"
|
||||
android:drawablePadding="24dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
android:padding="16dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/closeIssue"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/closeIssue"
|
||||
android:drawableStart="@drawable/ic_done"
|
||||
android:drawablePadding="24dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
android:padding="16dp" />
|
||||
<TextView
|
||||
android:id="@+id/addRemoveAssignees"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/addRemoveAssignees"
|
||||
android:drawableStart="@drawable/ic_person_filled"
|
||||
android:drawablePadding="24dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
android:padding="16dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/reOpenIssue"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/reOpenIssue"
|
||||
android:drawableStart="@drawable/ic_reopen"
|
||||
android:drawablePadding="24dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
android:padding="16dp" />
|
||||
<TextView
|
||||
android:id="@+id/editLabels"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/singleIssueEditLabels"
|
||||
android:drawableStart="@drawable/ic_label"
|
||||
android:drawablePadding="24dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
android:padding="16dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/copyIssueUrl"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:drawableStart="@drawable/ic_content_copy"
|
||||
android:drawablePadding="24dp"
|
||||
android:padding="16dp"
|
||||
android:text="@string/copyIssueUrl"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp" />
|
||||
<View style="@style/lineDividerHorizontal" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/copyIssueUrl"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:drawableStart="@drawable/ic_content_copy"
|
||||
android:drawablePadding="24dp"
|
||||
android:padding="16dp"
|
||||
android:text="@string/copyIssueUrl"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp" />
|
||||
|
||||
<View style="@style/lineDividerHorizontal" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/closeIssue"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/closeIssue"
|
||||
android:drawableStart="@drawable/ic_done"
|
||||
android:drawablePadding="24dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
android:padding="16dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/reOpenIssue"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/reOpenIssue"
|
||||
android:drawableStart="@drawable/ic_reopen"
|
||||
android:drawablePadding="24dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
android:padding="16dp" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
|
||||
</LinearLayout>
|
@ -5,7 +5,7 @@
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@+id/linearLayoutFrame"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_marginTop="0dp"
|
||||
android:fitsSystemWindows="true"
|
||||
|
@ -17,6 +17,9 @@
|
||||
<item android:id="@+id/nav_repositories"
|
||||
android:icon="@drawable/ic_repos"
|
||||
android:title="@string/navRepos" />
|
||||
<item android:id="@+id/nav_explore"
|
||||
android:icon="@drawable/ic_search"
|
||||
android:title="@string/navExplore" />
|
||||
<item android:id="@+id/nav_profile"
|
||||
android:icon="@drawable/ic_person_24dp"
|
||||
android:title="@string/navProfile" />
|
||||
|
@ -1,5 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@drawable/ic_launcher_background"/>
|
||||
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
|
||||
</adaptive-icon>
|
@ -1,5 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@drawable/ic_launcher_background"/>
|
||||
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
|
||||
</adaptive-icon>
|
Before Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 3.8 KiB |
Before Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 5.0 KiB |
Before Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 4.8 KiB |
Before Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 8.4 KiB |
Before Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 8.9 KiB |
Before Width: | Height: | Size: 8.4 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 6.0 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 12 KiB |
412
app/src/main/res/values-ar/strings.xml
Normal 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">Rate 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">Issues</string>
|
||||
<string name="pageTitleSettings">الإعدادات</string>
|
||||
<string name="pageTitleCreateOrganization">منظمة جديدة</string>
|
||||
<string name="pageTitleCreateMilestone">New Milestone</string>
|
||||
<string name="pageTitleCreateNewIssue">New Issue</string>
|
||||
<string name="pageTitleCreateLabel">New Label</string>
|
||||
<string name="pageTitleCredits">Credits</string>
|
||||
<string name="pageTitleLabelUpdate">Update Label</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">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">مثال عن الوصف</string>
|
||||
<string name="noData">No repositories found</string>
|
||||
<string name="orgName">Demo organization</string>
|
||||
<string name="orgDescription">مثال عن الوصف</string>
|
||||
<string name="noDataOrg">No organizations found</string>
|
||||
<string name="newCreateButtonCopy">انشئ</string>
|
||||
<string name="newUpdateButtonCopy">Update</string>
|
||||
<string name="newRepoTintCopy">اسم المستودع</string>
|
||||
<string name="newRepoDescTintCopy">Repository Description</string>
|
||||
<string name="newRepoPrivateCopy">خاص</string>
|
||||
<string name="newRepoDescInfo">Max 255 characters</string>
|
||||
<string name="newRepoOwner">مالك</string>
|
||||
<string name="newOrgTintCopy">اسم المنظمة</string>
|
||||
<string name="newOrgDescTintCopy">وصف المنظمة</string>
|
||||
<string name="newOrgDescInfo">Max 255 characters</string>
|
||||
<string name="userName">اسم المستخدم</string>
|
||||
<string name="passWord">الكلمة السرية</string>
|
||||
<string name="btnLogin">لِج</string>
|
||||
<string name="instanceUrl">عنوان مثيل الخادم</string>
|
||||
<string name="navigation_drawer_open">Open Navigation Drawer</string>
|
||||
<string name="navigation_drawer_close">Close Navigation Drawer</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">اسم المستخدم أو الكلمة السرية خاطئة</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">اسم المستخدم لازم</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="repoNameErrorInvalid">Repository name is not valid. [a–z A–Z 0–9 – _]</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–z A–Z 0–9 – _]</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">البحث</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">Open Issues</string>
|
||||
<string name="tabItemCloseIssues">Closed Issues</string>
|
||||
<string name="tab_text_ml">Milestones</string>
|
||||
<string name="tab_text_releases">اﻹصدارات</string>
|
||||
<string name="tab_text_branches">الفروع</string>
|
||||
<string name="tab_text_labels">Labels</string>
|
||||
<string name="action_settings">الإعدادات</string>
|
||||
<string name="tab_text_collaborators">المتعاونون</string>
|
||||
<string name="noDataIssueTab">No issues found</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</string>
|
||||
<string name="infoTabRepoCloneUrl">انسخ العنوان</string>
|
||||
<string name="infoTabRepoRepoUrl">عنوان المستودع</string>
|
||||
<string name="infoTabRepoForksCount">المُشتقّات</string>
|
||||
<string name="infoTabRepoCreatedAt">Created</string>
|
||||
<string name="infoTabRepoUpdatedAt">Last Updated</string>
|
||||
<string name="timeAtText">على</string>
|
||||
<string name="createdText">Opened\u0020</string>
|
||||
<string name="dueDateText">Due Date</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">Something went wrong, please try again</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">No collaborators found</string>
|
||||
<string name="editText">تعديل</string>
|
||||
<string name="newMilestoneTitle">العنوان</string>
|
||||
<string name="newMilestoneDescription">الوصف</string>
|
||||
<string name="newMilestoneDueDate">Due Date</string>
|
||||
<string name="milestoneNameErrorEmpty">Milestone title is empty</string>
|
||||
<string name="milestoneNameErrorInvalid">Milestone title is not valid. [a–z A–Z 0–9 – _]</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">تمّ</string>
|
||||
<string name="newIssueDialogCancel">إلغاء</string>
|
||||
<string name="newIssueTitle">العنوان</string>
|
||||
<string name="newIssueAssigneesListTitle">Assignees</string>
|
||||
<string name="newIssueDescriptionTitle">الوصف</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">الترجمة</string>
|
||||
<string name="settingsDateTimeHeaderText">Date & Time</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">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">الشاشة الرئيسية</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="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">تعديل</string>
|
||||
<string name="labelMenuDelete">احذف</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">إلغاء</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">حسنًا</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">No teams found</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">أعضاء المنظمة</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">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">تعديل التعليق</string>
|
||||
<string name="editCommentButtonText">تعديل</string>
|
||||
<string name="editCommentUpdatedText">Comment updated</string>
|
||||
<!-- edit comment -->
|
||||
<!-- add collaborator -->
|
||||
<string name="addCollaboratorTitle">Add / Remove Collaborator</string>
|
||||
<string name="addCollaboratorSearchHint">البحث عن مستخدمين</string>
|
||||
<string name="addCollaboratorViewUserDesc">اسم المستخدم</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">المتابِعون</string>
|
||||
<string name="profileTabFollowing">يتابع</string>
|
||||
<string name="profileCreateNewEmailAddress">إضافة عنوان بريد إلكتروني</string>
|
||||
<string name="profileEmailButton">حفظ</string>
|
||||
<string name="profileEmailTitle">عنوان البريد الإلكتروني</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">أساسي</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">أضِف تعليقا</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"> خيار</string>
|
||||
<string name="options"> الخيارات</string>
|
||||
<string name="select_all">اختيار الكل</string>
|
||||
<string name="de_select_all">Deselect all</string>
|
||||
<!-- multi select dialog -->
|
||||
<string name="repoMetaData">Repository Meta</string>
|
||||
<!-- admin -->
|
||||
<string name="adminCreateNewUser">إضافة مستخدم جديد</string>
|
||||
<string name="adminUsers">المُستخدمون</string>
|
||||
<string name="userRoleAdmin">المُدير</string>
|
||||
<!-- admin -->
|
||||
<!-- create user -->
|
||||
<string name="userFullNameText">الاسم الكامل</string>
|
||||
<string name="userEmail">البريد الإلكتروني</string>
|
||||
<string name="userUserName">اسم المستخدم</string>
|
||||
<string name="userPassword">الكلمة السرية</string>
|
||||
<string name="userInvalidFullName">الاسم الكامل غير صالح</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 -->
|
||||
<!-- 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">العنوان</string>
|
||||
<string name="releaseContentText">المحتوى</string>
|
||||
<string name="releaseTypeText">Mark as Pre-Release</string>
|
||||
<string name="releaseBranchText">اختر فرعًا</string>
|
||||
<string name="releaseDraftText">مسودة</string>
|
||||
<string name="tagNameErrorEmpty">Tag name 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">افتح في المتصفح</string>
|
||||
<string name="repoStargazersInMenu">المُعجَبون</string>
|
||||
<string name="repoWatchersInMenu">المشاهدون</string>
|
||||
<string name="noDataStargazers">No stars found</string>
|
||||
<string name="noDataWatchers">No watchers found</string>
|
||||
<string name="starMember">Star</string>
|
||||
<string name="watcherMember">مشاهد</string>
|
||||
<string name="commitLinkBranchesTab">Commit</string>
|
||||
<string name="zipArchiveDownloadReleasesTab">Zip Archive</string>
|
||||
<string name="tarArchiveDownloadReleasesTab">Tar Archive</string>
|
||||
<!-- new file -->
|
||||
<string name="newFileNameTintCopy">اسم الملف</string>
|
||||
<string name="newFileBranchTintCopy">New Branch Name</string>
|
||||
<string name="newFileContentTintCopy">محتوى الملف</string>
|
||||
<string name="newFileButtonCopy">أنشئ ملفا جديدا</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 –, a–z, 0–9</string>
|
||||
<string name="newFileCommitMessageError">Commit message is too long</string>
|
||||
<string name="newFileSuccessMessage">أنشئ ملف جديد</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">مثال: 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">لم يٌعثر على ملفات</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">الجذر</string>
|
||||
<!-- generic copy -->
|
||||
<string name="okButton">حسنًا</string>
|
||||
<string name="doneButton">تمّ</string>
|
||||
<string name="cancelButton">إلغاء</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">لم يُعثر على بيانات</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">تم تحريره</string>
|
||||
<string name="saveButton">احفظ</string>
|
||||
<string name="nameText">الاسم</string>
|
||||
<string name="descriptionText">الوصف</string>
|
||||
<string name="websiteText">موقع الويب</string>
|
||||
<string name="locationText">المكان</string>
|
||||
<string name="characters255Limit">Max 255 characters</string>
|
||||
<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>
|
@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--Generated by crowdin.com-->
|
||||
<resources>
|
||||
|
||||
<!-- menu items -->
|
||||
<string name="navMyRepos">Meine Repositories</string>
|
||||
<string name="navStarredRepos">Favoriten</string>
|
||||
@ -10,8 +11,8 @@
|
||||
<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>
|
||||
<string name="pageTitleHome">Startseite</string>
|
||||
@ -26,122 +27,98 @@
|
||||
<string name="pageTitleCreateMilestone">Meilenstein erstellen</string>
|
||||
<string name="pageTitleCreateNewIssue">Issue erstellen</string>
|
||||
<string name="pageTitleCreateLabel">Label erstellen</string>
|
||||
<string name="pageTitleCredits">Credits</string>
|
||||
<string name="pageTitleCredits">Mitwirkende</string>
|
||||
<string name="pageTitleLabelUpdate">Label aktualisieren</string>
|
||||
<string name="pageTitleSponsors">Sponsoren</string>
|
||||
<string name="pageTitleStarredRepos">Favoriten</string>
|
||||
<string name="pageTitleCreateTeam">Team erstellen</string>
|
||||
<string name="pageTitleAddEmail">E-Mail Adresse hinzufügen</string>
|
||||
<string name="pageTitleNewFile">New File</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>
|
||||
|
||||
<string name="repoName">Demo Repo</string>
|
||||
<string name="repoFullname">Repo mit ORG</string>
|
||||
<string name="repoDescription">Demo Beschreibung</string>
|
||||
<string name="noData">Keine Repositories gefunden</string>
|
||||
|
||||
<string name="orgName">Demo Organisation</string>
|
||||
<string name="orgDescription">Demo Beschreibung</string>
|
||||
<string name="noDataOrg">Keine Organisation gefunden</string>
|
||||
|
||||
<string name="newCreateButtonCopy">Erstellen</string>
|
||||
<string name="newUpdateButtonCopy">Aktualisieren</string>
|
||||
|
||||
<string name="newRepoTintCopy">Name des Repositories</string>
|
||||
<string name="newRepoDescTintCopy">Beschreibung des Repositories</string>
|
||||
<string name="newRepoPrivateCopy">Privat</string>
|
||||
<string name="newRepoDescInfo">maximal 255 Zeichen</string>
|
||||
<string name="newRepoOwner">Eigentümer</string>
|
||||
|
||||
<string name="newOrgTintCopy">Name der Organisation</string>
|
||||
<string name="newOrgDescTintCopy">Beschreibung der Organisation</string>
|
||||
<string name="newOrgDescInfo">maximal 255 Zeichen</string>
|
||||
|
||||
<string name="userName">Benutzername</string>
|
||||
<string name="passWord">Passwort</string>
|
||||
<string name="btnLogin">ANMELDEN</string>
|
||||
<string name="instanceUrl">Gitea URL</string>
|
||||
<string name="instanceUrl">Instanz Link</string>
|
||||
<string name="navigation_drawer_open">Navigationsleiste öffnen</string>
|
||||
<string name="navigation_drawer_close">Navigationsleiste schließen</string>
|
||||
<string name="logo">In Gitea anmelden</string>
|
||||
<string name="urlInfoTooltip">1- Wähle das richtige Protokoll (https oder http) \ N2- Gebe die Gitea-URL ein, z.B. try.gitea.io \n3- Falls du 2FA aktiviert hast, gib den Code in das OTP-Code Feld ein. \n4- Für HTTP basic auth nutze BENUTZERNAME@DOMAIN.COM im URL Feld</string>
|
||||
<string name="loginFailed">Falscher Benutzername/Passwort </string>
|
||||
<string name="protocolDelimiter">://</string>
|
||||
<string name="protocolError">Es wird nicht empfohlen, das HTTP-Protokoll zu verwenden, es sei denn, du testest in einem lokalen Netzwerk.</string>
|
||||
<string name="malformedJson">Fehlerhaftes JSON erhalten. Serveranfrage war nicht erfolgreich.</string>
|
||||
<string name="emptyFieldURL">Instanzen-URL ist erforderlich</string>
|
||||
<string name="emptyFieldUsername">Benutzername ist erforderlich</string>
|
||||
<string name="emptyFieldPassword">Passwort ist erforderlich</string>
|
||||
|
||||
<string name="checkNetConnection">Kann nicht auf das Netzwerk zugreifen. Bitte überprüfe die Internetverbindung</string>
|
||||
<string name="emptyFields">Es sind alle Felder erforderlich</string>
|
||||
|
||||
<string name="repoNameErrorEmpty">Der Repository Name ist leer.</string>
|
||||
<string name="repoNameErrorInvalid">Der Repository Name ist nicht gültig. [a–z A–Z 0–9 – _]</string>
|
||||
<string name="repoDescError">Die Repositorybeschreibung überschreitet die maximale Anzahl von 255 Zeichen</string>
|
||||
<string name="repoDescError">Die Repository Beschreibung überschreitet die maximale Anzahl von 255 Zeichen</string>
|
||||
<string name="repoCreated">Repository erfolgreich erstellt!</string>
|
||||
<string name="repoCreatedError">Etwas ist schief gelaufen. Bitte versuche es erneut</string>
|
||||
<string name="repoExistsError">Ein Repository mit diesem Namen existiert bereits unter dem ausgewählten Besitzer</string>
|
||||
|
||||
<string name="orgNameErrorEmpty">Organisationsname ist leer</string>
|
||||
<string name="orgNameErrorEmpty">Name der Organisation ist leer</string>
|
||||
<string name="orgNameErrorInvalid">Organisationsname ist nicht gültig, [a–z A–Z 0–9 – _]</string>
|
||||
<string name="orgDescError">Organisationsbeschreibung überschreitet maximale Anzahl von 255 Zeichen</string>
|
||||
<string name="orgCreated">Organisation erfolgreich erstellt!</string>
|
||||
<string name="orgCreatedError">Etwas ist schief gelaufen. Bitte versuche es erneut</string>
|
||||
<string name="orgExistsError">Organisation existiert bereits</string>
|
||||
|
||||
<string name="processingText">verarbeite</string>
|
||||
<string name="search">Suche</string>
|
||||
<string name="wip">In Arbeit</string>
|
||||
|
||||
<string name="close">Schließen</string>
|
||||
<string name="addNewContent">Hinzufügen</string>
|
||||
<string name="orgContentAvatar">Org</string>
|
||||
<string name="repoContentAvatar">Repo</string>
|
||||
<string name="privateAvatar">Pri</string>
|
||||
<string name="repoStars">12345</string>
|
||||
<string name="repoWatchers">98324</string>
|
||||
<string name="repoIssues">54321</string>
|
||||
<string name="removeContent">Entfernen</string>
|
||||
|
||||
<string name="genericApiStatusError">Die Gitea Instanz hat einen Fehler zurückgegeben. Code\u0020</string>
|
||||
<string name="genericApiStatusError">Die Instanz hat einen Fehler zurückgegeben. Code\u0020</string>
|
||||
<string name="title_activity_repo_detail">Repo-Details Aktivität</string>
|
||||
<string name="tab_text_info">Details</string>
|
||||
<string name="tab_text_files">Dateien</string>
|
||||
<string name="tab_text_issues">Offene Issues</string>
|
||||
<string name="tabItemCloseIssues">Geschlossene Issues</string>
|
||||
<string name="tab_text_ml">Meilensteine</string>
|
||||
<string name="tab_text_releases">Veröffentlichungen</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">Einstellungen</string>
|
||||
<string name="tab_text_collaborators">Mitarbeiter</string>
|
||||
|
||||
<string name="noDataIssueTab">Keine Issues gefunden!</string>
|
||||
|
||||
<string name="infoTabRepoName1">Repository</string>
|
||||
<string name="infoTabRepoOwner1">Eigentümer</string>
|
||||
<string name="infoTabRepoDesc">Beschreibung</string>
|
||||
<string name="infoTabRepoWebsite">Webseite</string>
|
||||
<string name="infoTabRepoSize">Größe</string>
|
||||
<string name="infoTabRepoDefaultBranch">Standard Branch</string>
|
||||
<string name="infoTabRepoSshUrl">SSH URL</string>
|
||||
<string name="infoTabRepoCloneUrl">Klon URL</string>
|
||||
<string name="infoTabRepoRepoUrl">Repo URL</string>
|
||||
<string name="infoTabRepoSshUrl">SSH Link</string>
|
||||
<string name="infoTabRepoCloneUrl">Klon Link</string>
|
||||
<string name="infoTabRepoRepoUrl">Repository Link</string>
|
||||
<string name="infoTabRepoForksCount">Anzahl an Forks</string>
|
||||
<string name="infoTabRepoCreatedAt">Erstellt</string>
|
||||
<string name="infoTabRepoUpdatedAt">Letzte Aktualisierung</string>
|
||||
<string name="infoTabRepoDummyTime">2018–10–30 08:25:25</string>
|
||||
<string name="infoTabRepoBlank">…</string>
|
||||
<string name="infoTabRepoZero">0</string>
|
||||
<string name="infoTabRepoDefaultBranchText">master</string>
|
||||
|
||||
<string name="timeAtText">um</string>
|
||||
<string name="hash">#</string>
|
||||
<string name="createdText">Erstellt\u0020</string>
|
||||
<string name="dueDateText">Fälligkeitsdatum </string>
|
||||
<string name="dueDateText">Fälligkeitsdatum</string>
|
||||
<string name="issueStatusTextOpen">Status: offen</string>
|
||||
<string name="issueStatusOpen">öffnen</string>
|
||||
<string name="issueStatusTextClosed">Status: geschlossen</string>
|
||||
@ -151,7 +128,6 @@
|
||||
<string name="issueTypeIssue">Typ: Issue</string>
|
||||
<string name="issueTypePullRequest">Typ: Pull Anfrage</string>
|
||||
<string name="issueCommenter">Kommentator:\u0020</string>
|
||||
<string name="issueTitleWithId">#%1$d %2$s</string>
|
||||
<string name="issueMilestone">Meilenstein %1$s</string>
|
||||
<string name="dueDate">Fällig %1$s</string>
|
||||
<string name="createdTime">Erstellt %1$s</string>
|
||||
@ -160,15 +136,10 @@
|
||||
<string name="commentEmptyError">Bitte schreibe deinen Kommentar!</string>
|
||||
<string name="commentSuccess">Kommentar gepostet</string>
|
||||
<string name="commentError">Etwas ist schief gelaufen. Bitte versuche es erneut</string>
|
||||
|
||||
<string name="generalImgContentText">Benutzerbild</string>
|
||||
<string name="generalPageTitle">GitNex</string>
|
||||
|
||||
<string name="noDataMilestonesTab">Kein Meilenstein gefunden!</string>
|
||||
|
||||
<string name="commitAuthor">Commit Autor: %1$s</string>
|
||||
<string name="commitHash">Commit Hash \n%1$s%2$s</string>
|
||||
|
||||
<string name="releaseTitle">Release Titel</string>
|
||||
<string name="releaseDescription">Release Beschreibung</string>
|
||||
<string name="releaseDownloadText">Downloads</string>
|
||||
@ -177,16 +148,12 @@
|
||||
<string name="releaseTar">Release Tar</string>
|
||||
<string name="noDataReleasesTab">Kein Release gefunden!</string>
|
||||
<string name="releaseTag">Tag: %1$s</string>
|
||||
|
||||
<string name="collaboratorsNameToast">Zuständiger: %1$s</string>
|
||||
<string name="collaboratorsNameToast">Mitarbeiter : %1$s</string>
|
||||
<string name="noDataCollaboratorTab">Kein Zuständiger gefunden!</string>
|
||||
|
||||
<string name="editText">Bearbeiten</string>
|
||||
|
||||
<string name="newMilestoneTitle">Titel</string>
|
||||
<string name="newMilestoneDescription">Beschreibung</string>
|
||||
<string name="newMilestoneDueDate">Fälligkeitsdatum</string>
|
||||
<string name="setDueDate">%1$d-%2$d-%3$d</string>
|
||||
<string name="milestoneNameErrorEmpty">Titel des Meilensteins ist leer</string>
|
||||
<string name="milestoneNameErrorInvalid">Titel des Meilensteins ist nicht gültig. [a–z A–Z 0–9 – _]</string>
|
||||
<string name="milestoneDescError">Die Beschreibung des Meilensteins überschreitet die maximale Anzahl von 255 Zeichen</string>
|
||||
@ -195,7 +162,6 @@
|
||||
<string name="milestoneDateEmpty">Bitte wählen Sie das Fälligkeitsdatum!</string>
|
||||
<string name="milestoneOpenIssues">Offene Issues: %1$d</string>
|
||||
<string name="milestoneClosedIssues">Geschlossene Issues: %1$d</string>
|
||||
|
||||
<string name="newIssueSelectAssigneesListTitle">Wählen Sie Zuständige aus</string>
|
||||
<string name="newIssueSelectLabelsListTitle">Label auswählen</string>
|
||||
<string name="newIssueDialogDone">Erledigt</string>
|
||||
@ -206,15 +172,12 @@
|
||||
<string name="newIssueDueDateTitle">Fälligkeitsdatum</string>
|
||||
<string name="newIssueMilestoneTitle">Meilenstein</string>
|
||||
<string name="newIssueLabelsTitle">Labels</string>
|
||||
<string name="spinnerMilestoneText">%1$s [%2$s]</string>
|
||||
<string name="dialogAssignessText">%1$s - @%2$s</string>
|
||||
<string name="issueTitleEmpty">Der Titel des Issues ist leer!</string>
|
||||
<string name="issueDescriptionEmpty">Die Beschreibung des Issues ist leer!</string>
|
||||
<string name="issueCreated">Neues Issues wurde erfolgreich erstellt!</string>
|
||||
<string name="issueCreatedError">Etwas ist schief gelaufen. Bitte versuche es erneut</string>
|
||||
<string name="noAssigneesFound">Keine Zuständigen gefunden!</string>
|
||||
<string name="noLabelsFound">Keine Labels gefunden!</string>
|
||||
|
||||
<!-- settings -->
|
||||
<string name="settingsLanguageHeaderText">Sprachen</string>
|
||||
<string name="settingsDateTimeHeaderText">Datum & Uhrzeit</string>
|
||||
@ -228,45 +191,39 @@
|
||||
<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="settingsHomeScreenHeaderText">Home Screen</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>
|
||||
<!-- settings -->
|
||||
|
||||
<string name="noMoreData">Keine weiteren Daten verfügbar!</string>
|
||||
|
||||
<string name="noMoreData">Keine weiteren Daten verfügbar.</string>
|
||||
<string name="createLabel">Label erstellen</string>
|
||||
<string name="menuTitleText">Repo Menü</string>
|
||||
<string name="labelName">Label Name</string>
|
||||
<string name="labelName">Beschriftung</string>
|
||||
<string name="labelColor">Label Farbe</string>
|
||||
<string name="labelEmptyError">Der Labelname ist leer!</string>
|
||||
<string name="labelNameError">Der Labelname ist nicht gültig!</string>
|
||||
<string name="labelEmptyError">Name des Namens ist leer.</string>
|
||||
<string name="labelNameError">Label Name ist ungültig.</string>
|
||||
<string name="labelCreated">Label wurde erfolgreich erstellt!</string>
|
||||
<string name="labelGeneralError">Etwas ist schief gelaufen. Bitte versuche es erneut</string>
|
||||
<string name="labelGeneralError">Etwas ist schief gelaufen, bitte versuche es erneut.</string>
|
||||
<string name="labelUpdated">Label aktualisiert!</string>
|
||||
|
||||
<string name="noDataLabelsTab">Keine Labels gefunden!</string>
|
||||
<string name="labelMenuContentDesc">Beschreibung</string>
|
||||
<string name="labelMenuEdit">Bearbeiten</string>
|
||||
<string name="labelMenuDelete">Löschen</string>
|
||||
<string name="labelDeleteText">Label gelöscht!</string>
|
||||
<string name="labelDeleteErrorText">Etwas ist schief gelaufen. Bitte versuche es erneut</string>
|
||||
|
||||
<string name="noDataBranchesTab">Keine Branch gefunden!</string>
|
||||
|
||||
<string name="creditsLogoDesign">Design</string>
|
||||
|
||||
<!-- credits - this part does not need translation -->
|
||||
<!-- credits - this part does not need translation -->
|
||||
<string name="alertDialogTokenRevokedTitle">Autorisierungsfehler</string>
|
||||
<string name="alertDialogTokenRevokedMessage">Es scheint, dass der Access Token widerrufen wurde ODER du diese Inhalte nicht sehen darfst. Falls der Token wiederrufen wurde, melde dich bitte ab und wieder an.</string>
|
||||
<string name="alertDialogTokenRevokedMessage">Es scheint, dass das Access Token widerrufen wurde ODER du die Inhalte nicht sehen darfst. Im Falle von widerrufenen Token, bitte logge dich aus und wieder ein.</string>
|
||||
<string name="alertDialogTokenRevokedCopyNegativeButton">Abbrechen</string>
|
||||
<string name="alertDialogTokenRevokedCopyPositiveButton">Abmelden</string>
|
||||
|
||||
<string name="labelDeleteTitle">Löschen\u0020</string>
|
||||
<string name="labelDeleteMessage">Möchtest du dieses Label wirklich entfernen?</string>
|
||||
<string name="labelDeletePositiveButton">Ok</string>
|
||||
<string name="labelDeleteNegativeButton">Abbrechen</string>
|
||||
|
||||
<!-- org tabbed layout str -->
|
||||
<string name="title_activity_org_detail">OrgDetailActivity</string>
|
||||
<string name="orgTabRepos">Repositories</string>
|
||||
@ -275,61 +232,55 @@
|
||||
<string name="orgCreateTeam">Team erstellen</string>
|
||||
<string name="noDataTeams">Keine Teams gefunden!</string>
|
||||
<string name="teamTitle">Name des Teams</string>
|
||||
<string name="teamDescription">Beschrebung des Teams</string>
|
||||
<string name="teamDescription">Beschreibung des Teams</string>
|
||||
<string name="teamPermission">Berechtigung: %1$s</string>
|
||||
<string name="noDataMembers">Keine Mitglieder gefunden!</string>
|
||||
<string name="orgMember">Org Mitglied</string>
|
||||
<string name="orgTeamMembers">Mitglieder der Organization</string>
|
||||
<string name="orgMember">Org Mitglieder</string>
|
||||
<string name="orgTeamMembers">Mitglieder der Organisation</string>
|
||||
<!-- org tabbed layout str -->
|
||||
|
||||
<!-- create team -->
|
||||
<string name="newTeamTitle">Name des Teams</string>
|
||||
<string name="newTeamDesc">Beschreibung des Teams</string>
|
||||
<string name="newTeamPermission">Berechtigung</string>
|
||||
<string name="newTeamAccessControls">Zugriffsrechte</string>
|
||||
<string name="newTeamPermissionRead">Mitglieder können Team-Repositories anschauen und klonen</string>
|
||||
<string name="newTeamPermissionWrite">Mitglieder können Team-Repositories anschauen und zu Team-Repositories pushen</string>
|
||||
<string name="newTeamPermissionAdmin">Mitglieder können zu Team-Repositories pushen und pullen und Mitarbeiter zu ihnen hinzufügen</string>
|
||||
<string name="teamNameEmpty">Bitte gib den Namen des Teams ein.</string>
|
||||
<string name="teamNameError">Der Name des Teams sollte nur Alphanumerische Zeichen, Bindestriche (-), Unterstriche (_) und Punkte (.) enthalten.</string>
|
||||
<string name="teamPermissionEmpty">Bitte wähle die Rechte aus.</string>
|
||||
<string name="teamDescError">Die Beschreibung des Teams hat verbotene Zeichen.</string>
|
||||
<string name="teamDescLimit">Die Team Beschreibung überschreitet das Maximum von 100 Zeichen.</string>
|
||||
<string name="newTeamPermissionRead">Mitglieder können Team Repositorys einsehen und klonen.</string>
|
||||
<string name="newTeamPermissionWrite">Mitglieder können auf Team-Repositories lesen und schreiben.</string>
|
||||
<string name="newTeamPermissionAdmin">Mitglieder können auf Team-Repositories lesen, schreiben und Teilnehmer hinzufügen.</string>
|
||||
<string name="teamNameEmpty">Bitte geben Sie den Teamnamen ein.</string>
|
||||
<string name="teamNameError">Team Name sollte nur Buchstaben, Zahlen, Punkte, Bindestrich (-) und Unterstriche (_) enthalten.</string>
|
||||
<string name="teamPermissionEmpty">Bitte wählen Sie die Berechtigung.</string>
|
||||
<string name="teamDescError">Die Team Beschreibung hat illegale Zeichen.</string>
|
||||
<string name="teamDescLimit">Team Beschreibung hat mehr als 100 Zeichen.</string>
|
||||
<string name="teamCreated">Team erfolgreich erstellt.</string>
|
||||
<string name="teamCreatedError">Etwas ist schief gelaufen. Bitte versuche es später erneut</string>
|
||||
<string name="teamCreatedError">Etwas ist schief gelaufen, bitte versuche es erneut.</string>
|
||||
<!-- create team -->
|
||||
|
||||
<!-- edit comment -->
|
||||
<string name="editCommentTitle">Kommentar bearbeiten</string>
|
||||
<string name="editCommentButtonText">Bearbeiten</string>
|
||||
<string name="editCommentUpdatedText">Kommentar erfolgreich bearbeitet</string>
|
||||
<!-- edit comment -->
|
||||
|
||||
<!-- add collaborator -->
|
||||
<string name="addCollaboratorTitle">Mitarbeiter hinzufügen</string>
|
||||
<string name="addCollaboratorSearchHint">Benutzer durchsuchen</string>
|
||||
<string name="addCollaboratorViewUserDesc">Benutzername</string>
|
||||
<string name="removeCollaboratorTitle">entfernen\u0020</string>
|
||||
<string name="removeCollaboratorMessage">Möchtest du den Nutzer wirklich von dieser Repository entfernen?</string>
|
||||
<string name="removeCollaboratorToastText">Benuter von der Repository entfernt.</string>
|
||||
<string name="removeCollaboratorToastText">Benutzer von der Repository entfernt.</string>
|
||||
<string name="addCollaboratorToastText">Benutzer zu der Repository hinzugefügt.</string>
|
||||
<string name="openWebRepo">Öffne mit Browser</string>
|
||||
<!-- add collaborator -->
|
||||
|
||||
<!-- profile section -->
|
||||
<string name="profileTabFollowers">Follower</string>
|
||||
<string name="profileTabFollowers">Folgen mir</string>
|
||||
<string name="profileTabFollowing">Folge ich</string>
|
||||
<string name="profileCreateNewEmailAddress">E-Mail Adresse hinzufügen</string>
|
||||
<string name="profileEmailButton">Speichern</string>
|
||||
<string name="profileEmailTitle">E-Mail Adresse</string>
|
||||
<string name="emailAddedText">Neue E-Mail Adresse erfolgreich hinzugefügt.</string>
|
||||
<string name="emailErrorEmpty">E-Mail Adresse ist leer.</string>
|
||||
<string name="emailErrorInvalid">E-Mail Adresse ist nicht gültig.</string>
|
||||
<string name="emailErrorInUse">Die E-Mail Adresse wird bereits verwendet.</string>
|
||||
<string name="emailErrorInvalid">E-Mail Adresse ist ungültig.</string>
|
||||
<string name="emailErrorInUse">E-Mail Adresse ist bereits in Benutzung.</string>
|
||||
<string name="emailTypeText">Primär</string>
|
||||
<string name="profileTabEmails">E-Mails</string>
|
||||
<!-- profile section -->
|
||||
|
||||
<!-- single issue section -->
|
||||
<string name="singleIssueEditLabels">Labels hinzufügen/entfernen</string>
|
||||
<string name="labelsUpdated">Labels aktualisiert</string>
|
||||
@ -343,26 +294,22 @@
|
||||
<string name="addRemoveAssignees">Zuständige hinzufügen/entfernen</string>
|
||||
<string name="assigneesUpdated">Zuständige aktualisiert</string>
|
||||
<!-- single issue section -->
|
||||
|
||||
<!-- multi select dialog -->
|
||||
<string name="select_entry">Einträge auswählen</string>
|
||||
<string name="validation_text">Bitte mindestens eine Option auswählen</string>
|
||||
<string name="please_select_atleast">Du musst mindestens so viele auswälen: </string>
|
||||
<string name="please_select_atleast">Du musst mindestens so viele auswählen: </string>
|
||||
<string name="you_can_only_select_upto">Du kannst höchstens so viele auswählen: </string>
|
||||
<string name="option"> Option</string>
|
||||
<string name="options"> Optionen</string>
|
||||
<string name="select_all">Alle auswählen</string>
|
||||
<string name="de_select_all">Die Auswahl aufheben</string>
|
||||
<!-- multi select dialog -->
|
||||
|
||||
<string name="repoMetaData">Repository Meta</string>
|
||||
|
||||
<string name="repoMetaData">Repository Informationen</string>
|
||||
<!-- admin -->
|
||||
<string name="adminCreateNewUser">Neuen Benutzer erstellen</string>
|
||||
<string name="adminUsers">Benutzer</string>
|
||||
<string name="userRoleAdmin">Admin</string>
|
||||
<string name="userRoleAdmin">Administrator</string>
|
||||
<!-- admin -->
|
||||
|
||||
<!-- create user -->
|
||||
<string name="userFullNameText">Ganzer Name</string>
|
||||
<string name="userEmail">E-Mail</string>
|
||||
@ -374,12 +321,12 @@
|
||||
<string name="userCreatedText">Neuer Benutzer erfolgreich erstellt</string>
|
||||
<string name="userExistsError">Benutzer existiert bereits</string>
|
||||
<!-- create user -->
|
||||
|
||||
<!-- sponsors -->
|
||||
<!-- sponsors -->
|
||||
<!-- edit issue -->
|
||||
<string name="editIssueNavHeader">Bearbeite Issue #%1$s</string>
|
||||
<string name="editIssueSuccessMessage">Issue aktualisiert.</string>
|
||||
<!-- edit issue -->
|
||||
|
||||
<!-- release -->
|
||||
<string name="createRelease">Release erstellen</string>
|
||||
<string name="releaseTagNameText">Tag</string>
|
||||
@ -392,23 +339,20 @@
|
||||
<string name="titleErrorEmpty">Der Titel ist leer</string>
|
||||
<string name="releaseCreatedText">Neuer Release erstellt</string>
|
||||
<!-- release -->
|
||||
|
||||
<string name="loginOTPError">Bitte gib den OTP code ein</string>
|
||||
<string name="loginOTPTypeError">Der OTP code muss aus Zahlen bestehen.</string>
|
||||
<string name="loginOTP">OTP Code (Optional)</string>
|
||||
<string name="otpMessage">Gib den otp code ein, wenn 2FA eingeschaltet ist</string>
|
||||
|
||||
<string name="loginOTPError">Bitte OTP-Code Eingeben</string>
|
||||
<string name="loginOTPTypeError">Der OTP-Code muss aus Zahlen bestehen.</string>
|
||||
<string name="loginOTP">OTP-Code (optional)</string>
|
||||
<string name="otpMessage">Gib den OTP-Code ein, wenn 2FA eingeschaltet ist</string>
|
||||
<string name="openWebRepo">Öffne mit Browser</string>
|
||||
<string name="repoStargazersInMenu">Favorisierer</string>
|
||||
<string name="repoWatchersInMenu">Beobachter</string>
|
||||
<string name="noDataStargazers">Keine Favorisierer gefunden</string>
|
||||
<string name="noDataWatchers">Keine Beobachter gefunden</string>
|
||||
<string name="starMember">Favorisierer</string>
|
||||
<string name="watcherMember">Beobachter</string>
|
||||
|
||||
<string name="commitLinkBranchesTab">Commit</string>
|
||||
<string name="zipArchiveDownloadReleasesTab">Zip Archiv</string>
|
||||
<string name="tarArchiveDownloadReleasesTab">Tar Archiv</string>
|
||||
|
||||
<!-- new file -->
|
||||
<string name="newFileNameTintCopy">Dateiname</string>
|
||||
<string name="newFileBranchTintCopy">neuer Branch-Name</string>
|
||||
@ -421,17 +365,18 @@
|
||||
<string name="newFileSuccessMessage">Neue Datei erstellt</string>
|
||||
<string name="newFileOldBranches">Derzeitige Branches</string>
|
||||
<string name="newFileRequiredFields">Felder wie Dateiname, Inhalt und Commit-Nachricht sind erforderlich.</string>
|
||||
<string name="newFileCurrentBranchMessage">Das Auswählen des derzeitigen Branches wird "neuer Branch-Name" deaktivieren</string>
|
||||
<string name="newFileCurrentBranchMessage">Das Auswählen des derzeitigen Branches wird \"neuer Branch-Name\" deaktivieren</string>
|
||||
<string name="newFileNewBranchMessage">z.B.: neuer-branch</string>
|
||||
<string name="newFileRequiredFieldNewBranchName">Neuer Branch-Name kann nicht leer sein, wenn der derzeitige Branch nicht ausgewählt ist</string>
|
||||
|
||||
<string name="strFilter">Filter</string>
|
||||
|
||||
<string name="copyIssueUrl">Issue URL kopieren</string>
|
||||
<string name="copyIssueUrlToastMsg">Issue URL copied to clipboard</string>
|
||||
|
||||
<string name="copyIssueUrl">Issue Link kopieren</string>
|
||||
<string name="copyIssueUrlToastMsg">Issue Link in Zwischenablage kopiert</string>
|
||||
<string name="milestoneCompletion">%1$d\uFF05 abgeschlossen</string>
|
||||
|
||||
<!-- files -->
|
||||
<string name="noDataFilesTab">Keine Dateien gefunden</string>
|
||||
<string name="filesDirNotSupportedYet">Ordner werden noch nicht unterstützt</string>
|
||||
<string name="filesGenericError">Leider kann diese Datei nicht angezeigt werden, da die API einen Fehler zurückgab</string>
|
||||
<string name="filesBreadcrumb">Wurzel</string>
|
||||
<!-- generic copy -->
|
||||
<string name="okButton">OK</string>
|
||||
<string name="doneButton">Fertig</string>
|
||||
@ -452,6 +397,16 @@
|
||||
<string name="websiteText">Website</string>
|
||||
<string name="locationText">Standort</string>
|
||||
<string name="characters255Limit">maximal 255 Zeichen</string>
|
||||
<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>
|
||||
|
412
app/src/main/res/values-fa/strings.xml
Normal 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">Explore</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">Credits</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">Explore</string>
|
||||
<!-- page titles -->
|
||||
<string name="appVersion">نسخه\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="noData">مخزن یافت نشد</string>
|
||||
<string name="orgName">Demo organization</string>
|
||||
<string name="orgDescription">Demo description</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">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–z A–Z 0–9 – _]</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–z A–Z 0–9 – _]</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">تنظیمات</string>
|
||||
<string name="tab_text_collaborators">Collaborators</string>
|
||||
<string name="noDataIssueTab">No issues found</string>
|
||||
<string name="infoTabRepoName1">Repository</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="infoTabRepoSshUrl">SSH URL</string>
|
||||
<string name="infoTabRepoCloneUrl">Clone URL</string>
|
||||
<string name="infoTabRepoRepoUrl">Repo URL</string>
|
||||
<string name="infoTabRepoForksCount">Forks</string>
|
||||
<string name="infoTabRepoCreatedAt">Created</string>
|
||||
<string name="infoTabRepoUpdatedAt">Last Updated</string>
|
||||
<string name="timeAtText">at</string>
|
||||
<string name="createdText">Opened\u0020</string>
|
||||
<string name="dueDateText">Due Date</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">Comment</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="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="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="newMilestoneDescription">Description</string>
|
||||
<string name="newMilestoneDueDate">Due Date</string>
|
||||
<string name="milestoneNameErrorEmpty">Milestone title is empty</string>
|
||||
<string name="milestoneNameErrorInvalid">Milestone title is not valid. [a–z A–Z 0–9 – _]</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 & 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">مخازن من</string>
|
||||
<string name="settingshomeScreenSelectorDialogTitle">Select Home Screen</string>
|
||||
<!-- settings -->
|
||||
<string name="noMoreData">No more data available</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="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">خروج از حساب کاربری</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">مخازن</string>
|
||||
<string name="orgTabTeams">Teams</string>
|
||||
<string name="orgTabMembers">Members</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="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">افزدون پست الکترونیکی</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 –, a–z, 0–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">حداکثر 255 کاراکتر</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>
|
412
app/src/main/res/values-fi/strings.xml
Normal file
@ -0,0 +1,412 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--Generated by crowdin.com-->
|
||||
<resources>
|
||||
<!-- menu items -->
|
||||
<string name="navMyRepos">Reponi</string>
|
||||
<string name="navStarredRepos">Suosikki Repot</string>
|
||||
<string name="navRepos">Repot</string>
|
||||
<string name="navProfile">Profiili</string>
|
||||
<string name="navSettings">Asetukset</string>
|
||||
<string name="navOrgs">Organisaatiot</string>
|
||||
<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>
|
||||
<string name="pageTitleHome">Koti</string>
|
||||
<string name="pageTitleMyRepos">Omat Repot</string>
|
||||
<string name="pageTitleRepositories">Repot</string>
|
||||
<string name="pageTitleProfile">Profiili</string>
|
||||
<string name="pageTitleNewRepo">Uusi Repo</string>
|
||||
<string name="pageTitleOrganizations">Organisaatiot</string>
|
||||
<string name="pageTitleIssues">Ongelmat</string>
|
||||
<string name="pageTitleSettings">Asetukset</string>
|
||||
<string name="pageTitleCreateOrganization">Uusi organisaatio</string>
|
||||
<string name="pageTitleCreateMilestone">Uusi tavoite</string>
|
||||
<string name="pageTitleCreateNewIssue">Uusi ongelma</string>
|
||||
<string name="pageTitleCreateLabel">Uusi tunniste</string>
|
||||
<string name="pageTitleCredits">Tekijät</string>
|
||||
<string name="pageTitleLabelUpdate">Päivitä tunnisteita</string>
|
||||
<string name="pageTitleSponsors">Sponsorit</string>
|
||||
<string name="pageTitleStarredRepos">Suosikki Repot</string>
|
||||
<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>
|
||||
<string name="repoName">Demo repo</string>
|
||||
<string name="repoFullname">Repo with ORG</string>
|
||||
<string name="repoDescription">Demo kuvaus</string>
|
||||
<string name="noData">Repoja ei löytynyt</string>
|
||||
<string name="orgName">Demo organisaatio</string>
|
||||
<string name="orgDescription">Demo kuvaus</string>
|
||||
<string name="noDataOrg">Yhtään organisaatiota ei löytynyt</string>
|
||||
<string name="newCreateButtonCopy">Luo</string>
|
||||
<string name="newUpdateButtonCopy">Päivitä</string>
|
||||
<string name="newRepoTintCopy">Repon nimi</string>
|
||||
<string name="newRepoDescTintCopy">Repon kuvaus</string>
|
||||
<string name="newRepoPrivateCopy">Yksityinen</string>
|
||||
<string name="newRepoDescInfo">Enintään 255 merkkiä</string>
|
||||
<string name="newRepoOwner">Omistaja</string>
|
||||
<string name="newOrgTintCopy">Organisaation nimi</string>
|
||||
<string name="newOrgDescTintCopy">Organisaation kuvaus</string>
|
||||
<string name="newOrgDescInfo">Enintään 255 merkkiä</string>
|
||||
<string name="userName">Käyttäjätunnus</string>
|
||||
<string name="passWord">Salasana</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–z A–Z 0–9 – _]</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–z A–Z 0–9 – _]</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">Owner</string>
|
||||
<string name="infoTabRepoDesc">Kuvaus</string>
|
||||
<string name="infoTabRepoWebsite">Verkkosivusto</string>
|
||||
<string name="infoTabRepoSize">Koko</string>
|
||||
<string name="infoTabRepoDefaultBranch">Olutus haara</string>
|
||||
<string name="infoTabRepoSshUrl">SSH URL</string>
|
||||
<string name="infoTabRepoCloneUrl">Kopiointi URL</string>
|
||||
<string name="infoTabRepoRepoUrl">Repo URL</string>
|
||||
<string name="infoTabRepoForksCount">Forks</string>
|
||||
<string name="infoTabRepoCreatedAt">Created</string>
|
||||
<string name="infoTabRepoUpdatedAt">Last Updated</string>
|
||||
<string name="timeAtText">at</string>
|
||||
<string name="createdText">Opened\u0020</string>
|
||||
<string name="dueDateText">Due Date</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">Comment</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="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="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="newMilestoneDescription">Description</string>
|
||||
<string name="newMilestoneDueDate">Due Date</string>
|
||||
<string name="milestoneNameErrorEmpty">Milestone title is empty</string>
|
||||
<string name="milestoneNameErrorInvalid">Milestone title is not valid. [a–z A–Z 0–9 – _]</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 & 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 –, a–z, 0–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>
|
@ -1,458 +1,412 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--Generated by crowdin.com-->
|
||||
<resources>
|
||||
|
||||
<!-- menu items -->
|
||||
<string name="navMyRepos">My Repositories</string>
|
||||
<string name="navStarredRepos">Starred Repositories</string>
|
||||
<string name="navMyRepos">Mes dépôts</string>
|
||||
<string name="navStarredRepos">Dépôts favoris</string>
|
||||
<string name="navRepos">Dépôts</string>
|
||||
<string name="navProfile">Profil</string>
|
||||
<string name="navSettings">Réglages</string>
|
||||
<string name="navOrgs">Les organisations</string>
|
||||
<string name="navAbout">Sur</string>
|
||||
<string name="navRate">Rate GitNex</string>
|
||||
<string name="navLogout">Connectez - Out</string>
|
||||
<string name="navSettings">Configuration</string>
|
||||
<string name="navOrgs">Organisations</string>
|
||||
<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">Sur</string>
|
||||
<string name="pageTitleAbout">À propos</string>
|
||||
<string name="pageTitleHome">Accueil</string>
|
||||
<string name="pageTitleMyRepos">My Repositories</string>
|
||||
<string name="pageTitleMyRepos">Mes dépôts</string>
|
||||
<string name="pageTitleRepositories">Dépôts</string>
|
||||
<string name="pageTitleProfile">Profil</string>
|
||||
<string name="pageTitleNewRepo">Créer un référentiel</string>
|
||||
<string name="pageTitleOrganizations">Les organisations</string>
|
||||
<string name="pageTitleIssues">Issues</string>
|
||||
<string name="pageTitleSettings">Settings</string>
|
||||
<string name="pageTitleCreateOrganization">Créer une organisation</string>
|
||||
<string name="pageTitleCreateMilestone">Create Milestone</string>
|
||||
<string name="pageTitleCreateNewIssue">Create Issue</string>
|
||||
<string name="pageTitleCreateLabel">Create Label</string>
|
||||
<string name="pageTitleCredits">Credits</string>
|
||||
<string name="pageTitleLabelUpdate">Update Label</string>
|
||||
<string name="pageTitleSponsors">Sponsors</string>
|
||||
<string name="pageTitleStarredRepos">Starred Repositories</string>
|
||||
<string name="pageTitleCreateTeam">Create Team</string>
|
||||
<string name="pageTitleAddEmail">Add Email Address</string>
|
||||
<string name="pageTitleNewFile">New File</string>
|
||||
<string name="pageTitleNewRepo">Nouveau dépôt</string>
|
||||
<string name="pageTitleOrganizations">Organisations</string>
|
||||
<string name="pageTitleIssues">Tickets</string>
|
||||
<string name="pageTitleSettings">Configuration</string>
|
||||
<string name="pageTitleCreateOrganization">Nouvelle organisation</string>
|
||||
<string name="pageTitleCreateMilestone">Nouveau jalon</string>
|
||||
<string name="pageTitleCreateNewIssue">Nouveau ticket</string>
|
||||
<string name="pageTitleCreateLabel">Nouvelle étiquette</string>
|
||||
<string name="pageTitleCredits">Crédits</string>
|
||||
<string name="pageTitleLabelUpdate">Modifier l’étiquette</string>
|
||||
<string name="pageTitleSponsors">Partenaires</string>
|
||||
<string name="pageTitleStarredRepos">Dépôts favoris</string>
|
||||
<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">Construire No.\u0020:\u0020</string>
|
||||
|
||||
<string name="repoName">Démo repo</string>
|
||||
<string name="repoFullname">Repo with ORG</string>
|
||||
<string name="repoDescription">Demo la description</string>
|
||||
<string name="noData">Aucun référentiel trouvé!</string>
|
||||
|
||||
<string name="appBuild">Build No.\u0020:\u0020</string>
|
||||
<string name="repoName">Dépôt de démonstration</string>
|
||||
<string name="repoFullname">Nom complet du dépôt</string>
|
||||
<string name="repoDescription">Description de démonstration</string>
|
||||
<string name="noData">Aucun dépôt</string>
|
||||
<string name="orgName">Organisation de démonstration</string>
|
||||
<string name="orgDescription">Demo description</string>
|
||||
<string name="noDataOrg">Aucune organisation trouvée!</string>
|
||||
|
||||
<string name="orgDescription">Description de démonstration</string>
|
||||
<string name="noDataOrg">Aucune organisation</string>
|
||||
<string name="newCreateButtonCopy">Créer</string>
|
||||
<string name="newUpdateButtonCopy">Update</string>
|
||||
|
||||
<string name="newRepoTintCopy">Nom du référentiel</string>
|
||||
<string name="newRepoDescTintCopy">Description du référentiel</string>
|
||||
<string name="newRepoPrivateCopy">Private</string>
|
||||
<string name="newUpdateButtonCopy">Modifier</string>
|
||||
<string name="newRepoTintCopy">Nom du dépôt</string>
|
||||
<string name="newRepoDescTintCopy">Description du dépôt</string>
|
||||
<string name="newRepoPrivateCopy">Privé</string>
|
||||
<string name="newRepoDescInfo">255 caractères maximum</string>
|
||||
<string name="newRepoOwner">Propriétaire</string>
|
||||
|
||||
<string name="newOrgTintCopy">nom de l\'organisation</string>
|
||||
<string name="newOrgDescTintCopy">Description de l\'organisation</string>
|
||||
<string name="newOrgTintCopy">Nom de l’organisation</string>
|
||||
<string name="newOrgDescTintCopy">Description</string>
|
||||
<string name="newOrgDescInfo">255 caractères maximum</string>
|
||||
|
||||
<string name="userName">NOM D\'UTILISATEUR</string>
|
||||
<string name="passWord">MOT DE PASSE</string>
|
||||
<string name="btnLogin">S\'IDENTIFIER</string>
|
||||
<string name="instanceUrl">GITEA URL</string>
|
||||
<string name="navigation_drawer_open">Ouvrir Navigation Drawer</string>
|
||||
<string name="navigation_drawer_close">Fermer Navigation Drawer</string>
|
||||
<string name="userName">Nom d’utilisateur</string>
|
||||
<string name="passWord">Mot de passe</string>
|
||||
<string name="btnLogin">CONNEXION</string>
|
||||
<string name="instanceUrl">URL de l’instance</string>
|
||||
<string name="navigation_drawer_open">Ouvrir le volet de navigation</string>
|
||||
<string name="navigation_drawer_close">Fermer le volet de navigation</string>
|
||||
<string name="logo">Se connecter à Gitea</string>
|
||||
<string name="urlInfoTooltip">1- Choose the correct protocol(https or http) \n2- Enter Gitea url e.g: try.gitea.io \n3- For 2FA enter USERNAME:CODE in the Username field \n4- For HTTP basic auth use USERNAME@DOMAIN.COM in the URL field</string>
|
||||
<string name="loginFailed">Wrong username/password</string>
|
||||
<string name="protocolDelimiter">://</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">Impossible d\'accéder au réseau, veuillez vérifier votre connexion Internet</string>
|
||||
<string name="emptyFields">Tous les champs sont requis</string>
|
||||
|
||||
<string name="repoNameErrorEmpty">Le nom du référentiel est vide</string>
|
||||
<string name="repoNameErrorInvalid">Le nom du référentiel n\'est pas valide. [a–z A–Z 0–9 – _]</string>
|
||||
<string name="repoDescError">La description du référentiel dépasse la limite maximale de 255 caractères</string>
|
||||
<string name="repoCreated">Référentiel créé avec succès!</string>
|
||||
<string name="repoCreatedError">Une erreur s\'est produite. Veuillez réessayer</string>
|
||||
<string name="repoExistsError">Repository of this name already exists under selected Owner</string>
|
||||
|
||||
<string name="orgNameErrorEmpty">Le nom de l\'organisation est vide</string>
|
||||
<string name="orgNameErrorInvalid">Le nom de l\'organisation n\'est pas valide, [a–z A–Z 0–9 – _]</string>
|
||||
<string name="orgDescError">La description de l\'organisation dépasse la limite maximale de 255 caractères</string>
|
||||
<string name="orgCreated">organisation créée avec succès!</string>
|
||||
<string name="orgCreatedError">Une erreur s\'est produite. Veuillez réessayer</string>
|
||||
<string name="orgExistsError">Organization already exists</string>
|
||||
|
||||
<string name="processingText">En traitement</string>
|
||||
<string name="search">Search</string>
|
||||
<string name="wip">Work in progress</string>
|
||||
|
||||
<string name="urlInfoTooltip">1. Choisissez le protocole adéquat (HTTPS ou HTTP)\n2. Entrez l’URL de votre instance Gitea (ex : try.gitea.io)\n3. Si l’authentification à deux facteurs est activée pour votre compte, saisissez le code OTP\n4. Pour une authentification basique avec HTTP, utilisez NOMDUTILISATEUR@DOMAINE.COM dans le champ URL GITEA</string>
|
||||
<string name="loginFailed">Mauvais nom d’utilisateur/mot de passe</string>
|
||||
<string name="protocolError">Il n’est recommandé d’utiliser le protocole HTTP que pour des tests en réseau local.</string>
|
||||
<string name="malformedJson">JSON mal formé. Le serveur ne répond pas.</string>
|
||||
<string name="emptyFieldURL">URL de l’instance requise</string>
|
||||
<string name="emptyFieldUsername">Nom d’utilisateur requis</string>
|
||||
<string name="emptyFieldPassword">Mot de passe requis</string>
|
||||
<string name="checkNetConnection">Impossible d’accéder au réseau, veuillez vérifier votre connexion Internet</string>
|
||||
<string name="repoNameErrorEmpty">Nom du dépôt requis</string>
|
||||
<string name="repoNameErrorInvalid">Nom de dépôt invalide [a–z A–Z 0–9 – _]</string>
|
||||
<string name="repoDescError">La description du dépôt dépasse la limite de 255 caractères</string>
|
||||
<string name="repoCreated">Dépôt créé</string>
|
||||
<string name="repoCreatedError">Une erreur s’est produite, veuillez réessayer</string>
|
||||
<string name="repoExistsError">Le propriétaire désigné possède déjà un dépôt du même nom</string>
|
||||
<string name="orgNameErrorEmpty">Nom de l’organisation requis</string>
|
||||
<string name="orgNameErrorInvalid">Nom de l’organisation invalide [a–z A–Z 0–9 – _]</string>
|
||||
<string name="orgDescError">La description dépasse la limite de 255 caractères</string>
|
||||
<string name="orgCreated">Organisation créée</string>
|
||||
<string name="orgCreatedError">Une erreur s’est produite, veuillez réessayer</string>
|
||||
<string name="orgExistsError">Ce nom d’organisation est déjà pris</string>
|
||||
<string name="processingText">Traitement en cours</string>
|
||||
<string name="search">Rechercher</string>
|
||||
<string name="wip">En développement</string>
|
||||
<string name="close">Fermer</string>
|
||||
<string name="addNewContent">Add</string>
|
||||
<string name="addNewContent">Ajouter</string>
|
||||
<string name="orgContentAvatar">Org</string>
|
||||
<string name="repoContentAvatar">Repo</string>
|
||||
<string name="repoContentAvatar">Dépôt</string>
|
||||
<string name="privateAvatar">Pri</string>
|
||||
<string name="repoStars">0</string>
|
||||
<string name="repoWatchers">0</string>
|
||||
<string name="repoIssues">54321</string>
|
||||
<string name="removeContent">Remove</string>
|
||||
|
||||
<string name="genericApiStatusError">L\'instance a renvoyé une erreur. Code\u0020</string>
|
||||
<string name="title_activity_repo_detail">RepoDetailActivity</string>
|
||||
<string name="removeContent">Supprimer</string>
|
||||
<string name="genericApiStatusError">L’instance a renvoyé une erreur. Code\u0020</string>
|
||||
<string name="title_activity_repo_detail">Activité du dépôt</string>
|
||||
<string name="tab_text_info">Détails</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_files">Fichiers</string>
|
||||
<string name="tab_text_issues">Tickets ouverts</string>
|
||||
<string name="tabItemCloseIssues">Tickets fermés</string>
|
||||
<string name="tab_text_ml">Jalons</string>
|
||||
<string name="tab_text_releases">Versions</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_labels">Étiquettes</string>
|
||||
<string name="action_settings">Configuration</string>
|
||||
<string name="tab_text_collaborators">Collaborateurs</string>
|
||||
<string name="noDataIssueTab">Aucun ticket</string>
|
||||
<string name="infoTabRepoName1">Dépôt</string>
|
||||
<string name="infoTabRepoOwner1">Propriétaire</string>
|
||||
<string name="infoTabRepoDesc">Description</string>
|
||||
<string name="infoTabRepoWebsite">Website</string>
|
||||
<string name="infoTabRepoSize">Size</string>
|
||||
<string name="infoTabRepoDefaultBranch">Default Branch</string>
|
||||
<string name="infoTabRepoSshUrl">SSH URL</string>
|
||||
<string name="infoTabRepoCloneUrl">Clone URL</string>
|
||||
<string name="infoTabRepoRepoUrl">Repo URL</string>
|
||||
<string name="infoTabRepoForksCount">Forks Count</string>
|
||||
<string name="infoTabRepoCreatedAt">Created</string>
|
||||
<string name="infoTabRepoUpdatedAt">Last Updated</string>
|
||||
<string name="infoTabRepoDummyTime">2018–10–30 08:25:25</string>
|
||||
<string name="infoTabRepoBlank">…</string>
|
||||
<string name="infoTabRepoZero">0</string>
|
||||
<string name="infoTabRepoDefaultBranchText">master</string>
|
||||
|
||||
<string name="infoTabRepoWebsite">Site Web</string>
|
||||
<string name="infoTabRepoSize">Taille</string>
|
||||
<string name="infoTabRepoDefaultBranch">Branche par défaut</string>
|
||||
<string name="infoTabRepoSshUrl">URL SSH</string>
|
||||
<string name="infoTabRepoCloneUrl">URL de clonage</string>
|
||||
<string name="infoTabRepoRepoUrl">URL du dépôt</string>
|
||||
<string name="infoTabRepoForksCount">Bifurcations</string>
|
||||
<string name="infoTabRepoCreatedAt">Créé</string>
|
||||
<string name="infoTabRepoUpdatedAt">Dernière modification</string>
|
||||
<string name="timeAtText">à</string>
|
||||
<string name="hash">#</string>
|
||||
<string name="createdText">Created\u0020</string>
|
||||
<string name="dueDateText">Due Date</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="issueTitleWithId">#%1$d %2$s</string>
|
||||
<string name="issueMilestone">Milestone %1$s</string>
|
||||
<string name="dueDate">Due %1$s</string>
|
||||
<string name="createdTime">Created %1$s</string>
|
||||
<string name="assignedTo">Assigned to : %1$s</string>
|
||||
<string name="commentButtonText">Comment</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">IMG</string>
|
||||
<string name="generalPageTitle">GitNex</string>
|
||||
|
||||
<string name="noDataMilestonesTab">No Milestone 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="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 Collaborator found!</string>
|
||||
|
||||
<string name="editText">Edit</string>
|
||||
|
||||
<string name="newMilestoneTitle">Title</string>
|
||||
<string name="createdText">Ouvert\u0020</string>
|
||||
<string name="dueDateText">Échéance</string>
|
||||
<string name="issueStatusTextOpen">Statut : ouvert</string>
|
||||
<string name="issueStatusOpen">ouvert</string>
|
||||
<string name="issueStatusTextClosed">Statut : fermé</string>
|
||||
<string name="issueStatusClosed">fermé</string>
|
||||
<string name="issueCreator">Créateur :\u0020</string>
|
||||
<string name="issueAssigneesText">Assignés</string>
|
||||
<string name="issueTypeIssue">Type : problème</string>
|
||||
<string name="issueTypePullRequest">Type : demande d’ajout</string>
|
||||
<string name="issueCommenter">Commentateur :\u0020</string>
|
||||
<string name="issueMilestone">Jalon %1$s</string>
|
||||
<string name="dueDate">Échéance %1$s</string>
|
||||
<string name="createdTime">Ouvert %1$s</string>
|
||||
<string name="assignedTo">Assigné à : %1$s</string>
|
||||
<string name="commentButtonText">Publier</string>
|
||||
<string name="commentEmptyError">Veuillez saisir votre commentaire</string>
|
||||
<string name="commentSuccess">Commentaire publié</string>
|
||||
<string name="commentError">Une erreur s’est produite, veuillez réessayer</string>
|
||||
<string name="generalImgContentText">Avatar</string>
|
||||
<string name="noDataMilestonesTab">Aucun jalon</string>
|
||||
<string name="commitAuthor">Auteur de la révision : %1$s</string>
|
||||
<string name="commitHash">Hash de la révision \n%1$s%2$s</string>
|
||||
<string name="releaseTitle">Titre de la version</string>
|
||||
<string name="releaseDescription">Description de la version</string>
|
||||
<string name="releaseDownloadText">Télécharger</string>
|
||||
<string name="releaseType">Format</string>
|
||||
<string name="releaseZip">Version zip</string>
|
||||
<string name="releaseTar">Version tar</string>
|
||||
<string name="noDataReleasesTab">Aucune version</string>
|
||||
<string name="releaseTag">Tag : %1$s</string>
|
||||
<string name="collaboratorsNameToast">Collaborateur : %1$s</string>
|
||||
<string name="noDataCollaboratorTab">Aucun collaborateur</string>
|
||||
<string name="editText">Modifier</string>
|
||||
<string name="newMilestoneTitle">Titre</string>
|
||||
<string name="newMilestoneDescription">Description</string>
|
||||
<string name="newMilestoneDueDate">Due Date</string>
|
||||
<string name="setDueDate">%1$d-%2$d-%3$d</string>
|
||||
<string name="milestoneNameErrorEmpty">Milestone title is empty</string>
|
||||
<string name="milestoneNameErrorInvalid">Milestone title is not valid. [a–z A–Z 0–9 – _]</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="newMilestoneDueDate">Échéance</string>
|
||||
<string name="milestoneNameErrorEmpty">Titre du jalon requis</string>
|
||||
<string name="milestoneNameErrorInvalid">Titre du jalon invalide [a–z A–Z 0–9 – _]</string>
|
||||
<string name="milestoneDescError">La description du jalon dépasse la limite de 255 caractères</string>
|
||||
<string name="milestoneCreated">Jalon créé</string>
|
||||
<string name="milestoneCreatedError">Une erreur s’est produite, veuillez réessayer</string>
|
||||
<string name="milestoneDateEmpty">Veuillez choisir une échéance</string>
|
||||
<string name="milestoneOpenIssues">Tickets ouverts : %1$d</string>
|
||||
<string name="milestoneClosedIssues">Tickets fermés : %1$d</string>
|
||||
<string name="newIssueSelectAssigneesListTitle">Assignés</string>
|
||||
<string name="newIssueSelectLabelsListTitle">Sélectionner des étiquettes</string>
|
||||
<string name="newIssueDialogDone">Terminé</string>
|
||||
<string name="newIssueDialogCancel">Annuler</string>
|
||||
<string name="newIssueTitle">Titre</string>
|
||||
<string name="newIssueAssigneesListTitle">Assignés</string>
|
||||
<string name="newIssueDescriptionTitle">Description</string>
|
||||
<string name="newIssueDueDateTitle">Due Date</string>
|
||||
<string name="newIssueMilestoneTitle">Milestone</string>
|
||||
<string name="newIssueLabelsTitle">Labels</string>
|
||||
<string name="spinnerMilestoneText">%1$s [%2$s]</string>
|
||||
<string name="dialogAssignessText">%1$s - @%2$s</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>
|
||||
|
||||
<string name="newIssueDueDateTitle">Échéance</string>
|
||||
<string name="newIssueMilestoneTitle">Jalon</string>
|
||||
<string name="newIssueLabelsTitle">Étiquettes</string>
|
||||
<string name="issueTitleEmpty">Titre du ticket requis</string>
|
||||
<string name="issueDescriptionEmpty">Description du ticket requise</string>
|
||||
<string name="issueCreated">Nouveau ticket créé</string>
|
||||
<string name="issueCreatedError">Une erreur s’est produite, veuillez réessayer</string>
|
||||
<string name="noAssigneesFound">Aucun collaborateur</string>
|
||||
<string name="noLabelsFound">Aucune étiquette</string>
|
||||
<!-- settings -->
|
||||
<string name="settingsLanguageHeaderText">Les langues</string>
|
||||
<string name="settingsDateTimeHeaderText">Date & 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>
|
||||
<string name="settingsLanguageHeaderText">Traduction</string>
|
||||
<string name="settingsDateTimeHeaderText">Date et heure</string>
|
||||
<string name="settingsSave">Configuration enregistrée</string>
|
||||
<string name="settingsLanguageSelectorHeader">Langue</string>
|
||||
<string name="settingsLanguageSelectedHeaderDefault">Français</string>
|
||||
<string name="settingsAppearanceHeader">Apparence</string>
|
||||
<string name="settingsDateTimeHeaderDefault">Relatif</string>
|
||||
<string name="settingsLanguageSelectorDialogTitle">Langue</string>
|
||||
<string name="settingsTimeSelectorDialogTitle">Format de date</string>
|
||||
<string name="settingsIssueBadgeHeaderText">Compteur de tickets ouverts</string>
|
||||
<string name="settingsHelpTranslateText">Aidez-nous à traduire GitNex dans votre langue</string>
|
||||
<string name="codeBlockHeaderText">Couleur du code</string>
|
||||
<string name="settingsCodeBlockSelectorDialogTitle">Couleur du code</string>
|
||||
<string name="settingsHomeScreenHeaderText">Écran d’accueil</string>
|
||||
<string name="settingsHomeScreenSelectedText">Mes dépôts</string>
|
||||
<string name="settingshomeScreenSelectorDialogTitle">Écran d’accueil</string>
|
||||
<!-- settings -->
|
||||
|
||||
<string name="noMoreData">No more data available!</string>
|
||||
|
||||
<string name="createLabel">Create 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="noMoreData">Aucune donnée</string>
|
||||
<string name="createLabel">Nouvelle étiquette</string>
|
||||
<string name="menuTitleText">Menu du dépôt</string>
|
||||
<string name="labelName">Nom de l’étiquette</string>
|
||||
<string name="labelColor">Couleur</string>
|
||||
<string name="labelEmptyError">Nom de l’étiquette requis</string>
|
||||
<string name="labelNameError">Nom de l’étiquette invalide</string>
|
||||
<string name="labelCreated">Étiquette créée</string>
|
||||
<string name="labelGeneralError">Une erreur s’est produite, veuillez réessayer</string>
|
||||
<string name="labelUpdated">Étiquette modifiée</string>
|
||||
<string name="noDataLabelsTab">Aucune étiquette</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 Branch found!</string>
|
||||
|
||||
<string name="creditsLogoDesign">Design</string>
|
||||
|
||||
<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>
|
||||
|
||||
<string name="labelMenuEdit">Modifier</string>
|
||||
<string name="labelMenuDelete">Supprimer</string>
|
||||
<string name="labelDeleteText">Étiquette supprimée</string>
|
||||
<string name="labelDeleteErrorText">Une erreur s’est produite, veuillez réessayer</string>
|
||||
<string name="noDataBranchesTab">Aucune branche</string>
|
||||
<string name="creditsLogoDesign">Graphisme</string>
|
||||
<!-- credits - this part does not need translation -->
|
||||
<!-- credits - this part does not need translation -->
|
||||
<string name="alertDialogTokenRevokedTitle">Erreur d’autorisation</string>
|
||||
<string name="alertDialogTokenRevokedMessage">Vous n’avez pas l’autorisation de voir ce contenu OU votre jeton d’accès a été révoqué. Dans ce dernier cas, veuillez vous reconnecter.</string>
|
||||
<string name="alertDialogTokenRevokedCopyNegativeButton">Annuler</string>
|
||||
<string name="alertDialogTokenRevokedCopyPositiveButton">Déconnexion</string>
|
||||
<string name="labelDeleteTitle">Supprimer\u0020</string>
|
||||
<string name="labelDeleteMessage">Voulez-vous vraiment supprimer cette étiquette ?</string>
|
||||
<string name="labelDeletePositiveButton">Confirmer</string>
|
||||
<string name="labelDeleteNegativeButton">Annuler</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">Create Team</string>
|
||||
<string name="noDataTeams">No teams found!</string>
|
||||
<string name="teamTitle">Team name</string>
|
||||
<string name="teamDescription">Team desc</string>
|
||||
<string name="title_activity_org_detail">Activité de l’organisation</string>
|
||||
<string name="orgTabRepos">Dépôts</string>
|
||||
<string name="orgTabTeams">Équipes</string>
|
||||
<string name="orgTabMembers">Membres</string>
|
||||
<string name="orgCreateTeam">Nouvelle équipe</string>
|
||||
<string name="noDataTeams">Aucune équipe</string>
|
||||
<string name="teamTitle">Nom de l’équipe</string>
|
||||
<string name="teamDescription">Description de l’équipe</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>
|
||||
<string name="noDataMembers">Aucun membre</string>
|
||||
<string name="orgMember">Membres de l’organisation</string>
|
||||
<string name="orgTeamMembers">Membres de l’équipe</string>
|
||||
<!-- org tabbed layout str -->
|
||||
|
||||
<!-- create team -->
|
||||
<string name="newTeamTitle">Team Name</string>
|
||||
<string name="newTeamTitle">Nom de l’équipe</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>
|
||||
<string name="newTeamAccessControls">Accès</string>
|
||||
<string name="newTeamPermissionRead">Les membres peuvent voir et cloner les dépôts de l’équipe.</string>
|
||||
<string name="newTeamPermissionWrite">Les membres peuvent lire et pousser dans les dépôts de l’équipe.</string>
|
||||
<string name="newTeamPermissionAdmin">Les membres peuvent tirer et pousser dans les dépôts de l’équipe ainsi qu’ajouter des collaborateurs.</string>
|
||||
<string name="teamNameEmpty">Nom d’équipe requis</string>
|
||||
<string name="teamNameError">Le nom d’équipe peut contenir des caractères alphanumériques, des tirets (-), des soulignés (_) et des points (.).</string>
|
||||
<string name="teamPermissionEmpty">Veuillez sélectionner une permission</string>
|
||||
<string name="teamDescError">La description contient des caractères interdits</string>
|
||||
<string name="teamDescLimit">La description de l’équipe dépasse la limite de 100 caractères</string>
|
||||
<string name="teamCreated">Équipe créée</string>
|
||||
<string name="teamCreatedError">Une erreur s’est produite, veuillez réessayer</string>
|
||||
<!-- create team -->
|
||||
|
||||
<!-- edit comment -->
|
||||
<string name="editCommentTitle">Edit Comment</string>
|
||||
<string name="editCommentButtonText">Edit</string>
|
||||
<string name="editCommentUpdatedText">Comment updated</string>
|
||||
<string name="editCommentTitle">Modifier le commentaire</string>
|
||||
<string name="editCommentButtonText">Modifier</string>
|
||||
<string name="editCommentUpdatedText">Commentaire modifié</string>
|
||||
<!-- edit comment -->
|
||||
|
||||
<!-- add collaborator -->
|
||||
<string name="addCollaboratorTitle">Add 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>
|
||||
<string name="addCollaboratorTitle">Ajouter/supprimer des collaborateurs</string>
|
||||
<string name="addCollaboratorSearchHint">Rechercher des utilisateurs</string>
|
||||
<string name="addCollaboratorViewUserDesc">Nom d’utilisateur</string>
|
||||
<string name="removeCollaboratorTitle">Supprimer\u0020</string>
|
||||
<string name="removeCollaboratorMessage">Supprimer cet utilisateur du dépôt ?</string>
|
||||
<string name="removeCollaboratorToastText">Utilisateur supprimé du dépôt</string>
|
||||
<string name="addCollaboratorToastText">Utilisateur ajouté au dépôt</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>
|
||||
<string name="profileTabFollowers">Abonnés</string>
|
||||
<string name="profileTabFollowing">Abonnements</string>
|
||||
<string name="profileCreateNewEmailAddress">Ajouter une adresse e-mail</string>
|
||||
<string name="profileEmailButton">Sauvegarder</string>
|
||||
<string name="profileEmailTitle">Adresse e-mail</string>
|
||||
<string name="emailAddedText">Nouvelle adresse e-mail ajoutée</string>
|
||||
<string name="emailErrorEmpty">Aucune adresse e-mail saisie</string>
|
||||
<string name="emailErrorInvalid">Adresse e-mail invalide</string>
|
||||
<string name="emailErrorInUse">Adresse e-mail déjà utilisée</string>
|
||||
<string name="emailTypeText">Principale</string>
|
||||
<string name="profileTabEmails">E-mails</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>
|
||||
<string name="singleIssueEditLabels">Ajouter/supprimer des étiquettes</string>
|
||||
<string name="labelsUpdated">Étiquettes mises à jour</string>
|
||||
<string name="closeIssue">Fermer le ticket</string>
|
||||
<string name="replyToIssue">Ajouter un commentaire</string>
|
||||
<string name="editIssue">Modifier le ticket</string>
|
||||
<string name="reOpenIssue">Réouvrir le ticket</string>
|
||||
<string name="issueStateClosed">Ticket fermé</string>
|
||||
<string name="issueStateReopened">Ticket réouvert</string>
|
||||
<string name="addRemoveAssignees2">Ajouter des assignés</string>
|
||||
<string name="addRemoveAssignees">Ajouter/supprimer des assignés</string>
|
||||
<string name="assigneesUpdated">Assignés mis à jour</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="select_entry">Sélection des entrées</string>
|
||||
<string name="validation_text">Veuillez sélectionner au moins une option</string>
|
||||
<string name="please_select_atleast">Veuillez sélectionner au moins </string>
|
||||
<string name="you_can_only_select_upto">Vous ne pouvez sélectionner que </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">Tout sélectionner</string>
|
||||
<string name="de_select_all">Tout désélectionner</string>
|
||||
<!-- multi select dialog -->
|
||||
|
||||
<string name="repoMetaData">Repository Meta</string>
|
||||
|
||||
<string name="repoMetaData">Informations sur le dépôt</string>
|
||||
<!-- admin -->
|
||||
<string name="adminCreateNewUser">Create New User</string>
|
||||
<string name="adminUsers">Users</string>
|
||||
<string name="adminCreateNewUser">Ajouter un nouvel utilisateur</string>
|
||||
<string name="adminUsers">Utilisateurs</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 created successfully</string>
|
||||
<string name="userExistsError">User already exists</string>
|
||||
<string name="userFullNameText">Nom complet</string>
|
||||
<string name="userEmail">Adresse e-mail</string>
|
||||
<string name="userUserName">Nom d’utilisateur</string>
|
||||
<string name="userPassword">Mot de passe</string>
|
||||
<string name="userInvalidFullName">Nom complet invalide</string>
|
||||
<string name="userInvalidUserName">Nom d’utilisateur invalide</string>
|
||||
<string name="userInvalidEmail">Adresse e-mail invalide</string>
|
||||
<string name="userCreatedText">Nouvel utilisateur créé</string>
|
||||
<string name="userExistsError">Nom d’utilisateur déjà existant</string>
|
||||
<!-- create user -->
|
||||
|
||||
<!-- sponsors -->
|
||||
<!-- sponsors -->
|
||||
<!-- edit issue -->
|
||||
<string name="editIssueNavHeader">Edit Issue #%1$s</string>
|
||||
<string name="editIssueSuccessMessage">Issue updated.</string>
|
||||
<string name="editIssueNavHeader">Modifier le ticket %1$s</string>
|
||||
<string name="editIssueSuccessMessage">Ticket modifié</string>
|
||||
<!-- edit issue -->
|
||||
|
||||
<!-- release -->
|
||||
<string name="createRelease">Create 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>
|
||||
<string name="createRelease">Nouvelle version</string>
|
||||
<string name="releaseTagNameText">Nom du tag</string>
|
||||
<string name="releaseTitleText">Titre</string>
|
||||
<string name="releaseContentText">Contenu</string>
|
||||
<string name="releaseTypeText">Marquer comme préversion</string>
|
||||
<string name="releaseBranchText">Branche</string>
|
||||
<string name="releaseDraftText">Brouillon</string>
|
||||
<string name="tagNameErrorEmpty">Nom du tag requis</string>
|
||||
<string name="titleErrorEmpty">Titre requis</string>
|
||||
<string name="releaseCreatedText">Nouvelle version créée</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="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>
|
||||
|
||||
<string name="loginOTPError">Code OTP requis</string>
|
||||
<string name="loginOTPTypeError">Le code OTP est composé de chiffres</string>
|
||||
<string name="loginOTP">Code OTP (si nécessaire)</string>
|
||||
<string name="otpMessage">Entrez le code OTP si l’authentification à deux facteurs est activée</string>
|
||||
<string name="openWebRepo">Ouvrir dans le navigateur</string>
|
||||
<string name="repoStargazersInMenu">Fans</string>
|
||||
<string name="repoWatchersInMenu">Observateurs</string>
|
||||
<string name="noDataStargazers">Aucun fan</string>
|
||||
<string name="noDataWatchers">Aucun observateur</string>
|
||||
<string name="starMember">Ajouter aux favoris</string>
|
||||
<string name="watcherMember">Observateur</string>
|
||||
<string name="commitLinkBranchesTab">Dernière révision</string>
|
||||
<string name="zipArchiveDownloadReleasesTab">Archive zip</string>
|
||||
<string name="tarArchiveDownloadReleasesTab">Archive tar</string>
|
||||
<!-- new file -->
|
||||
<string name="newFileNameTintCopy">File Name</string>
|
||||
<string name="newFileBranchTintCopy">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 –, a–z, 0–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, contents 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">Copier l Issue URL</string>
|
||||
<string name="copyIssueUrlToastMsg">Issue URL copied to clipboard</string>
|
||||
|
||||
<string name="newFileNameTintCopy">Nom du fichier</string>
|
||||
<string name="newFileBranchTintCopy">Nom de la nouvelle branche</string>
|
||||
<string name="newFileContentTintCopy">Contenu du fichier</string>
|
||||
<string name="newFileButtonCopy">Créer</string>
|
||||
<string name="newFileNameHintMessage">avec le dossier : app/test.md</string>
|
||||
<string name="newFileMessageTintCopy">Message de la révision</string>
|
||||
<string name="newFileInvalidBranchName">Nom de branche invalide [–, un–z, 0–9]</string>
|
||||
<string name="newFileCommitMessageError">Message de la révision trop long</string>
|
||||
<string name="newFileSuccessMessage">Nouveau fichier créé</string>
|
||||
<string name="newFileOldBranches">Branche</string>
|
||||
<string name="newFileRequiredFields">Le nom de fichier, le contenu et le message de la révision sont requis</string>
|
||||
<string name="newFileCurrentBranchMessage">Sélectionner une branche désactive les champs suivants</string>
|
||||
<string name="newFileNewBranchMessage">ex : new-branch</string>
|
||||
<string name="newFileRequiredFieldNewBranchName">Nom de la nouvelle branche requis si aucune branche n’est sélectionnée</string>
|
||||
<string name="strFilter">Filtrer</string>
|
||||
<string name="copyIssueUrl">Copier l’URL du ticket</string>
|
||||
<string name="copyIssueUrlToastMsg">URL du ticket copiée dans le presse-papier</string>
|
||||
<string name="milestoneCompletion">%1$d\uFF05 terminé</string>
|
||||
|
||||
<!-- files -->
|
||||
<string name="noDataFilesTab">Aucun fichier</string>
|
||||
<string name="filesDirNotSupportedYet">L’explorateur de dossiers n’est pas disponible pour l’instant</string>
|
||||
<string name="filesGenericError">Ce fichier ne peut être affiché, l’API a retourné une erreur</string>
|
||||
<string name="filesBreadcrumb">Racine</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="okButton">Confirmer</string>
|
||||
<string name="doneButton">Terminé</string>
|
||||
<string name="cancelButton">Annuler</string>
|
||||
<string name="genericError">Une erreur s’est produite, veuillez réessayer</string>
|
||||
<string name="apiNotFound">Cette requête nécessite une version de Gitea plus récente. Veuillez mettre à jour votre instance.</string>
|
||||
<string name="noDataFound">Aucune donnée</string>
|
||||
<string name="addButton">Ajouter</string>
|
||||
<string name="removeButton">Supprimer</string>
|
||||
<string name="authorizeError">Vous n’êtes pas autorisé à effectuer cette 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="menuEditText">Modifier</string>
|
||||
<string name="menuDeleteText">Supprimer</string>
|
||||
<string name="modifiedText">modifié</string>
|
||||
<string name="saveButton">Sauvegarder</string>
|
||||
<string name="nameText">Nom</string>
|
||||
<string name="descriptionText">Description</string>
|
||||
<string name="websiteText">Website</string>
|
||||
<string name="locationText">Location</string>
|
||||
<string name="openWebRepo">Ouvrir avec le Browser</string>
|
||||
<string name="characters255Limit">Max 255 characters</string>
|
||||
<string name="websiteText">Site Web</string>
|
||||
<string name="locationText">Localisation</string>
|
||||
<string name="characters255Limit">255 caractères maximum</string>
|
||||
<string name="emptyFields">Tous les champs sont requis</string>
|
||||
<!-- generic copy -->
|
||||
|
||||
</resources>
|
||||
<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>
|
||||
|
412
app/src/main/res/values-it/strings.xml
Normal 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–z A–Z 0–9 – _]</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–z A–Z 0–9 – _]</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–z A–Z 0–9 – _]</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 & 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 –, a–z, 0–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>
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--Generated by crowdin.com-->
|
||||
<resources>
|
||||
|
||||
<!-- menu items -->
|
||||
<string name="navMyRepos">Мои репозитории</string>
|
||||
<string name="navStarredRepos">Избранные репозитории</string>
|
||||
@ -11,8 +11,8 @@
|
||||
<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>
|
||||
<string name="pageTitleHome">Главная</string>
|
||||
@ -34,33 +34,27 @@
|
||||
<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>
|
||||
|
||||
<string name="repoName">Демо репозиторий</string>
|
||||
<string name="repoFullname">Репозиторий с организацией</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>
|
||||
@ -70,47 +64,37 @@
|
||||
<string name="logo">Войти в Gitea</string>
|
||||
<string name="urlInfoTooltip">1- Выберите протокол (https или http) \n2- Введите инстанцию Gitea, например: try.gitea.io \n3- For 2FA enter USERNAME:CODE in the Username field \n4- For HTTP basic auth use USERNAME@DOMAIN.COM in the URL field</string>
|
||||
<string name="loginFailed">Неверные логин и/или пароль</string>
|
||||
<string name="protocolDelimiter">://</string>
|
||||
<string name="protocolError">Не рекомендуется использовать протокол HTTP, если вы не тестируете инстанцию в локальной сети.</string>
|
||||
<string name="malformedJson">Неожиданный ответ от сервера. Попробуйте сменить протокол или обратитесь к администратору инстанции.</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">Нет подключения к интернету, проверьте наличие связи.</string>
|
||||
<string name="emptyFields">Все поля обязательны для заполнения</string>
|
||||
|
||||
<string name="repoNameErrorEmpty">Название репозитория пустое.</string>
|
||||
<string name="repoNameErrorInvalid">Недоступное название репозитория. [a–z A–Z 0–9 – _]</string>
|
||||
<string name="repoDescError">Описание репозитория превышает 255 символов.</string>
|
||||
<string name="repoCreated">Репозиторий успешно создан!</string>
|
||||
<string name="repoCreatedError">Что-то пошло не так. Пожалуйста, попытайтесь еще раз.</string>
|
||||
<string name="repoExistsError">Repository of this name already exists under selected Owner</string>
|
||||
|
||||
<string name="orgNameErrorEmpty">Название организации пустое.</string>
|
||||
<string name="orgNameErrorInvalid">Недоступное название организации. [a–z A–Z 0–9 – _]</string>
|
||||
<string name="orgDescError">Описание организации превышает 255 символов.</string>
|
||||
<string name="orgCreated">Организация успешно создана!</string>
|
||||
<string name="orgCreatedError">Что-то пошло не так. Пожалуйста, попытайтесь еще раз.</string>
|
||||
<string name="orgExistsError">Organization already exists</string>
|
||||
|
||||
<string name="processingText">Обработка</string>
|
||||
<string name="search">Поиск</string>
|
||||
<string name="wip">Работа в процессе</string>
|
||||
|
||||
<string name="close">Закрыть</string>
|
||||
<string name="addNewContent">Добавить</string>
|
||||
<string name="orgContentAvatar">Орг.</string>
|
||||
<string name="repoContentAvatar">Реп.</string>
|
||||
<string name="privateAvatar">Лич.</string>
|
||||
<string name="repoStars">12345</string>
|
||||
<string name="repoWatchers">98324</string>
|
||||
<string name="repoIssues">54321</string>
|
||||
<string name="removeContent">Удалить</string>
|
||||
|
||||
<string name="genericApiStatusError">Инстанция вернула ошибку. Код\u0020</string>
|
||||
<string name="title_activity_repo_detail">Активность</string>
|
||||
<string name="tab_text_info">Детали</string>
|
||||
<string name="tab_text_files">Files</string>
|
||||
<string name="tab_text_issues">Открытые задачи</string>
|
||||
<string name="tabItemCloseIssues">Закрытые задачи</string>
|
||||
<string name="tab_text_ml">Вехи</string>
|
||||
@ -119,9 +103,7 @@
|
||||
<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>
|
||||
@ -134,13 +116,7 @@
|
||||
<string name="infoTabRepoForksCount">Кол-во форков</string>
|
||||
<string name="infoTabRepoCreatedAt">Создан</string>
|
||||
<string name="infoTabRepoUpdatedAt">Последнее обновление</string>
|
||||
<string name="infoTabRepoDummyTime">2018–10–30 08:25:25</string>
|
||||
<string name="infoTabRepoBlank">…</string>
|
||||
<string name="infoTabRepoZero">0</string>
|
||||
<string name="infoTabRepoDefaultBranchText">master</string>
|
||||
|
||||
<string name="timeAtText">в</string>
|
||||
<string name="hash">#</string>
|
||||
<string name="createdText">Создано\u0020</string>
|
||||
<string name="dueDateText">Дата исполнения</string>
|
||||
<string name="issueStatusTextOpen">Статус: открыта</string>
|
||||
@ -152,7 +128,6 @@
|
||||
<string name="issueTypeIssue">Тип: задача</string>
|
||||
<string name="issueTypePullRequest">Тип: pull request</string>
|
||||
<string name="issueCommenter">Комментатор:\u0020</string>
|
||||
<string name="issueTitleWithId">#%1$d %2$s</string>
|
||||
<string name="issueMilestone">Вехи %1$s</string>
|
||||
<string name="dueDate">Исполнение %1$s</string>
|
||||
<string name="createdTime">Создано %1$s</string>
|
||||
@ -161,15 +136,10 @@
|
||||
<string name="commentEmptyError">Введите свой комментарий.</string>
|
||||
<string name="commentSuccess">Комментарий отправлен!</string>
|
||||
<string name="commentError">Что-то пошло не так. Пожалуйста, попытайтесь еще раз.</string>
|
||||
|
||||
<string name="generalImgContentText">Аватар</string>
|
||||
<string name="generalPageTitle">GitNex</string>
|
||||
|
||||
<string name="noDataMilestonesTab">Вех не обнаружено</string>
|
||||
|
||||
<string name="commitAuthor">Автор коммита: %1$s</string>
|
||||
<string name="commitHash">Хеш коммита \n%1$s%2$s</string>
|
||||
|
||||
<string name="releaseTitle">Заголовок релиза</string>
|
||||
<string name="releaseDescription">Описание релиза</string>
|
||||
<string name="releaseDownloadText">Скачать</string>
|
||||
@ -178,16 +148,12 @@
|
||||
<string name="releaseTar">Релиз в tar</string>
|
||||
<string name="noDataReleasesTab">Релизов не обнаружено</string>
|
||||
<string name="releaseTag">Tag: %1$s</string>
|
||||
|
||||
<string name="collaboratorsNameToast">Сотрудники: %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="setDueDate">%1$d-%2$d-%3$d</string>
|
||||
<string name="milestoneNameErrorEmpty">Заголовок вехи пустой.</string>
|
||||
<string name="milestoneNameErrorInvalid">Недоступный заголовок вехи. [a–z A–Z 0–9 – _]</string>
|
||||
<string name="milestoneDescError">Описание вехи превышает 255 символов.</string>
|
||||
@ -196,7 +162,6 @@
|
||||
<string name="milestoneDateEmpty">Надо задать дату вехи.</string>
|
||||
<string name="milestoneOpenIssues">Открыть задачу: %1$d</string>
|
||||
<string name="milestoneClosedIssues">Закрыть задачу: %1$d</string>
|
||||
|
||||
<string name="newIssueSelectAssigneesListTitle">Выбрать сотрудников</string>
|
||||
<string name="newIssueSelectLabelsListTitle">Выбрать метки</string>
|
||||
<string name="newIssueDialogDone">Готово</string>
|
||||
@ -207,15 +172,12 @@
|
||||
<string name="newIssueDueDateTitle">Дата исполнения</string>
|
||||
<string name="newIssueMilestoneTitle">Вехи</string>
|
||||
<string name="newIssueLabelsTitle">Метки</string>
|
||||
<string name="spinnerMilestoneText">%1$s [%2$s]</string>
|
||||
<string name="dialogAssignessText">%1$s - @%2$s</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>
|
||||
@ -234,40 +196,34 @@
|
||||
<string name="settingsHomeScreenSelectedText">My Repositories</string>
|
||||
<string name="settingshomeScreenSelectorDialogTitle">Select Home Screen</string>
|
||||
<!-- settings -->
|
||||
|
||||
<string name="noMoreData">Нет новых данных.</string>
|
||||
|
||||
<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="labelEmptyError">Label name is empty</string>
|
||||
<string name="labelNameError">Label name is not valid</string>
|
||||
<string name="labelCreated">Метка создана.</string>
|
||||
<string name="labelGeneralError">Что-то пошло не так. Пожалуйста, попытайтесь еще раз.</string>
|
||||
<string name="labelGeneralError">Something went wrong, please try again</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">Похоже, что токен доступа отозван, или вам не разрешено просматривать это содержимое. В случае отзыва токена, пожалуйста, выйдите из системы и войдите снова.</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">Вы действительно хотите удалить эту метку?</string>
|
||||
<string name="labelDeletePositiveButton">Да</string>
|
||||
<string name="labelDeleteNegativeButton">Отмена</string>
|
||||
|
||||
<!-- org tabbed layout str -->
|
||||
<string name="title_activity_org_detail">Активность организации</string>
|
||||
<string name="orgTabRepos">Репозитории</string>
|
||||
@ -282,30 +238,27 @@
|
||||
<string name="orgMember">Участники организации</string>
|
||||
<string name="orgTeamMembers">Участники команд организации</string>
|
||||
<!-- org tabbed layout str -->
|
||||
|
||||
<!-- create team -->
|
||||
<string name="newTeamTitle">Имя команды</string>
|
||||
<string name="newTeamDesc">Описание</string>
|
||||
<string name="newTeamPermission">Права</string>
|
||||
<string name="newTeamAccessControls">Контроль доступа</string>
|
||||
<string name="newTeamPermissionRead">Участники могут просматривать и клонировать репозитории команд.</string>
|
||||
<string name="newTeamPermissionWrite">Участники могут читать и изменять в репозиториях команды.</string>
|
||||
<string name="newTeamPermissionAdmin">Участники могут читать и изменять в репозиториях команды и добавлять к ним других участников.</string>
|
||||
<string name="teamNameEmpty">Укажите имя команды.</string>
|
||||
<string name="teamNameError">Название команды должно содержать только буквы, цифры, тире (-), подчеркивание (_) и точку (.)</string>
|
||||
<string name="teamPermissionEmpty">Укажите права.</string>
|
||||
<string name="teamDescError">В описании команды есть недопустимые символы.</string>
|
||||
<string name="teamDescLimit">В описании команды более 100 символов.</string>
|
||||
<string name="teamCreated">Команда создана успешно.</string>
|
||||
<string name="teamCreatedError">Что-то пошло не так. Пожалуйста, попытайтесь еще раз.</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">Редактировать комментарий</string>
|
||||
<string name="editCommentButtonText">Редактировать</string>
|
||||
<string name="editCommentUpdatedText">Комментарий обновлен</string>
|
||||
<!-- edit comment -->
|
||||
|
||||
<!-- add collaborator -->
|
||||
<string name="addCollaboratorTitle">Добавить сотрудника</string>
|
||||
<string name="addCollaboratorSearchHint">Поиск</string>
|
||||
@ -315,7 +268,6 @@
|
||||
<string name="removeCollaboratorToastText">С пользователя были сняты права сотрудника.</string>
|
||||
<string name="addCollaboratorToastText">Пользователь получает права сотрудника!</string>
|
||||
<!-- add collaborator -->
|
||||
|
||||
<!-- profile section -->
|
||||
<string name="profileTabFollowers">Подписчики</string>
|
||||
<string name="profileTabFollowing">Подписки</string>
|
||||
@ -324,12 +276,11 @@
|
||||
<string name="profileEmailTitle">Адрес эл. почты</string>
|
||||
<string name="emailAddedText">Новый адрес электронной почты успешно добавлен.</string>
|
||||
<string name="emailErrorEmpty">Адрес электронной почты пустой.</string>
|
||||
<string name="emailErrorInvalid">Недоступный адрес электронной почты.</string>
|
||||
<string name="emailErrorInUse">Адрес электронной почты уже используется.</string>
|
||||
<string name="emailErrorInvalid">Email address is not valid</string>
|
||||
<string name="emailErrorInUse">Email address is already in use</string>
|
||||
<string name="emailTypeText">Основной</string>
|
||||
<string name="profileTabEmails">Адреса эл. почты</string>
|
||||
<!-- profile section -->
|
||||
|
||||
<!-- single issue section -->
|
||||
<string name="singleIssueEditLabels">Добавить/удалить метку</string>
|
||||
<string name="labelsUpdated">Метки обновлены</string>
|
||||
@ -343,7 +294,6 @@
|
||||
<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>
|
||||
@ -354,15 +304,12 @@
|
||||
<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">Создать нового пользователя</string>
|
||||
<string name="adminUsers">Users</string>
|
||||
<string name="userRoleAdmin">Admin</string>
|
||||
<!-- admin -->
|
||||
|
||||
<!-- create user -->
|
||||
<string name="userFullNameText">Полное имя</string>
|
||||
<string name="userEmail">Адрес электронной почты</string>
|
||||
@ -374,12 +321,12 @@
|
||||
<string name="userCreatedText">Новый пользователь успешно создан</string>
|
||||
<string name="userExistsError">User already exists</string>
|
||||
<!-- create user -->
|
||||
|
||||
<!-- sponsors -->
|
||||
<!-- sponsors -->
|
||||
<!-- edit issue -->
|
||||
<string name="editIssueNavHeader">Редактировать задачу #%1$s</string>
|
||||
<string name="editIssueSuccessMessage">Задача отредактирована.</string>
|
||||
<!-- edit issue -->
|
||||
|
||||
<!-- release -->
|
||||
<string name="createRelease">Create Release</string>
|
||||
<string name="releaseTagNameText">Tag Name</string>
|
||||
@ -392,23 +339,20 @@
|
||||
<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">Открыть с помощью браузера</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">Branch Name</string>
|
||||
@ -420,18 +364,19 @@
|
||||
<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, contents and commit message are required.</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 выполненный</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">Готово</string>
|
||||
@ -451,8 +396,17 @@
|
||||
<string name="descriptionText">Описание</string>
|
||||
<string name="websiteText">Веб-сайт</string>
|
||||
<string name="locationText">Место расположения</string>
|
||||
<string name="openWebRepo">Открыть с помощью браузера</string>
|
||||
<string name="characters255Limit">Max 255 characters</string>
|
||||
<string name="emptyFields">Все поля обязательны для заполнения</string>
|
||||
<!-- generic copy -->
|
||||
|
||||
</resources>
|
||||
<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>
|
||||
|
412
app/src/main/res/values-sr/strings.xml
Normal 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–z A–Z 0–9 – _]</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–z A–Z 0–9 – _]</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–z A–Z 0–9 – _]</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 –, a–z, 0–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>
|
412
app/src/main/res/values-zh/strings.xml
Normal 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">Explore</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">创建里程碑</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">Explore</string>
|
||||
<!-- page titles -->
|
||||
<string name="appVersion">版本\u0020:\u0020</string>
|
||||
<string name="appBuild">构建编号 \u0020:\u0020</string>
|
||||
<string name="repoName">演示仓库</string>
|
||||
<string name="repoFullname">有组织的存储库</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">打开隐藏式导览侧选单</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">实例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">Repository name is not valid. [a–z A–Z 0–9 – _]</string>
|
||||
<string name="repoDescError">Repository description exceeds the max 255 characters limit</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">组织名称为空</string>
|
||||
<string name="orgNameErrorInvalid">Organization name is not valid, [a–z A–Z 0–9 – _]</string>
|
||||
<string name="orgDescError">Organization description exceeds the max 255 characters limit</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">关闭</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">详情</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">里程碑</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">默认分支</string>
|
||||
<string name="infoTabRepoSshUrl">SSH URL</string>
|
||||
<string name="infoTabRepoCloneUrl">Clone URL</string>
|
||||
<string name="infoTabRepoRepoUrl">Repo URL</string>
|
||||
<string name="infoTabRepoForksCount">派生仓库</string>
|
||||
<string name="infoTabRepoCreatedAt">Created</string>
|
||||
<string name="infoTabRepoUpdatedAt">Last Updated</string>
|
||||
<string name="timeAtText">at</string>
|
||||
<string name="createdText">Opened\u0020</string>
|
||||
<string name="dueDateText">Due Date</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">Something went wrong, please try again</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">Description</string>
|
||||
<string name="newMilestoneDueDate">Due Date</string>
|
||||
<string name="milestoneNameErrorEmpty">里程碑标题为空</string>
|
||||
<string name="milestoneNameErrorInvalid">Milestone title is not valid. [a–z A–Z 0–9 – _]</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">标题</string>
|
||||
<string name="newIssueAssigneesListTitle">Assignees</string>
|
||||
<string name="newIssueDescriptionTitle">Description</string>
|
||||
<string name="newIssueDueDateTitle">Due Date</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>
|
||||
<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">翻译</string>
|
||||
<string name="settingsDateTimeHeaderText">Date & Time</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">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">主屏幕</string>
|
||||
<string name="settingsHomeScreenSelectedText">我的仓库</string>
|
||||
<string name="settingshomeScreenSelectorDialogTitle">Select Home Screen</string>
|
||||
<!-- settings -->
|
||||
<string name="noMoreData">No more data available</string>
|
||||
<string name="createLabel">创建标签</string>
|
||||
<string name="menuTitleText">Repo Menu</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>
|
||||
<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">编辑</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>
|
||||
<!-- 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">取消</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">确定</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">No teams found</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">组织成员</string>
|
||||
<string name="orgTeamMembers">Organization team members</string>
|
||||
<!-- org tabbed layout str -->
|
||||
<!-- create team -->
|
||||
<string name="newTeamTitle">团队名称</string>
|
||||
<string name="newTeamDesc">Description</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">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">电子邮件</string>
|
||||
<!-- profile section -->
|
||||
<!-- single issue section -->
|
||||
<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">重新打开工单</string>
|
||||
<string name="issueStateClosed">已关闭工单</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">全选</string>
|
||||
<string name="de_select_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">无效的用户名</string>
|
||||
<string name="userInvalidEmail">无效的电子邮件</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">发布新版</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">草稿</string>
|
||||
<string name="tagNameErrorEmpty">Tag name 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">在浏览器中打开</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">提交</string>
|
||||
<string name="zipArchiveDownloadReleasesTab">Zip Archive</string>
|
||||
<string name="tarArchiveDownloadReleasesTab">Tar Archive</string>
|
||||
<!-- new file -->
|
||||
<string name="newFileNameTintCopy">File 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>
|
||||
<string name="newFileMessageTintCopy">Commit Message</string>
|
||||
<string name="newFileInvalidBranchName">Invalid branch name, may only contain –, a–z, 0–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">删除</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">最大 255 字符</string>
|
||||
<string name="emptyFields">所有字段都是必填项</string>
|
||||
<!-- generic copy -->
|
||||
<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>
|
@ -1,12 +1,12 @@
|
||||
<resources>
|
||||
<!-- These strings does not need translations -->
|
||||
|
||||
<string name="app_name" translatable="false">GitNex</string>
|
||||
<string name="appAuthor" translatable="false">Developer : M M Arif</string>
|
||||
<string name="appEmail" translatable="false">gitnex@gitnex.com</string>
|
||||
<string name="appRepo" translatable="false">Source code</string>
|
||||
<string name="appRepoLink" translatable="false">https://gitea.com/mmarif/GitNex</string>
|
||||
<string name="appRepoIssuesLink" translatable="false">https://gitea.com/mmarif/GitNex/issues</string>
|
||||
<string name="appRepoContributingLink" translatable="false">https://gitea.com/mmarif/GitNex/src/branch/master/CONTRIBUTING.md</string>
|
||||
<string name="appRepoLink" translatable="false">https://gitea.com/gitnex/GitNex</string>
|
||||
<string name="appRepoIssuesLink" translatable="false">https://gitea.com/gitnex/GitNex/issues</string>
|
||||
<string name="appRepoContributingLink" translatable="false">https://gitea.com/gitnex/GitNex/src/branch/master/CONTRIBUTING.md</string>
|
||||
<string name="appWebsite" translatable="false">Website</string>
|
||||
<string name="appWebsiteLink" translatable="false">https://gitnex.com/</string>
|
||||
<string name="commitPage" translatable="false">Your Gitea version\n</string>
|
||||
@ -14,13 +14,11 @@
|
||||
<string name="supportLinkPatreon" translatable="false">https://www.patreon.com/mmarif</string>
|
||||
<string name="appVerBuild" translatable="false">%1$s / build %2$d</string>
|
||||
<string name="appDesc" translatable="false">GitNex is a free, open-source Android client for Git repository management tool Gitea. GitNex is Licensed under GPLv3.\n\nThanks to all the contributors and sponsors for your generous work and donations.</string>
|
||||
<!-- These strings does not need translations -->
|
||||
<string name="crowdInLink" translatable="false">https://crowdin.com/project/gitnex</string>
|
||||
|
||||
<!-- links text -->
|
||||
<string name="appRepoIssuesText" translatable="false">Report issues at Gitea</string>
|
||||
<string name="supportText" translatable="false">Support the App on Liberapay</string>
|
||||
<string name="supportTextPatreon" translatable="false">Become a Patreon</string>
|
||||
<!-- links text -->
|
||||
|
||||
<!-- menu items -->
|
||||
<string name="navMyRepos">My Repositories</string>
|
||||
@ -32,6 +30,7 @@
|
||||
<string name="navAbout">About</string>
|
||||
<string name="navRate">Rate GitNex</string>
|
||||
<string name="navLogout">Logout</string>
|
||||
<string name="navExplore">Explore</string>
|
||||
<!-- menu items -->
|
||||
|
||||
<!-- page titles -->
|
||||
@ -55,6 +54,7 @@
|
||||
<string name="pageTitleCreateTeam">New Team</string>
|
||||
<string name="pageTitleAddEmail">Add Email Address</string>
|
||||
<string name="pageTitleNewFile">New File</string>
|
||||
<string name="pageTitleExplore">Explore</string>
|
||||
<!-- page titles -->
|
||||
|
||||
<string name="appVersion">Version\u0020:\u0020</string>
|
||||
@ -91,7 +91,7 @@
|
||||
<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="protocolDelimiter">://</string>
|
||||
<string name="protocolDelimiter" translatable="false">://</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>
|
||||
@ -123,14 +123,15 @@
|
||||
<string name="orgContentAvatar">Org</string>
|
||||
<string name="repoContentAvatar">Repo</string>
|
||||
<string name="privateAvatar">Pri</string>
|
||||
<string name="repoStars">12345</string>
|
||||
<string name="repoWatchers">98324</string>
|
||||
<string name="repoIssues">54321</string>
|
||||
<string name="repoStars" translatable="false">12345</string>
|
||||
<string name="repoWatchers" translatable="false">98324</string>
|
||||
<string name="repoIssues" translatable="false">54321</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>
|
||||
@ -154,13 +155,13 @@
|
||||
<string name="infoTabRepoForksCount">Forks</string>
|
||||
<string name="infoTabRepoCreatedAt">Created</string>
|
||||
<string name="infoTabRepoUpdatedAt">Last Updated</string>
|
||||
<string name="infoTabRepoDummyTime">2018–10–30 08:25:25</string>
|
||||
<string name="infoTabRepoBlank">…</string>
|
||||
<string name="infoTabRepoZero">0</string>
|
||||
<string name="infoTabRepoDefaultBranchText">master</string>
|
||||
<string name="infoTabRepoDummyTime" translatable="false">2018–10–30 08:25:25</string>
|
||||
<string name="infoTabRepoBlank" translatable="false">…</string>
|
||||
<string name="infoTabRepoZero" translatable="false">0</string>
|
||||
<string name="infoTabRepoDefaultBranchText" translatable="false">master</string>
|
||||
|
||||
<string name="timeAtText">at</string>
|
||||
<string name="hash">#</string>
|
||||
<string name="hash" translatable="false">#</string>
|
||||
<string name="createdText">Opened\u0020</string>
|
||||
<string name="dueDateText">Due Date</string>
|
||||
<string name="issueStatusTextOpen">Status: open</string>
|
||||
@ -172,7 +173,7 @@
|
||||
<string name="issueTypeIssue">Type: Issue</string>
|
||||
<string name="issueTypePullRequest">Type: Pull Request</string>
|
||||
<string name="issueCommenter">Commenter:\u0020</string>
|
||||
<string name="issueTitleWithId">#%1$d %2$s</string>
|
||||
<string name="issueTitleWithId" translatable="false">#%1$d %2$s</string>
|
||||
<string name="issueMilestone">Milestone %1$s</string>
|
||||
<string name="dueDate">Due %1$s</string>
|
||||
<string name="createdTime">Opened %1$s</string>
|
||||
@ -183,7 +184,7 @@
|
||||
<string name="commentError">Something went wrong, please try again</string>
|
||||
|
||||
<string name="generalImgContentText">Avatar</string>
|
||||
<string name="generalPageTitle">GitNex</string>
|
||||
<string name="generalPageTitle" translatable="false">GitNex</string>
|
||||
|
||||
<string name="noDataMilestonesTab">No milestones found</string>
|
||||
|
||||
@ -209,7 +210,7 @@
|
||||
<string name="newMilestoneTitle">Title</string>
|
||||
<string name="newMilestoneDescription">Description</string>
|
||||
<string name="newMilestoneDueDate">Due Date</string>
|
||||
<string name="setDueDate">%1$d-%2$d-%3$d</string>
|
||||
<string name="setDueDate" translatable="false">%1$d-%2$d-%3$d</string>
|
||||
<string name="milestoneNameErrorEmpty">Milestone title is empty</string>
|
||||
<string name="milestoneNameErrorInvalid">Milestone title is not valid. [a–z A–Z 0–9 – _]</string>
|
||||
<string name="milestoneDescError">Milestone description exceeds the max 255 characters limit</string>
|
||||
@ -229,8 +230,8 @@
|
||||
<string name="newIssueDueDateTitle">Due Date</string>
|
||||
<string name="newIssueMilestoneTitle">Milestone</string>
|
||||
<string name="newIssueLabelsTitle">Labels</string>
|
||||
<string name="spinnerMilestoneText">%1$s [%2$s]</string>
|
||||
<string name="dialogAssignessText">%1$s - @%2$s</string>
|
||||
<string name="spinnerMilestoneText" translatable="false">%1$s [%2$s]</string>
|
||||
<string name="dialogAssignessText" translatable="false">%1$s - @%2$s</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>
|
||||
@ -258,16 +259,16 @@
|
||||
<string name="settingshomeScreenSelectorDialogTitle">Select Home Screen</string>
|
||||
<!-- settings -->
|
||||
|
||||
<string name="noMoreData">No more data available.</string>
|
||||
<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="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="labelGeneralError">Something went wrong, please try again</string>
|
||||
<string name="labelUpdated">Label updated.</string>
|
||||
|
||||
<string name="noDataLabelsTab">No labels found</string>
|
||||
@ -286,7 +287,7 @@
|
||||
<!-- 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="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>
|
||||
@ -314,18 +315,18 @@
|
||||
<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="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="newTeamPermissionValues" translatable="false">%1$s%2$s,\u0020</string>
|
||||
<string name="newTeamPermissionValuesFinal" translatable="false">%1$s%2$s,\u0020</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>
|
||||
<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 -->
|
||||
@ -352,8 +353,8 @@
|
||||
<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="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="usernameWithAt" translatable="false">\u0040\u0020%1$s</string>
|
||||
@ -469,6 +470,12 @@
|
||||
|
||||
<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>
|
||||
@ -495,4 +502,16 @@
|
||||
<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>
|
||||
<string name="filesBreadcrumbRoot" translatable="false">Root</string>
|
||||
|
||||
</resources>
|
||||
|
@ -47,5 +47,13 @@
|
||||
<item name="android:textSize">16sp</item>
|
||||
</style>
|
||||
|
||||
<style name="lineDividerHorizontal">
|
||||
<item name="android:layout_width">match_parent</item>
|
||||
<item name="android:layout_height">1dp</item>
|
||||
<item name="android:background">@color/divider</item>
|
||||
<item name="android:layout_marginStart">64dp</item>
|
||||
<item name="android:layout_marginTop">10dp</item>
|
||||
<item name="android:layout_marginBottom">10dp</item>
|
||||
</style>
|
||||
|
||||
</resources>
|
||||
|
@ -7,7 +7,7 @@ buildscript {
|
||||
jcenter()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:3.5.0'
|
||||
classpath 'com.android.tools.build:gradle:3.5.1'
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -5,4 +5,4 @@
|
||||
- Enhancement: Redesign Profile screen
|
||||
- Enhancement: Added edited status for single issue and comments
|
||||
|
||||
Release notes: https://gitlab.com/mmarif4u/gitnex/releases
|
||||
Release notes: https://gitea.com/gitnex/GitNex/releases
|
||||
|
@ -7,4 +7,4 @@
|
||||
- Enhancement: Added edited status for single issue and comments
|
||||
|
||||
And many more, check the release notes.
|
||||
https://gitlab.com/mmarif4u/gitnex/releases
|
||||
https://gitea.com/gitnex/GitNex/releases
|
||||
|
@ -7,4 +7,4 @@
|
||||
- Enhancement: New nav background image
|
||||
|
||||
Release Notes
|
||||
https://gitlab.com/mmarif4u/gitnex/releases
|
||||
https://gitea.com/gitnex/GitNex/releases
|
||||
|
@ -4,4 +4,4 @@
|
||||
- Fixed: Layout fixes across the app
|
||||
|
||||
And many more, check the release notes.
|
||||
https://gitlab.com/mmarif4u/gitnex/releases
|
||||
https://gitea.com/gitnex/GitNex/releases
|
||||
|
@ -9,4 +9,4 @@
|
||||
- Enhancement: New nav background image
|
||||
|
||||
For more, check the release notes.
|
||||
https://gitlab.com/mmarif4u/gitnex/releases
|
||||
https://gitea.com/gitnex/GitNex/releases
|
||||
|
@ -9,4 +9,4 @@
|
||||
- Fixed: Crash when issues and info tabs are frequently switched
|
||||
|
||||
For more, check the release notes.
|
||||
https://gitlab.com/mmarif4u/gitnex/releases
|
||||
https://gitea.com/gitnex/GitNex/releases
|
||||
|
@ -10,4 +10,4 @@
|
||||
- Enhancement: German and Russian translation updates
|
||||
|
||||
For more, check the release notes.
|
||||
https://gitlab.com/mmarif4u/gitnex/releases
|
||||
https://gitea.com/gitnex/GitNex/releases
|
||||
|
@ -7,4 +7,4 @@
|
||||
- Fixed: Crash when issue badge is disabled
|
||||
|
||||
For more, check the release notes.
|
||||
https://gitlab.com/mmarif4u/gitnex/releases
|
||||
https://gitea.com/gitnex/GitNex/releases
|
||||
|
@ -4,4 +4,4 @@
|
||||
- Fixed: Crash when empty password with OTP is used
|
||||
|
||||
For more, check the release notes.
|
||||
https://gitea.com/mmarif/GitNex/releases
|
||||
https://gitea.com/gitnex/GitNex/releases
|
||||
|
@ -11,4 +11,4 @@
|
||||
- Fixed: Crash when tabs are moved quickly
|
||||
- Fixed: Commit hash url in branches tab
|
||||
|
||||
For more, check the release notes.
|
||||
For more, check the release notes.
|
||||
|
@ -13,4 +13,4 @@
|
||||
- Bugfix: Open issues tab color scheme
|
||||
|
||||
For more, check the release notes.
|
||||
https://gitea.com/mmarif/GitNex/releases
|
||||
https://gitea.com/gitnex/GitNex/releases
|
||||
|
@ -3,4 +3,4 @@ Bugfix: Milestone progress bar fix
|
||||
Bugfix: Create new issue enable/disable fix
|
||||
|
||||
For more, check the release notes.
|
||||
https://gitea.com/mmarif/GitNex/releases
|
||||
https://gitea.com/gitnex/GitNex/releases
|
||||
|
4
fastlane/metadata/android/en-US/changelogs/62.txt
Normal file
@ -0,0 +1,4 @@
|
||||
Bugfix: crash when my repo, starred repos are accessed without repo avatar. old Gitea instances
|
||||
|
||||
For more, check the release notes.
|
||||
https://gitea.com/gitnex/GitNex/releases
|
13
fastlane/metadata/android/en-US/changelogs/63.txt
Normal file
@ -0,0 +1,13 @@
|
||||
2.1.3
|
||||
Bugfix: another old Gitea instances API issue
|
||||
|
||||
2.1.0
|
||||
- New: Font - Roboto
|
||||
- New: Milestone progress bar @6543
|
||||
- New: Redesign issues list
|
||||
- New: Copy issue URL to clipboard @6543
|
||||
- New: Redesign milestones list
|
||||
- New: Added repository avatars
|
||||
|
||||
For more, check the release notes.
|
||||
https://gitea.com/gitnex/GitNex/releases
|
13
fastlane/metadata/android/en-US/changelogs/70.txt
Normal 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
|