From c38e98a49bbda29b4e94f7fb1419c63dff0702d8 Mon Sep 17 00:00:00 2001 From: veyndan Date: Fri, 30 Jun 2017 21:43:45 +0100 Subject: [PATCH 1/9] Redesign Nearby Places list items --- app/src/main/res/layout/item_place.xml | 120 +++++++++++++------------ app/src/main/res/values/colors.xml | 1 - app/src/main/res/values/dimens.xml | 3 - 3 files changed, 61 insertions(+), 63 deletions(-) diff --git a/app/src/main/res/layout/item_place.xml b/app/src/main/res/layout/item_place.xml index 1c83aef53..88784857b 100644 --- a/app/src/main/res/layout/item_place.xml +++ b/app/src/main/res/layout/item_place.xml @@ -1,66 +1,68 @@ - - + + + + + android:layout_height="wrap_content" + android:layout_alignTop="@id/distance" + android:layout_marginLeft="16dp" + android:layout_marginStart="16dp" + android:layout_toEndOf="@id/icon" + android:layout_toLeftOf="@id/distance" + android:layout_toRightOf="@id/icon" + android:layout_toStartOf="@id/distance" + android:ellipsize="end" + android:maxLines="2" + android:textAppearance="@style/TextAppearance.AppCompat.Body2" + tools:text="@string/placeholder_place_name" + /> - + - - - - - - - - \ No newline at end of file + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 01401aa47..828d5a600 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -3,7 +3,6 @@ - #90000000 #ffffffff #000000 #ffffff diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index fe2674a9a..40c859118 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -1,7 +1,4 @@ - 120dp - 4dp - 8dp 240dp 48dp From ca4b99a1cc2b7401081d8e2fe948021e0078c168 Mon Sep 17 00:00:00 2001 From: Paul Hawke Date: Sat, 26 Aug 2017 15:42:44 -0500 Subject: [PATCH 2/9] Product flavors to allow switching between the production and the beta-cluster Wikimedia servers. --- app/build.gradle | 23 ++++++++++++++++++ .../res/drawable-hdpi/ic_launcher.png | Bin 0 -> 4358 bytes .../res/drawable-mdpi/ic_launcher.png | Bin 0 -> 3019 bytes .../res/drawable-xhdpi/ic_launcher.png | Bin 0 -> 5649 bytes .../free/nrw/commons/CommonsApplication.java | 8 +----- .../java/fr/free/nrw/commons/PageTitle.java | 4 +-- .../main/java/fr/free/nrw/commons/Utils.java | 11 +++++---- .../fr/free/nrw/commons/mwapi/LogBuilder.java | 4 +-- 8 files changed, 34 insertions(+), 16 deletions(-) create mode 100644 app/src/betaDebug/res/drawable-hdpi/ic_launcher.png create mode 100644 app/src/betaDebug/res/drawable-mdpi/ic_launcher.png create mode 100644 app/src/betaDebug/res/drawable-xhdpi/ic_launcher.png diff --git a/app/build.gradle b/app/build.gradle index 51d6f56b0..4358c4699 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -77,6 +77,29 @@ android { } } + productFlavors { + prod { + buildConfigField "String", "WIKIMEDIA_API_HOST", "\"https://commons.wikimedia.org/w/api.php\"" + buildConfigField "String", "WIKIMEDIA_FORGE_API_HOST", "\"https://tools.wmflabs.org/\"" + buildConfigField "String", "IMAGE_URL_BASE", "\"https://upload.wikimedia.org/wikipedia/commons\"" + buildConfigField "String", "HOME_URL", "\"https://commons.wikimedia.org/wiki/\"" + buildConfigField "String", "MOBILE_HOME_URL", "\"https://commons.m.wikimedia.org/wiki/\"" + buildConfigField "String", "EVENTLOG_URL", "\"https://www.wikimedia.org/beacon/event\"" + buildConfigField "String", "EVENTLOG_WIKI", "\"commonswiki\"" + } + + beta { + // What values do we need to hit the BETA versions of the site / api ? + buildConfigField "String", "WIKIMEDIA_API_HOST", "\"https://commons.wikimedia.beta.wmflabs.org/w/api.php\"" + buildConfigField "String", "WIKIMEDIA_FORGE_API_HOST", "\"https://tools.wmflabs.org/\"" + buildConfigField "String", "IMAGE_URL_BASE", "\"https://upload.beta.wmflabs.org/wikipedia/commons\"" + buildConfigField "String", "HOME_URL", "\"https://commons.wikimedia.beta.wmflabs.org/wiki/\"" + buildConfigField "String", "MOBILE_HOME_URL", "\"https://commons.m.wikimedia.beta.wmflabs.org/wiki/\"" + buildConfigField "String", "EVENTLOG_URL", "\"https://commons.wikimedia.beta.wmflabs.org/beacon/event\"" + buildConfigField "String", "EVENTLOG_WIKI", "\"commonswiki\"" + } + } + lintOptions { disable 'MissingTranslation' disable 'ExtraTranslation' diff --git a/app/src/betaDebug/res/drawable-hdpi/ic_launcher.png b/app/src/betaDebug/res/drawable-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..46c0a42022eac5465a5e405a44af210c567ad32a GIT binary patch literal 4358 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 literal 0 HcmV?d00001 diff --git a/app/src/betaDebug/res/drawable-mdpi/ic_launcher.png b/app/src/betaDebug/res/drawable-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..2e549967676e6081ad621be139ee59b540acbc4e GIT binary patch literal 3019 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 N002ovPDHLkV1jl@)<*yU literal 0 HcmV?d00001 diff --git a/app/src/betaDebug/res/drawable-xhdpi/ic_launcher.png b/app/src/betaDebug/res/drawable-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..0f0c702ed6bd8624ad553789ae921622a24d9cbc GIT binary patch literal 5649 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 literal 0 HcmV?d00001 diff --git a/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java b/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java index b7b75fae5..f4ce71dc3 100644 --- a/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java +++ b/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java @@ -47,12 +47,6 @@ import timber.log.Timber; public class CommonsApplication extends Application { private Account currentAccount = null; // Unlike a savings account... - public static final String API_URL = "https://commons.wikimedia.org/w/api.php"; - public static final String IMAGE_URL_BASE = "https://upload.wikimedia.org/wikipedia/commons"; - public static final String HOME_URL = "https://commons.wikimedia.org/wiki/"; - public static final String MOBILE_HOME_URL = "https://commons.m.wikimedia.org/wiki/"; - public static final String EVENTLOG_URL = "https://www.wikimedia.org/beacon/event"; - public static final String EVENTLOG_WIKI = "commonswiki"; public static final Object[] EVENT_UPLOAD_ATTEMPT = {"MobileAppUploadAttempts", 5334329L}; public static final Object[] EVENT_LOGIN_ATTEMPT = {"MobileAppLoginAttempts", 5257721L}; @@ -88,7 +82,7 @@ public class CommonsApplication extends Application { public MediaWikiApi getMWApi() { if (api == null) { - api = new ApacheHttpClientMediaWikiApi(API_URL); + api = new ApacheHttpClientMediaWikiApi(BuildConfig.WIKIMEDIA_API_HOST); } return api; } diff --git a/app/src/main/java/fr/free/nrw/commons/PageTitle.java b/app/src/main/java/fr/free/nrw/commons/PageTitle.java index eb8a61284..6229e7ef9 100644 --- a/app/src/main/java/fr/free/nrw/commons/PageTitle.java +++ b/app/src/main/java/fr/free/nrw/commons/PageTitle.java @@ -58,7 +58,7 @@ public class PageTitle { */ @NonNull public Uri getCanonicalUri() { - String uriStr = CommonsApplication.HOME_URL + Uri.encode(getPrefixedText(), ":/"); + String uriStr = BuildConfig.HOME_URL + Uri.encode(getPrefixedText(), ":/"); return Uri.parse(uriStr); } @@ -71,7 +71,7 @@ public class PageTitle { */ @NonNull public Uri getMobileUri() { - String uriStr = CommonsApplication.MOBILE_HOME_URL + Uri.encode(getPrefixedText(), ":/"); + String uriStr = BuildConfig.MOBILE_HOME_URL + Uri.encode(getPrefixedText(), ":/"); return Uri.parse(uriStr); } diff --git a/app/src/main/java/fr/free/nrw/commons/Utils.java b/app/src/main/java/fr/free/nrw/commons/Utils.java index 7e75f8718..ebebd4891 100644 --- a/app/src/main/java/fr/free/nrw/commons/Utils.java +++ b/app/src/main/java/fr/free/nrw/commons/Utils.java @@ -40,7 +40,6 @@ import javax.xml.transform.stream.StreamResult; import fr.free.nrw.commons.settings.Prefs; import timber.log.Timber; - public class Utils { // Get SHA1 of file from input stream @@ -80,10 +79,12 @@ public class Utils { } } - /** Fix Html.fromHtml is deprecated problem + /** + * Fix Html.fromHtml is deprecated problem + * * @param source provided Html string * @return returned Spanned of appropriate method according to version check - * */ + */ public static Spanned fromHtml(String source) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { return Html.fromHtml(source, Html.FROM_HTML_MODE_LEGACY); @@ -127,7 +128,7 @@ public class Utils { public static String makeThumbBaseUrl(String filename) { String name = new PageTitle(filename).getPrefixedText(); String sha = new String(Hex.encodeHex(DigestUtils.md5(name))); - return String.format("%s/%s/%s/%s", CommonsApplication.IMAGE_URL_BASE, sha.substring(0, 1), sha.substring(0, 2), urlEncode(name)); + return String.format("%s/%s/%s/%s", BuildConfig.IMAGE_URL_BASE, sha.substring(0, 1), sha.substring(0, 2), urlEncode(name)); } public static String getStringFromDOM(Node dom) { @@ -277,6 +278,6 @@ public class Utils { } public static boolean isDarkTheme(Context context) { - return PreferenceManager.getDefaultSharedPreferences(context).getBoolean("theme",false); + return PreferenceManager.getDefaultSharedPreferences(context).getBoolean("theme", false); } } diff --git a/app/src/main/java/fr/free/nrw/commons/mwapi/LogBuilder.java b/app/src/main/java/fr/free/nrw/commons/mwapi/LogBuilder.java index b512f9647..eabbbf82e 100644 --- a/app/src/main/java/fr/free/nrw/commons/mwapi/LogBuilder.java +++ b/app/src/main/java/fr/free/nrw/commons/mwapi/LogBuilder.java @@ -41,12 +41,12 @@ public class LogBuilder { try { fullData.put("schema", schema); fullData.put("revision", rev); - fullData.put("wiki", CommonsApplication.EVENTLOG_WIKI); + fullData.put("wiki", BuildConfig.EVENTLOG_WIKI); data.put("device", EventLog.DEVICE); data.put("platform", "Android/" + Build.VERSION.RELEASE); data.put("appversion", "Android/" + BuildConfig.VERSION_NAME); fullData.put("event", data); - return new URL(CommonsApplication.EVENTLOG_URL + "?" + Utils.urlEncode(fullData.toString()) + ";"); + return new URL(BuildConfig.EVENTLOG_URL + "?" + Utils.urlEncode(fullData.toString()) + ";"); } catch (MalformedURLException | JSONException e) { throw new RuntimeException(e); } From 58013ef10c012f97b6e4d340901e7e26aca4ffcd Mon Sep 17 00:00:00 2001 From: Paul Hawke Date: Sat, 26 Aug 2017 18:00:02 -0500 Subject: [PATCH 3/9] Moved the test to use robolectric and updated it to be flavor aware. --- .../fr/free/nrw/commons/PageTitleTest.java | 43 +++++++++++-------- 1 file changed, 26 insertions(+), 17 deletions(-) rename app/src/{androidTest => test}/java/fr/free/nrw/commons/PageTitleTest.java (54%) diff --git a/app/src/androidTest/java/fr/free/nrw/commons/PageTitleTest.java b/app/src/test/java/fr/free/nrw/commons/PageTitleTest.java similarity index 54% rename from app/src/androidTest/java/fr/free/nrw/commons/PageTitleTest.java rename to app/src/test/java/fr/free/nrw/commons/PageTitleTest.java index 5c83ef691..cd10c2828 100644 --- a/app/src/androidTest/java/fr/free/nrw/commons/PageTitleTest.java +++ b/app/src/test/java/fr/free/nrw/commons/PageTitleTest.java @@ -1,61 +1,70 @@ package fr.free.nrw.commons; -import android.support.test.runner.AndroidJUnit4; - import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; +import org.robolectric.RobolectricTestRunner; +import org.robolectric.annotation.Config; import java.net.URLEncoder; import static org.hamcrest.CoreMatchers.is; -// TODO: use Robolectric and make it runnable without a connected device -@RunWith(AndroidJUnit4.class) +@RunWith(RobolectricTestRunner.class) +@Config(constants = BuildConfig.class, sdk = 21) public class PageTitleTest { - @Test public void displayTextShouldNotBeUnderscored() { + @Test + public void displayTextShouldNotBeUnderscored() { Assert.assertThat(new PageTitle("Ex_1 ").getDisplayText(), is("Ex 1")); } - @Test public void moreThanTwoColons() { + @Test + public void moreThanTwoColons() { Assert.assertThat(new PageTitle("File:sample:a.jpg").getPrefixedText(), is("File:Sample:a.jpg")); } - @Test public void getTextShouldReturnWithoutNamespace() { + @Test + public void getTextShouldReturnWithoutNamespace() { Assert.assertThat(new PageTitle("File:sample.jpg").getText(), is("Sample.jpg")); } - @Test public void capitalizeNameAfterNamespace() { + @Test + public void capitalizeNameAfterNamespace() { Assert.assertThat(new PageTitle("File:sample.jpg").getPrefixedText(), is("File:Sample.jpg")); } - @Test public void prefixedTextShouldBeUnderscored() { + @Test + public void prefixedTextShouldBeUnderscored() { Assert.assertThat(new PageTitle("Ex 1 ").getPrefixedText(), is("Ex_1")); } - @Test public void getMobileUriForTest() { + @Test + public void getMobileUriForTest() { Assert.assertThat(new PageTitle("Test").getMobileUri().toString(), - is("https://commons.m.wikimedia.org/wiki/Test")); + is(BuildConfig.MOBILE_HOME_URL + "Test")); } - @Test public void spaceBecomesUnderscoreInUri() { + @Test + public void spaceBecomesUnderscoreInUri() { Assert.assertThat(new PageTitle("File:Ex 1.jpg").getCanonicalUri().toString(), - is("https://commons.wikimedia.org/wiki/File:Ex_1.jpg")); + is(BuildConfig.HOME_URL + "File:Ex_1.jpg")); } - @Test public void leaveSubpageNamesUncapitalizedInUri() { + @Test + public void leaveSubpageNamesUncapitalizedInUri() { Assert.assertThat(new PageTitle("User:Ex/subpage").getCanonicalUri().toString(), - is("https://commons.wikimedia.org/wiki/User:Ex/subpage")); + is(BuildConfig.HOME_URL + "User:Ex/subpage")); } - @Test public void unicodeUri() throws Throwable { + @Test + public void unicodeUri() throws Throwable { Assert.assertThat(new PageTitle("User:例").getCanonicalUri().toString(), - is("https://commons.wikimedia.org/wiki/User:" + URLEncoder.encode("例", "utf-8"))); + is(BuildConfig.HOME_URL + "User:" + URLEncoder.encode("例", "utf-8"))); } } From 1f1a2822e8387821042b2ae0da34c0579e08e91a Mon Sep 17 00:00:00 2001 From: Paul Hawke Date: Sat, 26 Aug 2017 21:05:41 -0500 Subject: [PATCH 4/9] Moved 2 other tests over to use robolectric. --- .../java/fr/free/nrw/commons/MediaTest.java | 23 -------- .../nrw/commons/NearbyControllerTest.java | 57 ------------------- .../java/fr/free/nrw/commons/MediaTest.java | 25 ++++++++ .../nrw/commons/NearbyControllerTest.java | 44 ++++++++++++++ .../fr/free/nrw/commons/PageTitleTest.java | 20 +++---- 5 files changed, 79 insertions(+), 90 deletions(-) delete mode 100644 app/src/androidTest/java/fr/free/nrw/commons/MediaTest.java delete mode 100644 app/src/androidTest/java/fr/free/nrw/commons/NearbyControllerTest.java create mode 100644 app/src/test/java/fr/free/nrw/commons/MediaTest.java create mode 100644 app/src/test/java/fr/free/nrw/commons/NearbyControllerTest.java diff --git a/app/src/androidTest/java/fr/free/nrw/commons/MediaTest.java b/app/src/androidTest/java/fr/free/nrw/commons/MediaTest.java deleted file mode 100644 index ecb465293..000000000 --- a/app/src/androidTest/java/fr/free/nrw/commons/MediaTest.java +++ /dev/null @@ -1,23 +0,0 @@ -package fr.free.nrw.commons; - -import android.support.test.runner.AndroidJUnit4; - -import org.junit.Assert; -import org.junit.Test; -import org.junit.runner.RunWith; - -import static org.hamcrest.CoreMatchers.is; - -// TODO: use Robolectric and make it runnable without a connected device -@RunWith(AndroidJUnit4.class) -public class MediaTest { - @Test public void displayTitleShouldStripExtension() { - Media m = new Media("File:Example.jpg"); - Assert.assertThat(m.getDisplayTitle(), is("Example")); - } - - @Test public void displayTitleShouldUseSpaceForUnderscore() { - Media m = new Media("File:Example 1_2.jpg"); - Assert.assertThat(m.getDisplayTitle(), is("Example 1 2")); - } -} diff --git a/app/src/androidTest/java/fr/free/nrw/commons/NearbyControllerTest.java b/app/src/androidTest/java/fr/free/nrw/commons/NearbyControllerTest.java deleted file mode 100644 index aa32d2637..000000000 --- a/app/src/androidTest/java/fr/free/nrw/commons/NearbyControllerTest.java +++ /dev/null @@ -1,57 +0,0 @@ -package fr.free.nrw.commons; - -import android.content.Context; -import android.support.test.InstrumentationRegistry; -import android.support.test.runner.AndroidJUnit4; - -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; - -import java.util.ArrayList; -import java.util.List; - -import fr.free.nrw.commons.location.LatLng; -import fr.free.nrw.commons.nearby.NearbyBaseMarker; -import fr.free.nrw.commons.nearby.NearbyController; -import fr.free.nrw.commons.nearby.Place; - -import static org.hamcrest.CoreMatchers.is; - -@RunWith(AndroidJUnit4.class) -public class NearbyControllerTest { - private Context instrumentationContext; - - @Before - public void setup() { - instrumentationContext = InstrumentationRegistry.getTargetContext(); - } - - @Test public void testNullAttractions() { - LatLng location = new LatLng(0, 0, 0); - - List options = - NearbyController.loadAttractionsFromLocationToBaseMarkerOptions( - location, - null, - instrumentationContext - ); - - Assert.assertThat(options.size(), is(0)); - } - - @Test public void testEmptyList() { - LatLng location = new LatLng(0, 0, 0); - List emptyList = new ArrayList<>(); - - List options = - NearbyController.loadAttractionsFromLocationToBaseMarkerOptions( - location, - emptyList, - instrumentationContext - ); - - Assert.assertThat(options.size(), is(0)); - } -} diff --git a/app/src/test/java/fr/free/nrw/commons/MediaTest.java b/app/src/test/java/fr/free/nrw/commons/MediaTest.java new file mode 100644 index 000000000..21cfc2c34 --- /dev/null +++ b/app/src/test/java/fr/free/nrw/commons/MediaTest.java @@ -0,0 +1,25 @@ +package fr.free.nrw.commons; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.robolectric.RobolectricTestRunner; +import org.robolectric.annotation.Config; + +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertThat; + +@RunWith(RobolectricTestRunner.class) +@Config(constants = BuildConfig.class, sdk = 21) +public class MediaTest { + @Test + public void displayTitleShouldStripExtension() { + Media m = new Media("File:Example.jpg"); + assertThat(m.getDisplayTitle(), is("Example")); + } + + @Test + public void displayTitleShouldUseSpaceForUnderscore() { + Media m = new Media("File:Example 1_2.jpg"); + assertThat(m.getDisplayTitle(), is("Example 1 2")); + } +} diff --git a/app/src/test/java/fr/free/nrw/commons/NearbyControllerTest.java b/app/src/test/java/fr/free/nrw/commons/NearbyControllerTest.java new file mode 100644 index 000000000..6ae2063da --- /dev/null +++ b/app/src/test/java/fr/free/nrw/commons/NearbyControllerTest.java @@ -0,0 +1,44 @@ +package fr.free.nrw.commons; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.robolectric.RobolectricTestRunner; +import org.robolectric.RuntimeEnvironment; +import org.robolectric.annotation.Config; + +import java.util.ArrayList; +import java.util.List; + +import fr.free.nrw.commons.location.LatLng; +import fr.free.nrw.commons.nearby.NearbyBaseMarker; +import fr.free.nrw.commons.nearby.Place; + +import static fr.free.nrw.commons.nearby.NearbyController.loadAttractionsFromLocationToBaseMarkerOptions; +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertThat; + +@RunWith(RobolectricTestRunner.class) +@Config(constants = BuildConfig.class, sdk = 21) +public class NearbyControllerTest { + + @Test + public void testNullAttractions() { + LatLng location = new LatLng(0, 0, 0); + + List options = loadAttractionsFromLocationToBaseMarkerOptions( + location, null, RuntimeEnvironment.application); + + assertThat(options.size(), is(0)); + } + + @Test + public void testEmptyList() { + LatLng location = new LatLng(0, 0, 0); + List emptyList = new ArrayList<>(); + + List options = loadAttractionsFromLocationToBaseMarkerOptions( + location, emptyList, RuntimeEnvironment.application); + + assertThat(options.size(), is(0)); + } +} diff --git a/app/src/test/java/fr/free/nrw/commons/PageTitleTest.java b/app/src/test/java/fr/free/nrw/commons/PageTitleTest.java index cd10c2828..455b3fbd0 100644 --- a/app/src/test/java/fr/free/nrw/commons/PageTitleTest.java +++ b/app/src/test/java/fr/free/nrw/commons/PageTitleTest.java @@ -1,6 +1,5 @@ package fr.free.nrw.commons; -import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RobolectricTestRunner; @@ -9,62 +8,63 @@ import org.robolectric.annotation.Config; import java.net.URLEncoder; import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertThat; @RunWith(RobolectricTestRunner.class) @Config(constants = BuildConfig.class, sdk = 21) public class PageTitleTest { @Test public void displayTextShouldNotBeUnderscored() { - Assert.assertThat(new PageTitle("Ex_1 ").getDisplayText(), + assertThat(new PageTitle("Ex_1 ").getDisplayText(), is("Ex 1")); } @Test public void moreThanTwoColons() { - Assert.assertThat(new PageTitle("File:sample:a.jpg").getPrefixedText(), + assertThat(new PageTitle("File:sample:a.jpg").getPrefixedText(), is("File:Sample:a.jpg")); } @Test public void getTextShouldReturnWithoutNamespace() { - Assert.assertThat(new PageTitle("File:sample.jpg").getText(), + assertThat(new PageTitle("File:sample.jpg").getText(), is("Sample.jpg")); } @Test public void capitalizeNameAfterNamespace() { - Assert.assertThat(new PageTitle("File:sample.jpg").getPrefixedText(), + assertThat(new PageTitle("File:sample.jpg").getPrefixedText(), is("File:Sample.jpg")); } @Test public void prefixedTextShouldBeUnderscored() { - Assert.assertThat(new PageTitle("Ex 1 ").getPrefixedText(), + assertThat(new PageTitle("Ex 1 ").getPrefixedText(), is("Ex_1")); } @Test public void getMobileUriForTest() { - Assert.assertThat(new PageTitle("Test").getMobileUri().toString(), + assertThat(new PageTitle("Test").getMobileUri().toString(), is(BuildConfig.MOBILE_HOME_URL + "Test")); } @Test public void spaceBecomesUnderscoreInUri() { - Assert.assertThat(new PageTitle("File:Ex 1.jpg").getCanonicalUri().toString(), + assertThat(new PageTitle("File:Ex 1.jpg").getCanonicalUri().toString(), is(BuildConfig.HOME_URL + "File:Ex_1.jpg")); } @Test public void leaveSubpageNamesUncapitalizedInUri() { - Assert.assertThat(new PageTitle("User:Ex/subpage").getCanonicalUri().toString(), + assertThat(new PageTitle("User:Ex/subpage").getCanonicalUri().toString(), is(BuildConfig.HOME_URL + "User:Ex/subpage")); } @Test public void unicodeUri() throws Throwable { - Assert.assertThat(new PageTitle("User:例").getCanonicalUri().toString(), + assertThat(new PageTitle("User:例").getCanonicalUri().toString(), is(BuildConfig.HOME_URL + "User:" + URLEncoder.encode("例", "utf-8"))); } } From d4a89afafdb74003d732f3ddc8e885a0cafc780d Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Mon, 4 Sep 2017 08:58:05 +0200 Subject: [PATCH 5/9] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-eu/strings.xml | 22 ++++++++++++++++++++-- app/src/main/res/values-hu/strings.xml | 2 +- app/src/main/res/values-skr/strings.xml | 3 +++ app/src/main/res/values-vi/strings.xml | 11 +++++++++++ 4 files changed, 35 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index d74b5b900..a9b886bcf 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -76,6 +76,8 @@ Lizentzia Aurreko izenburu/deskribapena erabili Oraingo kokapena automatikoki lortu + Gau modua + Gai iluna erabili Aitortu-PartekatuBerdin 4.0 Aitortu 4.0 Aitortu-PartekatuBerdin 3.0 @@ -115,15 +117,29 @@ Izenburua Fitxategiaren izenburua Deskribapena + Igoera data Lizentzia Koordenatuak Ez da eskeini Beta testatzaile bihurtu Wikidata erabili (Erne:hau kentzeak mugikorrak datu asko kontsumitzea ekar dezake) + Gehienezko muga + 500 baino gehiago ezin dira erakutsi Commonsen logoa Atzealdeko irudia + Media irudiak kale egin du + Ez da irudirik aurkitu + Igo irudia + Zao Mendia + Llamak + Ortzadar zubia + Tulipa Selfirik ez + Jabetza irudia + Ongi etorri Wikipedia + Ongi etorri copyright-a + Sidneiko Opera Etxea Utzi Ireki Itxi @@ -132,9 +148,11 @@ Gertukoak Honi buruz Ezarpenak + Atzeraelikadura Saioa itxi - Sarrera + Tutoriala + Deskripziorik ez da aurkitu Artxibo orrialde komuna - WikiData Artikulua + Wikidata itema Argazkiak hartzerakoan sortutako akatsa diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 6736b0bb8..b33b59fba 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -176,5 +176,5 @@ Bevezető nincs leírás Commons szócikk - Wikidata tétel + Wikidata-elem diff --git a/app/src/main/res/values-skr/strings.xml b/app/src/main/res/values-skr/strings.xml index e206e3b65..a1c32f2ee 100644 --- a/app/src/main/res/values-skr/strings.xml +++ b/app/src/main/res/values-skr/strings.xml @@ -16,6 +16,7 @@ اپ لوڈ %1$s شروع تھیندا پئے %1$s اپ لوڈ تھیندا پئے %1$s اپ لوڈ پورا تھیندا پئے + ݙیکھݨ کیتے انگل پھیرو میݙے حالیہ اپ لوڈ قطار وچ ناکام @@ -50,6 +51,7 @@ ڈاؤن لوڈ ، لہاوݨ لائیسنس رات آلا مزاج + گھاٹا تھیم ورتو سی سی او سی سی زیرو براہ مہربانی اپ لوڈ نہ کرو @@ -72,6 +74,7 @@ عنوان میڈیا دا عنوان تفصیل + اپ لوڈ تھیوݨ دی تاریخ لائیسنس کوآرڈینیٹ کجھ نی ݙسیا diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index f53e03169..5b9d6192a 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -125,6 +125,7 @@ Tùy chọn cấp phép: Định vị hiện tại để nhận gợi ý thể loại OK Nơi Lân cận + Không tìm thấy nơi lân cận Cảnh báo Tập tin này đã tồn tại ở Commons. Bạn có chắc chắn muốn tiếp tục? @@ -141,15 +142,23 @@ Tham gia kênh thử nghiệm của chúng tôi trên Google Play và nhận các tính năng mới cùng những bản sửa lỗi sớm hơn Dùng Wikidata (Cảnh báo: tắt đi có thể tăng sử dụng dữ liệu di động rất lớn) + Mã Hai Nhân tố + Giới hạn Tải lên Gần đây của Tôi Tối đa + Không thể hiển thị hơn 500 cái + Đặt Giới hạn Tải lên Gần đây + Hiện chưa hỗ trợ xác thực dùng hai nhân tố. + Bạn có chắc chắn muốn đăng xuất? Biểu trưng Commons Hình nền + Hình ảnh bị Thất bại Không tìm thấy Hình ảnh Tải lên Hình Núi Zaō Lạc đà không bướu Cầu Cầu vồng Tu-líp + Không cho phép Ảnh tự chụp Nhà hát Opera Sydney Hủy bỏ Mở @@ -162,5 +171,7 @@ Phản hồi Đăng xuất Hướng dẫn + không tìm thấy miêu tả + Trang tập tin Commons Khoản mục Wikidata From ccce12ea019cc6ec8be916269b1866fd568dd3b5 Mon Sep 17 00:00:00 2001 From: Paul Hawke Date: Mon, 4 Sep 2017 15:01:19 -0500 Subject: [PATCH 6/9] Removed grey box background on nearby icons --- app/src/main/res/drawable/round_icon_airport.xml | 1 - app/src/main/res/drawable/round_icon_bridge.xml | 1 - app/src/main/res/drawable/round_icon_church.xml | 1 - app/src/main/res/drawable/round_icon_forest.xml | 1 - app/src/main/res/drawable/round_icon_generic_building.xml | 1 - app/src/main/res/drawable/round_icon_house.xml | 1 - app/src/main/res/drawable/round_icon_mountain.xml | 1 - app/src/main/res/drawable/round_icon_park.xml | 1 - app/src/main/res/drawable/round_icon_river.xml | 1 - app/src/main/res/drawable/round_icon_road.xml | 1 - app/src/main/res/drawable/round_icon_waterfall.xml | 1 - 11 files changed, 11 deletions(-) diff --git a/app/src/main/res/drawable/round_icon_airport.xml b/app/src/main/res/drawable/round_icon_airport.xml index 9e224165a..4a24f240b 100644 --- a/app/src/main/res/drawable/round_icon_airport.xml +++ b/app/src/main/res/drawable/round_icon_airport.xml @@ -1,6 +1,5 @@ - diff --git a/app/src/main/res/drawable/round_icon_bridge.xml b/app/src/main/res/drawable/round_icon_bridge.xml index c85f8d6e2..efe428b80 100644 --- a/app/src/main/res/drawable/round_icon_bridge.xml +++ b/app/src/main/res/drawable/round_icon_bridge.xml @@ -1,6 +1,5 @@ - diff --git a/app/src/main/res/drawable/round_icon_church.xml b/app/src/main/res/drawable/round_icon_church.xml index e861822d1..c27a52669 100644 --- a/app/src/main/res/drawable/round_icon_church.xml +++ b/app/src/main/res/drawable/round_icon_church.xml @@ -1,6 +1,5 @@ - diff --git a/app/src/main/res/drawable/round_icon_forest.xml b/app/src/main/res/drawable/round_icon_forest.xml index c735354bb..c04d643ab 100644 --- a/app/src/main/res/drawable/round_icon_forest.xml +++ b/app/src/main/res/drawable/round_icon_forest.xml @@ -1,6 +1,5 @@ - diff --git a/app/src/main/res/drawable/round_icon_generic_building.xml b/app/src/main/res/drawable/round_icon_generic_building.xml index a3b26f7b3..9e8f13593 100644 --- a/app/src/main/res/drawable/round_icon_generic_building.xml +++ b/app/src/main/res/drawable/round_icon_generic_building.xml @@ -1,6 +1,5 @@ - diff --git a/app/src/main/res/drawable/round_icon_house.xml b/app/src/main/res/drawable/round_icon_house.xml index 35bf984a6..e69e05eba 100644 --- a/app/src/main/res/drawable/round_icon_house.xml +++ b/app/src/main/res/drawable/round_icon_house.xml @@ -1,6 +1,5 @@ - diff --git a/app/src/main/res/drawable/round_icon_mountain.xml b/app/src/main/res/drawable/round_icon_mountain.xml index 1551ede7f..46c9999a0 100644 --- a/app/src/main/res/drawable/round_icon_mountain.xml +++ b/app/src/main/res/drawable/round_icon_mountain.xml @@ -1,6 +1,5 @@ - diff --git a/app/src/main/res/drawable/round_icon_park.xml b/app/src/main/res/drawable/round_icon_park.xml index 877c5fcd4..ed19fe8de 100644 --- a/app/src/main/res/drawable/round_icon_park.xml +++ b/app/src/main/res/drawable/round_icon_park.xml @@ -1,6 +1,5 @@ - diff --git a/app/src/main/res/drawable/round_icon_river.xml b/app/src/main/res/drawable/round_icon_river.xml index c7304cc10..27dbaab62 100644 --- a/app/src/main/res/drawable/round_icon_river.xml +++ b/app/src/main/res/drawable/round_icon_river.xml @@ -1,6 +1,5 @@ - diff --git a/app/src/main/res/drawable/round_icon_road.xml b/app/src/main/res/drawable/round_icon_road.xml index a556a9efc..4c5cb98ef 100644 --- a/app/src/main/res/drawable/round_icon_road.xml +++ b/app/src/main/res/drawable/round_icon_road.xml @@ -1,6 +1,5 @@ - diff --git a/app/src/main/res/drawable/round_icon_waterfall.xml b/app/src/main/res/drawable/round_icon_waterfall.xml index 420704690..0d71b45b1 100644 --- a/app/src/main/res/drawable/round_icon_waterfall.xml +++ b/app/src/main/res/drawable/round_icon_waterfall.xml @@ -1,6 +1,5 @@ - From b9dbdfb337bf677e6e662c28df574b0a23a23a2b Mon Sep 17 00:00:00 2001 From: Paul Hawke Date: Tue, 5 Sep 2017 22:01:36 -0500 Subject: [PATCH 7/9] Fixed remaining icons missed in the first pass, removing the grey background. --- app/src/main/res/drawable/round_icon_city.xml | 1 - .../res/drawable/round_icon_gatehouse.xml | 1 - .../main/res/drawable/round_icon_island.xml | 1 - .../res/drawable/round_icon_milestone.xml | 1 - .../main/res/drawable/round_icon_ocean.xml | 1 - .../drawable/round_icon_railway_station.xml | 1 - .../main/res/drawable/round_icon_school.xml | 1 - .../res/drawable/round_icon_waterfall.xml | 30 +++++++++---------- 8 files changed, 15 insertions(+), 22 deletions(-) diff --git a/app/src/main/res/drawable/round_icon_city.xml b/app/src/main/res/drawable/round_icon_city.xml index 6723ab959..ce4cc5c44 100644 --- a/app/src/main/res/drawable/round_icon_city.xml +++ b/app/src/main/res/drawable/round_icon_city.xml @@ -1,6 +1,5 @@ - diff --git a/app/src/main/res/drawable/round_icon_gatehouse.xml b/app/src/main/res/drawable/round_icon_gatehouse.xml index 8c282ac82..7d04491fa 100644 --- a/app/src/main/res/drawable/round_icon_gatehouse.xml +++ b/app/src/main/res/drawable/round_icon_gatehouse.xml @@ -1,6 +1,5 @@ - diff --git a/app/src/main/res/drawable/round_icon_island.xml b/app/src/main/res/drawable/round_icon_island.xml index 0f70b5aab..940ccd9d4 100644 --- a/app/src/main/res/drawable/round_icon_island.xml +++ b/app/src/main/res/drawable/round_icon_island.xml @@ -1,6 +1,5 @@ - diff --git a/app/src/main/res/drawable/round_icon_milestone.xml b/app/src/main/res/drawable/round_icon_milestone.xml index b105ea3cd..23eb5142b 100644 --- a/app/src/main/res/drawable/round_icon_milestone.xml +++ b/app/src/main/res/drawable/round_icon_milestone.xml @@ -1,6 +1,5 @@ - diff --git a/app/src/main/res/drawable/round_icon_ocean.xml b/app/src/main/res/drawable/round_icon_ocean.xml index 22b903104..7f62065aa 100644 --- a/app/src/main/res/drawable/round_icon_ocean.xml +++ b/app/src/main/res/drawable/round_icon_ocean.xml @@ -1,6 +1,5 @@ - diff --git a/app/src/main/res/drawable/round_icon_railway_station.xml b/app/src/main/res/drawable/round_icon_railway_station.xml index 1c89d2920..5a0520432 100644 --- a/app/src/main/res/drawable/round_icon_railway_station.xml +++ b/app/src/main/res/drawable/round_icon_railway_station.xml @@ -1,6 +1,5 @@ - diff --git a/app/src/main/res/drawable/round_icon_school.xml b/app/src/main/res/drawable/round_icon_school.xml index 22eef79cf..303610416 100644 --- a/app/src/main/res/drawable/round_icon_school.xml +++ b/app/src/main/res/drawable/round_icon_school.xml @@ -1,6 +1,5 @@ - diff --git a/app/src/main/res/drawable/round_icon_waterfall.xml b/app/src/main/res/drawable/round_icon_waterfall.xml index 0d71b45b1..a02541583 100644 --- a/app/src/main/res/drawable/round_icon_waterfall.xml +++ b/app/src/main/res/drawable/round_icon_waterfall.xml @@ -1,17 +1,17 @@ - - - - - - - - - - - - - - +android:viewportWidth="235.0" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> + + + + + + + + + + + + + + From 3a15f9a1d6cb57b94f34c9cb14632235f1401e75 Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Thu, 7 Sep 2017 07:15:24 +0200 Subject: [PATCH 8/9] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-br/strings.xml | 3 +++ app/src/main/res/values-qq/strings.xml | 3 ++- app/src/main/res/values-uk/strings.xml | 8 ++++++-- app/src/main/res/values-vi/strings.xml | 10 ++++++++++ 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-br/strings.xml b/app/src/main/res/values-br/strings.xml index 8f5eaa510..16e241561 100644 --- a/app/src/main/res/values-br/strings.xml +++ b/app/src/main/res/values-br/strings.xml @@ -147,6 +147,9 @@ Deskrivadur Amañ e lakaer titl ar media. Gallout a ra bezañ hir-mat ha mont dre meur a linenn. Spi hon eus e vo bravik an disoc\'h koulskoude. Deiziad enporzhiañ + Aotre-implijout + Daveennoù + N\'eo ket bet pourchaset Deuit da vezañ un amprouer beta En em enskrivañ en hor c\'hanol beta war Google Play ha kaout ur rakmoned d\'an arc\'hwelioù nevez d\'an drein difaziet Ober gant Wikidata diff --git a/app/src/main/res/values-qq/strings.xml b/app/src/main/res/values-qq/strings.xml index 1e3c13b81..7e1bfb282 100644 --- a/app/src/main/res/values-qq/strings.xml +++ b/app/src/main/res/values-qq/strings.xml @@ -103,7 +103,8 @@ An animal. See [[:d:Q42569|Wikidata item Q42569]] for a list of possible translations. A bridge in Japan. See [[:d:Q1046736|Wikidata item Q1046736]] for a list of possible translations. A flower. See [[:d:Q93201|Wikidata item Q93201]] for a list of possible translations. - Welcome Wikipedia + Description of [https://github.com/commons-app/apps-android-commons/blob/master/app/src/main/res/drawable-hdpi/welcome_wikipedia.png the image] displayed on the welcome screen to illustrate {{msg-wm|Commons-android-strings-welcome wikipedia text}} and {{msg-wm|Commons-android-strings-welcome wikipedia subtext}}. + Description of [https://github.com/commons-app/apps-android-commons/blob/master/app/src/main/res/drawable-hdpi/welcome_copyright.png the image] displayed on the welcome screen to illustrate {{msg-wm|Commons-android-strings-welcome copyright text}} and {{msg-wm|Commons-android-strings-welcome copyright subtext}}. A building in the city of Sydney. See [[:d:Q45178|Wikidata item Q45178]] for a list of possible translations. {{Identical|Cancel}} {{Identical|Open}} diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 746d3c11d..679703b80 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -81,7 +81,7 @@ Налаштування Зареєструватися Про програму - Програмне забезпечення з відкритим кодом випущено під <a href=\"https://github.com/commons-app/apps-android-commons/blob/master/COPYING\">ліцензією Apache в.2</a>. Вікісховище і його логотип є товарними знаками Фонду Вікімедіа і використовуються за дозволом Фонду Вікімедіа. Ми не користуємось підтримкою Фонду Вікімедіа і не є його афіліатом. + Програмне забезпечення з відкритим кодом випущено під <a href=\"https://github.com/commons-app/apps-android-commons/blob/master/COPYING\">ліцензією Apache в.2</a>. 1$s і його логотип є товарними знаками Фонду Вікімедіа і використовуються за дозволом Фонду Вікімедіа. Ми не користуємось підтримкою Фонду Вікімедіа і не є його афіліатом. <a href=\"https://github.com/commons-app/apps-android-commons\">Вихідний код</a> і <a href=\"https://commons-app.github.io/\">веб-сайт</a> на GitHub. Створіть нове <a href=\"https://github.com/commons-app/apps-android-commons/issues\">завдання на GitHub</a> для повідомлення про баги або для висловлення пропозицій. <a href=\"https://wikimediafoundation.org/wiki/Privacy_policy\">Політика приватності</a> <a href=\"https://github.com/commons-app/apps-android-commons/blob/master/CREDITS\">Автори</a> @@ -94,6 +94,7 @@ Повторити Скасувати Це зображення буде ліцензоване згідно з %1$s + Подаючи це зображення, я підтверджую, що це моя власна робота, яка не містить захищених авторським правом матеріалів чи селфі, а також відповідає <a href=\"https://commons.wikimedia.org/wiki/Commons:Policies_and_guidelines/uk\">правилам Вікісховища</a>. Завантажити Ліцензія Використати попередню назву/опис @@ -196,6 +197,9 @@ Посібник Місця поблизу неможливо показати без дозволу на визначення місця розташування. опис не знайдено - Стаття на Вікісховищі + Сторінка файлу у Вікісховищі Елемент Вікіданих + Помилка кешування зображень + Унікальна описова назва файлу. Ви можете використовувати простий текст з пробілами. Не вказуйте розширення файлу + Будь ласка, докладно опишіть файл: де його було зроблено? що на ньому зображено? який контекст? Будь ласка, опишіть об\'єкти чи осіб. Додайте інформацію, яку не можна легко здогадатися, наприклад, пору доби для фотографії пейзажу. Якщо зображено щось незвичайне, постарайтеся пояснити, що робить його незвичайним. diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index 5b9d6192a..38f6d3987 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -39,6 +39,7 @@ Không thể đăng nhập – xin vui lòng kiểm tra mật khẩu Đã đăng nhập thất bại quá nhiều lần. Xin vui lòng thử lại trong vòng vài phút. Rất tiếc, người dùng này đã bị cấm tại Commons + Bạn phải cung cấp mã xác thực dùng hai nhân tố. Đăng nhập thất bại Tải lên Đặt tên nhóm này @@ -47,6 +48,7 @@ Tìm thể loại Lưu Làm mới + Chức năng GPS đang tắt trên thiết bị của bạn. Bạn có muốn bật nó lên? Bật GPS Chưa có tập tin tải lên @@ -74,6 +76,7 @@ Thử lại Hủy bỏ Hình này sẽ được phát hành theo giấy phép %1$s + Với việc đăng hình này, tôi tuyên bố rằng nó là tác phẩm của chính mình, rằng nó không chứa nội dung có bản quyền hoặc ảnh tự chụp, và về mặt khác thì hoàn toàn tuân theo <a href=\"https://commons.wikimedia.org/wiki/Commons:Policies_and_guidelines?uselang=vi\">các quy định Wikimedia Commons</a>. Tải về Giấy phép Sử dụng tiêu đề/miêu tả trước @@ -159,6 +162,9 @@ Cầu Cầu vồng Tu-líp Không cho phép Ảnh tự chụp + Hình có Bản quyền + Hoan nghênh: Wikipedia + Hoan nghênh: Bản quyền Nhà hát Opera Sydney Hủy bỏ Mở @@ -171,7 +177,11 @@ Phản hồi Đăng xuất Hướng dẫn + Cần có quyền truy cập vị trí của bạn để hiển thị các địa điểm lân cận không tìm thấy miêu tả Trang tập tin Commons Khoản mục Wikidata + Xuất hiện lỗi khi đưa hình ảnh vào vùng nhớ đệm + Tên ngắn và duy nhất cho tập tin sẽ được dùng làm tên tập tin. Có thể dùng thuật ngữ bình thường với khoảng cách. Đừng bao gồm phần mở rộng tập tin. + Xin vui lòng miêu tả phương tiện càng đầy đủ càng tốt: Chụp ở đâu? Trong hình có gì? Bối cảnh làm sao? Xin vui lòng miêu tả các đối tượng và người trong hình. Cho biết những thông tin khó đoán ra, chẳng hạn giờ trong ngày nếu là phong cảnh. Nếu phương tiện có gì kỳ lạ, xin vui lòng giải thích tại sao nó kỳ lạ. From c8b0d2cee4b511caf7564e0d538f0bd26f10a4af Mon Sep 17 00:00:00 2001 From: "translatewiki.net" Date: Mon, 11 Sep 2017 07:14:33 +0200 Subject: [PATCH 9/9] Localisation updates from https://translatewiki.net. --- app/src/main/res/values-fa/strings.xml | 87 ++++++++++++++++++++++---- app/src/main/res/values-sd/strings.xml | 2 +- 2 files changed, 76 insertions(+), 13 deletions(-) diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml index 3c1ec8baf..0254a2721 100644 --- a/app/src/main/res/values-fa/strings.xml +++ b/app/src/main/res/values-fa/strings.xml @@ -20,11 +20,11 @@ اتمام بارگذاری %1$s %1$s بارگذاری نشد برای دیدن انگشت بزنید - - یک پرونده در حال بارگذاری + + %d پرونده در حال بارگذاری %d پرونده در حال بارگذاری - بارگذاری‌های من + بارگذاری‌های اخیر من در صف ناموفق بود %1$d٪ کامل شد @@ -42,6 +42,7 @@ ناتوانی در ورود - لطفاً گذرواژه‌یتان را بررسی کنید تلاش ناموفق بیش از حد. لطفاً چند دقیقهٔ دیگر دوباره تلاش کنید پوزش، کاربر در ویکی‌انبار بسته شده‌است + باید تأیید دومرحله‌ای را فعال کنید. ورود ناموفق بود بارگذاری نام این مجموعه @@ -49,17 +50,21 @@ بارگذاری جستجوی رده‌ها ذخیره - - هنوز بارگذاری نشده است - یک بارگذاری شد + تازه کردن + مکان‌یاب در دستگاه شما خاموش است. آیا دوست دارید فعال شود؟ + فعال کردن مکان‌یاب + هنوز هیچ بارگذاری + + \@string/contributions_subtitle_zero + بارگذاری شد %d بارگذاری شد - - شروع بارگذاری پرونده - شروع بارگذاری %d پرونده + + شروع %d بارگذاری پرونده + شروع بارگذاری %d پرونده - - ۱ بارگذاری + + %d بارگذاری %d بارگذاری رده‌ای منطبق با %1$s یافت نشد @@ -68,9 +73,10 @@ تنظیمات ثبت نام درباره - نرم‌افزار متن‌باز آزاد تحت <a href=\"https://github.com/commons-app/apps-android-commons/blob/master/COPYING\">مجوز آپاچی نسخهٔ ۲</a>\n\nویکی‌انبار و نشانش یک نشان تجاری‌ست و با اجازهٔ بنیاد ویکی‌مدیا استفاده می‌شود. ما زیرمجموعه یا شعبهٔ بنیاد نیستیم. + نرم‌افزار متن‌باز آزاد تحت <a href=\"https://github.com/commons-app/apps-android-commons/blob/master/COPYING\">مجوز آپاچی نسخهٔ ۲</a>\n\n%1$s و نشانش یک نشان تجاری‌ست و با اجازهٔ بنیاد ویکی‌مدیا استفاده می‌شود. ما زیرمجموعه یا شعبهٔ بنیاد نیستیم. <a href=\"https://github.com/commons-app/apps-android-commons\">Source</a> and <a href=\"https://commons-app.github.io/\">وب‌سایت</a> در گیت‌هاب. ایجاد یک <a href=\"https://github.com/commons-app/apps-android-commons/issues\">درخواست در گیت‌هاب</a> برای گزارش باگ و یا پیشنهاد یک خصوصیت جدید. <a href=\"https://wikimediafoundation.org/wiki/Privacy_policy\">سیاست حفظ حریم خصوصی</a> + <a href=\"https://github.com/commons-app/apps-android-commons/blob/master/CREDITS\">مجوز</a> درباره ارسال بازخورد (از طریق ایمیل) نرم‌افزار ایمیل نصب نیست @@ -80,11 +86,16 @@ تلاش مجدد لغو این نگاره تحت مجوز %1$s است + با بارگذاری این تصویر، تأیید می‌کنم که این اثر کار خودم است و از محتوای دارای حق تکثیر یا سلفی برای ایجاد آن استفاده نکرده‌ام و شرایط ذکر شده در By submitting this picture, I declare that this is my own work, that it does not contain copyrighted material or selfies, and otherwise adheres to <a href=\"https://commons.wikimedia.org/wiki/Commons:Policies_and_guidelines\">سیاست‌های ویکی‌انبار</a> را رعایت می‌کند. دریافت مجوز از عنوان/توضیحات پیشین استفاده کنید دریافت خودکار موقعیت کنونی درحال دریافت موقعیت برای پیشنهاد رده در صورتی که برچسب جغرافیایی وجود نداشته باشد. + حالت شبانه + استفاده از حالت تیره + CC Attribution-ShareAlike 4.0 + Attribution 4.0 CC Attribution-ShareAlike 3.0 CC Attribution 3.0 CC0 @@ -127,8 +138,60 @@ اجازه‌های اختیاری: دریافت موقعیت برای پیشنهاد رده تأیید مکان‌‌های اطراف + مکانی در نزدیکی یافت نشد هشدار پرونده در ویکی‌انبار موجود است. آیا مطمئنید که می‌خواهید ادامه دهید؟ بله خیر + عنوان + عنوان رسانه + توضیح + توضیحات رسانه اینجا می‌روند. امکان دارد طولانی باشد و نیاز به چند خط شدن داشته باشد. امیدواریم خوب دیده شود. + تاریخ بارگذاری + مجوز + مختصات‌ها + ارائه نشده است + آزمایشگر نسخهٔ آزمایشی شوید + به گروه آزمایشی ما در گوگل‌پلی بپیوندید و از خصوصیات جدید و خطاهای رفع‌شده زودتر از دیگران برخوردار شوید. + استفاده از ویکی‌داده + (هشدار: غیرفعال کردن این ممکن است حجم زیادی از اینترنت تلفن همراه را مصرف کند) + کد 2FA + محدودیت بارگذاری اخیر من + حداکثر محدودیت + عدم توانایی در نمایش بیش از ۵۰۰ مورد + تنظیم محدودیت بارگذاری‌های اخیر + تأیید دومرحله‌ای الان پشتیبانی نمی‌شود. + آیا واقعاً قصد خروج از سامانه را دارید؟ + نشان ویکی‌انبار + تصویر پس‌زمینه + خطای تصویر رسانه + تصویری یافت نشد + بارگذاری تصویر + کوه زائو + لاما + رینبو بریج + لاله + سلفی نه + تصویر اختصاصی + به ویکی‌پدیا خوش‌آمدید + حق‌تکثیر خوش‌آمدگویی + خانه اپرای سیدنی + لغو + باز کردن + بستن + خانه + بارگذاری + در نزدیکی + درباره + تنظیمات + بازخورد + خروج + آموزش + مکان‌های اطراف بدون اجازه دادن به مکان‌یاب مقدور نیست + توضیحی یافت نشد + صفحهٔ دروند در ویکی‌انبار + آیتم ویکی‌داده + خطا در زمان دریافت تصاویر + عنوانی توصیفی و یکتا برای پرونده که به عنوان نام پرونده در نظر گرفته خواهد شد. ترجیحاً به زبان ساده باشد، می‌توانید فاصله هم به کار ببرید. پسوند پرونده را ننویسید. + لطفاً تصویر را تا حد توان شرح دهید. کجا گرفته شده‌است؟ شامل چه چیزی می‌شود؟ لطفاً اشیا یا افراد را شرح دهید. اطلاعاتی که به راحتی قابل مشاهده هستند را صرفه‌نظر کنید. اگر چیزی در تصویر غیر طبیعی به نظر می‌رسد آن را شرح دهید. diff --git a/app/src/main/res/values-sd/strings.xml b/app/src/main/res/values-sd/strings.xml index 00bc35c68..36a914281 100644 --- a/app/src/main/res/values-sd/strings.xml +++ b/app/src/main/res/values-sd/strings.xml @@ -41,7 +41,7 @@ ناقابلِ داخل ٿيڻ - براءِ مھرباني پنھنجو يُوزرنانءُ چڪاسيو ناقابل داخل ٿيڻ - براءِ مھرباني پنھنجو ڳجھولفظ چڪاسيو ھيڪانديون ناڪام ڪوششون. براءِ مھرباني ڪجھ منٽن کانپوءِ ٻيھر ڪوشش ڪريو. - افسوس، ھي يوزر العام تي بندشيل آھي + افسوس، ھي واھپ العام تي بندشيل آھي داخل ٿيڻ ناڪام چاڙھيو ھن سيٽ کي نالو ڏيو