mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 20:33:53 +01:00
Merge branch 'main' into fix-location-prompt-uploaded-via-mobile-5549
This commit is contained in:
commit
7c22cbba2d
67 changed files with 1248 additions and 725 deletions
45
.idea/inspectionProfiles/Project_Default.xml
generated
45
.idea/inspectionProfiles/Project_Default.xml
generated
|
|
@ -2,11 +2,35 @@
|
||||||
<profile version="1.0">
|
<profile version="1.0">
|
||||||
<option name="myName" value="Project Default" />
|
<option name="myName" value="Project Default" />
|
||||||
<inspection_tool class="ClassWithOnlyPrivateConstructors" enabled="true" level="WARNING" enabled_by_default="true" />
|
<inspection_tool class="ClassWithOnlyPrivateConstructors" enabled="true" level="WARNING" enabled_by_default="true" />
|
||||||
|
<inspection_tool class="ComposePreviewDimensionRespectsLimit" enabled="true" level="WARNING" enabled_by_default="true">
|
||||||
|
<option name="composableFile" value="true" />
|
||||||
|
</inspection_tool>
|
||||||
|
<inspection_tool class="ComposePreviewMustBeTopLevelFunction" enabled="true" level="ERROR" enabled_by_default="true">
|
||||||
|
<option name="composableFile" value="true" />
|
||||||
|
</inspection_tool>
|
||||||
|
<inspection_tool class="ComposePreviewNeedsComposableAnnotation" enabled="true" level="ERROR" enabled_by_default="true">
|
||||||
|
<option name="composableFile" value="true" />
|
||||||
|
</inspection_tool>
|
||||||
|
<inspection_tool class="ComposePreviewNotSupportedInUnitTestFiles" enabled="true" level="ERROR" enabled_by_default="true">
|
||||||
|
<option name="composableFile" value="true" />
|
||||||
|
</inspection_tool>
|
||||||
<inspection_tool class="ConfusingElse" enabled="true" level="WARNING" enabled_by_default="true">
|
<inspection_tool class="ConfusingElse" enabled="true" level="WARNING" enabled_by_default="true">
|
||||||
<option name="reportWhenNoStatementFollow" value="true" />
|
<option name="reportWhenNoStatementFollow" value="true" />
|
||||||
</inspection_tool>
|
</inspection_tool>
|
||||||
<inspection_tool class="ControlFlowStatementWithoutBraces" enabled="true" level="ERROR" enabled_by_default="true" />
|
<inspection_tool class="ControlFlowStatementWithoutBraces" enabled="true" level="ERROR" enabled_by_default="true" />
|
||||||
<inspection_tool class="ExplicitThis" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
|
<inspection_tool class="ExplicitThis" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
|
||||||
|
<inspection_tool class="GlancePreviewDimensionRespectsLimit" enabled="true" level="WARNING" enabled_by_default="true">
|
||||||
|
<option name="composableFile" value="true" />
|
||||||
|
</inspection_tool>
|
||||||
|
<inspection_tool class="GlancePreviewMustBeTopLevelFunction" enabled="true" level="ERROR" enabled_by_default="true">
|
||||||
|
<option name="composableFile" value="true" />
|
||||||
|
</inspection_tool>
|
||||||
|
<inspection_tool class="GlancePreviewNeedsComposableAnnotation" enabled="true" level="ERROR" enabled_by_default="true">
|
||||||
|
<option name="composableFile" value="true" />
|
||||||
|
</inspection_tool>
|
||||||
|
<inspection_tool class="GlancePreviewNotSupportedInUnitTestFiles" enabled="true" level="ERROR" enabled_by_default="true">
|
||||||
|
<option name="composableFile" value="true" />
|
||||||
|
</inspection_tool>
|
||||||
<inspection_tool class="LocalCanBeFinal" enabled="true" level="WARNING" enabled_by_default="true">
|
<inspection_tool class="LocalCanBeFinal" enabled="true" level="WARNING" enabled_by_default="true">
|
||||||
<option name="REPORT_VARIABLES" value="true" />
|
<option name="REPORT_VARIABLES" value="true" />
|
||||||
<option name="REPORT_PARAMETERS" value="true" />
|
<option name="REPORT_PARAMETERS" value="true" />
|
||||||
|
|
@ -20,6 +44,27 @@
|
||||||
<inspection_tool class="OverlyStrongTypeCast" enabled="true" level="WARNING" enabled_by_default="true">
|
<inspection_tool class="OverlyStrongTypeCast" enabled="true" level="WARNING" enabled_by_default="true">
|
||||||
<option name="ignoreInMatchingInstanceof" value="false" />
|
<option name="ignoreInMatchingInstanceof" value="false" />
|
||||||
</inspection_tool>
|
</inspection_tool>
|
||||||
|
<inspection_tool class="PreviewAnnotationInFunctionWithParameters" enabled="true" level="ERROR" enabled_by_default="true">
|
||||||
|
<option name="composableFile" value="true" />
|
||||||
|
</inspection_tool>
|
||||||
|
<inspection_tool class="PreviewApiLevelMustBeValid" enabled="true" level="ERROR" enabled_by_default="true">
|
||||||
|
<option name="composableFile" value="true" />
|
||||||
|
</inspection_tool>
|
||||||
|
<inspection_tool class="PreviewDeviceShouldUseNewSpec" enabled="true" level="WEAK WARNING" enabled_by_default="true">
|
||||||
|
<option name="composableFile" value="true" />
|
||||||
|
</inspection_tool>
|
||||||
|
<inspection_tool class="PreviewFontScaleMustBeGreaterThanZero" enabled="true" level="ERROR" enabled_by_default="true">
|
||||||
|
<option name="composableFile" value="true" />
|
||||||
|
</inspection_tool>
|
||||||
|
<inspection_tool class="PreviewMultipleParameterProviders" enabled="true" level="ERROR" enabled_by_default="true">
|
||||||
|
<option name="composableFile" value="true" />
|
||||||
|
</inspection_tool>
|
||||||
|
<inspection_tool class="PreviewParameterProviderOnFirstParameter" enabled="true" level="ERROR" enabled_by_default="true">
|
||||||
|
<option name="composableFile" value="true" />
|
||||||
|
</inspection_tool>
|
||||||
|
<inspection_tool class="PreviewPickerAnnotation" enabled="true" level="ERROR" enabled_by_default="true">
|
||||||
|
<option name="composableFile" value="true" />
|
||||||
|
</inspection_tool>
|
||||||
<inspection_tool class="ProblematicWhitespace" enabled="true" level="WARNING" enabled_by_default="true" />
|
<inspection_tool class="ProblematicWhitespace" enabled="true" level="WARNING" enabled_by_default="true" />
|
||||||
<inspection_tool class="RedundantFieldInitialization" enabled="true" level="WARNING" enabled_by_default="true" />
|
<inspection_tool class="RedundantFieldInitialization" enabled="true" level="WARNING" enabled_by_default="true" />
|
||||||
<inspection_tool class="RedundantImplements" enabled="true" level="WARNING" enabled_by_default="true">
|
<inspection_tool class="RedundantImplements" enabled="true" level="WARNING" enabled_by_default="true">
|
||||||
|
|
|
||||||
431
app/build.gradle
431
app/build.gradle
|
|
@ -1,431 +0,0 @@
|
||||||
plugins {
|
|
||||||
id 'com.github.triplet.play' version '2.7.2' apply false
|
|
||||||
}
|
|
||||||
apply from: '../gitutils.gradle'
|
|
||||||
apply plugin: 'com.android.application'
|
|
||||||
apply plugin: 'kotlin-android'
|
|
||||||
apply plugin: 'kotlin-kapt'
|
|
||||||
apply plugin: 'kotlin-parcelize'
|
|
||||||
apply from: "$rootDir/jacoco.gradle"
|
|
||||||
|
|
||||||
def isRunningOnTravisAndIsNotPRBuild = System.getenv("CI") == "true" && file('../play.p12').exists()
|
|
||||||
|
|
||||||
if (isRunningOnTravisAndIsNotPRBuild) {
|
|
||||||
apply plugin: 'com.github.triplet.play'
|
|
||||||
}
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
|
|
||||||
// Utils
|
|
||||||
implementation 'in.yuvi:http.fluent:1.3'
|
|
||||||
implementation 'com.google.code.gson:gson:2.8.5'
|
|
||||||
implementation ("com.squareup.okhttp3:okhttp:$OKHTTP_VERSION!!"){
|
|
||||||
// Forcing dependency versions using force = true on a first-level dependency has been deprecated.
|
|
||||||
// Ref: https://docs.gradle.org/7.5/userguide/upgrading_version_5.html#forced_dependencies
|
|
||||||
//force = true //API 19 support
|
|
||||||
}
|
|
||||||
implementation 'com.squareup.retrofit2:retrofit:2.8.1'
|
|
||||||
implementation "com.squareup.retrofit2:converter-gson:2.8.1"
|
|
||||||
implementation "com.squareup.retrofit2:adapter-rxjava2:2.8.1"
|
|
||||||
implementation 'com.squareup.okio:okio:2.2.2'
|
|
||||||
implementation 'io.reactivex.rxjava2:rxandroid:2.1.0'
|
|
||||||
implementation 'io.reactivex.rxjava2:rxjava:2.2.3'
|
|
||||||
implementation 'com.jakewharton.rxbinding2:rxbinding:2.1.1'
|
|
||||||
implementation 'com.jakewharton.rxbinding3:rxbinding-appcompat:3.0.0'
|
|
||||||
implementation 'com.jakewharton.rxbinding2:rxbinding-support-v4:2.1.1'
|
|
||||||
implementation 'com.jakewharton.rxbinding2:rxbinding-appcompat-v7:2.1.1'
|
|
||||||
implementation 'com.jakewharton.rxbinding2:rxbinding-design:2.1.1'
|
|
||||||
implementation 'com.facebook.fresco:fresco:1.13.0'
|
|
||||||
implementation 'org.apache.commons:commons-lang3:3.8.1'
|
|
||||||
|
|
||||||
// UI
|
|
||||||
implementation 'fr.avianey.com.viewpagerindicator:library:2.4.1.1@aar'
|
|
||||||
implementation 'com.github.chrisbanes:PhotoView:2.0.0'
|
|
||||||
implementation 'com.github.pedrovgs:renderers:3.3.3'
|
|
||||||
implementation "org.maplibre.gl:android-sdk:$MAPLIBRE_VERSION"
|
|
||||||
implementation 'org.maplibre.gl:android-plugin-scalebar-v9:1.0.0'
|
|
||||||
|
|
||||||
implementation 'com.jakewharton.timber:timber:4.7.1'
|
|
||||||
implementation 'com.github.deano2390:MaterialShowcaseView:1.2.0'
|
|
||||||
implementation "com.google.android.material:material:1.12.0"
|
|
||||||
implementation 'com.karumi:dexter:5.0.0'
|
|
||||||
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
|
|
||||||
implementation 'androidx.compose.ui:ui-tooling-preview'
|
|
||||||
androidTestImplementation 'androidx.compose.ui:ui-test-junit4'
|
|
||||||
|
|
||||||
// Jetpack Compose
|
|
||||||
def composeBom = platform('androidx.compose:compose-bom:2024.11.00')
|
|
||||||
|
|
||||||
implementation "androidx.activity:activity-compose:1.9.3"
|
|
||||||
implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.8.4"
|
|
||||||
implementation (composeBom)
|
|
||||||
implementation "androidx.compose.runtime:runtime"
|
|
||||||
implementation "androidx.compose.ui:ui"
|
|
||||||
implementation "androidx.compose.ui:ui-viewbinding"
|
|
||||||
implementation "androidx.compose.ui:ui-graphics"
|
|
||||||
implementation "androidx.compose.ui:ui-tooling"
|
|
||||||
implementation "androidx.compose.foundation:foundation"
|
|
||||||
implementation "androidx.compose.foundation:foundation-layout"
|
|
||||||
implementation "androidx.compose.material3:material3"
|
|
||||||
androidTestImplementation(composeBom)
|
|
||||||
|
|
||||||
implementation "com.hannesdorfmann:adapterdelegates4-kotlin-dsl-viewbinding:$ADAPTER_DELEGATES_VERSION"
|
|
||||||
implementation "com.hannesdorfmann:adapterdelegates4-pagination:$ADAPTER_DELEGATES_VERSION"
|
|
||||||
implementation "androidx.paging:paging-runtime-ktx:$PAGING_VERSION"
|
|
||||||
testImplementation "androidx.paging:paging-common-ktx:$PAGING_VERSION"
|
|
||||||
implementation "androidx.paging:paging-rxjava2-ktx:$PAGING_VERSION"
|
|
||||||
implementation "androidx.recyclerview:recyclerview:1.2.0-alpha02"
|
|
||||||
implementation "com.squareup.okhttp3:okhttp-ws:$OKHTTP_VERSION"
|
|
||||||
|
|
||||||
// Logging
|
|
||||||
implementation 'ch.acra:acra-dialog:5.8.4'
|
|
||||||
implementation 'ch.acra:acra-mail:5.8.4'
|
|
||||||
implementation 'org.slf4j:slf4j-api:1.7.25'
|
|
||||||
api('com.github.tony19:logback-android-classic:1.1.1-6') {
|
|
||||||
exclude group: 'com.google.android', module: 'android'
|
|
||||||
}
|
|
||||||
implementation "com.squareup.okhttp3:logging-interceptor:$OKHTTP_VERSION"
|
|
||||||
|
|
||||||
// Dependency injector
|
|
||||||
implementation "com.google.dagger:dagger-android:$DAGGER_VERSION"
|
|
||||||
implementation "com.google.dagger:dagger-android-support:$DAGGER_VERSION"
|
|
||||||
debugImplementation 'androidx.compose.ui:ui-tooling'
|
|
||||||
debugImplementation 'androidx.compose.ui:ui-test-manifest'
|
|
||||||
kapt "com.google.dagger:dagger-android-processor:$DAGGER_VERSION"
|
|
||||||
kapt "com.google.dagger:dagger-compiler:$DAGGER_VERSION"
|
|
||||||
annotationProcessor "com.google.dagger:dagger-android-processor:$DAGGER_VERSION"
|
|
||||||
|
|
||||||
implementation "org.jetbrains.kotlin:kotlin-reflect:$KOTLIN_VERSION"
|
|
||||||
|
|
||||||
//Mocking
|
|
||||||
testImplementation 'com.nhaarman.mockitokotlin2:mockito-kotlin:2.2.0'
|
|
||||||
testImplementation 'org.mockito:mockito-inline:5.2.0'
|
|
||||||
testImplementation 'org.mockito:mockito-core:5.6.0'
|
|
||||||
testImplementation "org.powermock:powermock-module-junit4:2.0.9"
|
|
||||||
testImplementation "org.powermock:powermock-api-mockito2:2.0.9"
|
|
||||||
testImplementation("io.mockk:mockk:1.13.5")
|
|
||||||
|
|
||||||
// Unit testing
|
|
||||||
testImplementation 'junit:junit:4.13.2'
|
|
||||||
testImplementation 'org.robolectric:robolectric:4.11.1'
|
|
||||||
testImplementation 'androidx.test:core:1.5.0'
|
|
||||||
testImplementation "androidx.test:runner:1.5.2"
|
|
||||||
testImplementation 'androidx.test.ext:junit:1.1.5'
|
|
||||||
testImplementation "androidx.test:rules:1.5.0"
|
|
||||||
testImplementation "com.squareup.okhttp3:mockwebserver:$OKHTTP_VERSION"
|
|
||||||
testImplementation "com.jraska.livedata:testing-ktx:1.2.0"
|
|
||||||
testImplementation "androidx.arch.core:core-testing:2.2.0"
|
|
||||||
testImplementation "org.junit.jupiter:junit-jupiter-api:5.10.0"
|
|
||||||
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.10.0"
|
|
||||||
testImplementation 'com.facebook.soloader:soloader:0.10.5'
|
|
||||||
testImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:1.7.3"
|
|
||||||
debugImplementation("androidx.fragment:fragment-testing-manifest:1.6.2")
|
|
||||||
androidTestImplementation("androidx.fragment:fragment-testing:1.6.2")
|
|
||||||
testImplementation "commons-io:commons-io:2.6"
|
|
||||||
|
|
||||||
// Android testing
|
|
||||||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.0-alpha04'
|
|
||||||
androidTestImplementation 'androidx.test.espresso:espresso-intents:3.4.0'
|
|
||||||
androidTestImplementation 'androidx.test.espresso:espresso-contrib:3.5.0-alpha04'
|
|
||||||
androidTestImplementation 'androidx.test:runner:1.4.0'
|
|
||||||
androidTestImplementation 'androidx.test:rules:1.4.1-alpha04'
|
|
||||||
androidTestImplementation 'androidx.test:core:1.4.0'
|
|
||||||
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
|
|
||||||
androidTestImplementation 'androidx.annotation:annotation:1.3.0'
|
|
||||||
androidTestImplementation 'com.squareup.okhttp3:mockwebserver:4.8.0'
|
|
||||||
androidTestImplementation "androidx.test.uiautomator:uiautomator:2.2.0"
|
|
||||||
androidTestUtil 'androidx.test:orchestrator:1.4.1'
|
|
||||||
|
|
||||||
// Debugging
|
|
||||||
debugImplementation "com.squareup.leakcanary:leakcanary-android:$LEAK_CANARY_VERSION"
|
|
||||||
|
|
||||||
// Support libraries
|
|
||||||
implementation "com.google.android.material:material:1.1.0-alpha04"
|
|
||||||
implementation "androidx.browser:browser:1.3.0"
|
|
||||||
implementation "androidx.cardview:cardview:1.0.0"
|
|
||||||
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
|
|
||||||
implementation 'androidx.exifinterface:exifinterface:1.3.7'
|
|
||||||
implementation "androidx.core:core-ktx:$CORE_KTX_VERSION"
|
|
||||||
implementation 'com.simplecityapps:recyclerview-fastscroll:2.0.1'
|
|
||||||
|
|
||||||
//swipe_layout
|
|
||||||
implementation 'com.daimajia.swipelayout:library:1.2.0@aar'
|
|
||||||
|
|
||||||
//Room
|
|
||||||
implementation "androidx.room:room-runtime:$ROOM_VERSION"
|
|
||||||
implementation "androidx.room:room-ktx:$ROOM_VERSION"
|
|
||||||
implementation "androidx.room:room-rxjava2:$ROOM_VERSION"
|
|
||||||
kapt "androidx.room:room-compiler:$ROOM_VERSION"
|
|
||||||
// For Kotlin use kapt instead of annotationProcessor
|
|
||||||
testImplementation "androidx.arch.core:core-testing:2.1.0"
|
|
||||||
|
|
||||||
// Pref
|
|
||||||
// Java language implementation
|
|
||||||
implementation "androidx.preference:preference:$PREFERENCE_VERSION"
|
|
||||||
// Kotlin
|
|
||||||
implementation "androidx.preference:preference-ktx:$PREFERENCE_VERSION"
|
|
||||||
//Android Media
|
|
||||||
implementation 'com.github.juanitobananas:AndroidMediaUtil:v1.0-1'
|
|
||||||
|
|
||||||
implementation "androidx.multidex:multidex:$MULTIDEX_VERSION"
|
|
||||||
|
|
||||||
def work_version = "2.8.1"
|
|
||||||
// Kotlin + coroutines
|
|
||||||
implementation "androidx.work:work-runtime-ktx:$work_version"
|
|
||||||
implementation("androidx.work:work-runtime:$work_version")
|
|
||||||
testImplementation "androidx.work:work-testing:$work_version"
|
|
||||||
|
|
||||||
//Glide
|
|
||||||
implementation 'com.github.bumptech.glide:glide:4.16.0'
|
|
||||||
annotationProcessor 'com.github.bumptech.glide:compiler:4.16.0'
|
|
||||||
kaptTest "androidx.databinding:databinding-compiler:8.0.2"
|
|
||||||
kaptAndroidTest "androidx.databinding:databinding-compiler:8.0.2"
|
|
||||||
|
|
||||||
implementation("io.github.coordinates2country:coordinates2country-android:1.8") { exclude group: 'com.google.android', module: 'android' }
|
|
||||||
|
|
||||||
//OSMDroid
|
|
||||||
implementation ("org.osmdroid:osmdroid-android:$OSMDROID_VERSION")
|
|
||||||
constraints {
|
|
||||||
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0") {
|
|
||||||
because("kotlin-stdlib-jdk7 is now a part of kotlin-stdlib")
|
|
||||||
}
|
|
||||||
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0") {
|
|
||||||
because("kotlin-stdlib-jdk8 is now a part of kotlin-stdlib")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
task disableAnimations(type: Exec) {
|
|
||||||
def adb = "$System.env.ANDROID_HOME/platform-tools/adb"
|
|
||||||
commandLine "$adb", 'shell', 'settings', 'put', 'global', 'window_animation_scale', '0'
|
|
||||||
commandLine "$adb", 'shell', 'settings', 'put', 'global', 'transition_animation_scale', '0'
|
|
||||||
commandLine "$adb", 'shell', 'settings', 'put', 'global', 'animator_duration_scale', '0'
|
|
||||||
}
|
|
||||||
|
|
||||||
project.gradle.taskGraph.whenReady {
|
|
||||||
connectedBetaDebugAndroidTest.dependsOn disableAnimations
|
|
||||||
connectedProdDebugAndroidTest.dependsOn disableAnimations
|
|
||||||
}
|
|
||||||
|
|
||||||
android {
|
|
||||||
compileSdkVersion 34
|
|
||||||
|
|
||||||
defaultConfig {
|
|
||||||
//applicationId 'fr.free.nrw.commons'
|
|
||||||
|
|
||||||
versionCode 1051
|
|
||||||
versionName '5.4.0'
|
|
||||||
setProperty("archivesBaseName", "app-commons-v$versionName-" + getBranchName())
|
|
||||||
|
|
||||||
minSdkVersion 21
|
|
||||||
targetSdkVersion 34
|
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
|
||||||
testInstrumentationRunnerArguments clearPackageData: 'true'
|
|
||||||
|
|
||||||
multiDexEnabled true
|
|
||||||
|
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
|
||||||
|
|
||||||
vectorDrawables.useSupportLibrary = true
|
|
||||||
}
|
|
||||||
packagingOptions {
|
|
||||||
jniLibs {
|
|
||||||
excludes += ['META-INF/androidx.*']
|
|
||||||
}
|
|
||||||
resources {
|
|
||||||
excludes += ['META-INF/androidx.*', 'META-INF/proguard/androidx-annotations.pro', '/META-INF/LICENSE.md', '/META-INF/LICENSE-notice.md']
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
testOptions {
|
|
||||||
animationsDisabled true
|
|
||||||
|
|
||||||
unitTests {
|
|
||||||
returnDefaultValues = true
|
|
||||||
includeAndroidResources = true
|
|
||||||
}
|
|
||||||
|
|
||||||
unitTests.all {
|
|
||||||
jvmArgs '-noverify'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
sourceSets {
|
|
||||||
// use kotlin only in tests (for now)
|
|
||||||
test.java.srcDirs += 'src/test/kotlin'
|
|
||||||
|
|
||||||
// use main assets and resources in test
|
|
||||||
test.assets.srcDirs += 'src/main/assets'
|
|
||||||
test.resources.srcDirs += 'src/main/resoures'
|
|
||||||
}
|
|
||||||
|
|
||||||
signingConfigs {
|
|
||||||
release
|
|
||||||
}
|
|
||||||
|
|
||||||
buildTypes {
|
|
||||||
release {
|
|
||||||
minifyEnabled true
|
|
||||||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
|
|
||||||
testProguardFile 'test-proguard-rules.txt'
|
|
||||||
signingConfig signingConfigs.debug
|
|
||||||
if (isRunningOnTravisAndIsNotPRBuild) {
|
|
||||||
signingConfig signingConfigs.release
|
|
||||||
}
|
|
||||||
}
|
|
||||||
debug {
|
|
||||||
minifyEnabled false
|
|
||||||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
|
|
||||||
testProguardFile 'test-proguard-rules.txt'
|
|
||||||
versionNameSuffix "-debug-" + getBranchName()
|
|
||||||
enableUnitTestCoverage true
|
|
||||||
enableAndroidTestCoverage true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isRunningOnTravisAndIsNotPRBuild) {
|
|
||||||
// configure keystore based on env vars in Travis for automated alpha builds
|
|
||||||
signingConfigs.release.storeFile = file("../nr-commons.keystore")
|
|
||||||
signingConfigs.release.storePassword = System.getenv("keystore_password")
|
|
||||||
signingConfigs.release.keyAlias = System.getenv("key_alias")
|
|
||||||
signingConfigs.release.keyPassword = System.getenv("key_password")
|
|
||||||
}
|
|
||||||
|
|
||||||
configurations.all {
|
|
||||||
resolutionStrategy.force 'androidx.annotation:annotation:1.1.0'
|
|
||||||
resolutionStrategy.force 'com.jakewharton.timber:timber:4.7.1'
|
|
||||||
resolutionStrategy.force 'androidx.fragment:fragment:1.3.6'
|
|
||||||
exclude module: 'okhttp-ws'
|
|
||||||
}
|
|
||||||
flavorDimensions 'tier'
|
|
||||||
productFlavors {
|
|
||||||
prod {
|
|
||||||
|
|
||||||
applicationId 'fr.free.nrw.commons'
|
|
||||||
|
|
||||||
buildConfigField "String", "WIKIMEDIA_API_POTD", "\"https://commons.wikimedia.org/w/api.php?action=featuredfeed&feed=potd&feedformat=rss&language=en\""
|
|
||||||
buildConfigField "String", "WIKIMEDIA_API_HOST", "\"https://commons.wikimedia.org/w/api.php\""
|
|
||||||
buildConfigField "String", "WIKIDATA_API_HOST", "\"https://www.wikidata.org/w/api.php\""
|
|
||||||
buildConfigField "String", "WIKIDATA_URL", "\"https://www.wikidata.org\""
|
|
||||||
buildConfigField "String", "WIKIMEDIA_FORGE_API_HOST", "\"https://tools.wmflabs.org/\""
|
|
||||||
buildConfigField "String", "WIKIMEDIA_CAMPAIGNS_URL", "\"https://raw.githubusercontent.com/commons-app/campaigns/master/campaigns.json\""
|
|
||||||
buildConfigField "String", "IMAGE_URL_BASE", "\"https://upload.wikimedia.org/wikipedia/commons\""
|
|
||||||
buildConfigField "String", "HOME_URL", "\"https://commons.wikimedia.org/wiki/\""
|
|
||||||
buildConfigField "String", "COMMONS_URL", "\"https://commons.wikimedia.org\""
|
|
||||||
buildConfigField "String", "WIKIDATA_URL", "\"https://www.wikidata.org\""
|
|
||||||
buildConfigField "String", "MOBILE_HOME_URL", "\"https://commons.m.wikimedia.org/wiki/\""
|
|
||||||
buildConfigField "String", "MOBILE_META_URL", "\"https://meta.m.wikimedia.org/wiki/\""
|
|
||||||
buildConfigField "String", "SIGNUP_LANDING_URL", "\"https://commons.m.wikimedia.org/w/index.php?title=Special:CreateAccount&returnto=Main+Page&returntoquery=welcome%3Dyes\""
|
|
||||||
buildConfigField "String", "SIGNUP_SUCCESS_REDIRECTION_URL", "\"https://commons.m.wikimedia.org/w/index.php?title=Main_Page&welcome=yes\""
|
|
||||||
buildConfigField "String", "FORGOT_PASSWORD_URL", "\"https://commons.wikimedia.org/wiki/Special:PasswordReset\""
|
|
||||||
buildConfigField "String", "PRIVACY_POLICY_URL", "\"https://commons-app.github.io/privacy-policy\""
|
|
||||||
buildConfigField "String", "FILE_USAGES_BASE_URL", "\"https://commons.wikimedia.org/w/api.php?action=query&format=json&formatversion=2\""
|
|
||||||
buildConfigField "String", "ACCOUNT_TYPE", "\"fr.free.nrw.commons\""
|
|
||||||
buildConfigField "String", "CONTRIBUTION_AUTHORITY", "\"fr.free.nrw.commons.contributions.contentprovider\""
|
|
||||||
buildConfigField "String", "MODIFICATION_AUTHORITY", "\"fr.free.nrw.commons.modifications.contentprovider\""
|
|
||||||
buildConfigField "String", "CATEGORY_AUTHORITY", "\"fr.free.nrw.commons.categories.contentprovider\""
|
|
||||||
buildConfigField "String", "RECENT_SEARCH_AUTHORITY", "\"fr.free.nrw.commons.explore.recentsearches.contentprovider\""
|
|
||||||
buildConfigField "String", "RECENT_LANGUAGE_AUTHORITY", "\"fr.free.nrw.commons.recentlanguages.contentprovider\""
|
|
||||||
buildConfigField "String", "BOOKMARK_AUTHORITY", "\"fr.free.nrw.commons.bookmarks.contentprovider\""
|
|
||||||
buildConfigField "String", "BOOKMARK_LOCATIONS_AUTHORITY", "\"fr.free.nrw.commons.bookmarks.locations.contentprovider\""
|
|
||||||
buildConfigField "String", "BOOKMARK_ITEMS_AUTHORITY", "\"fr.free.nrw.commons.bookmarks.items.contentprovider\""
|
|
||||||
buildConfigField "String", "COMMIT_SHA", "\"" + getBuildVersion().toString() + "\""
|
|
||||||
buildConfigField "String", "TEST_USERNAME", "\"" + getTestUserName() + "\""
|
|
||||||
buildConfigField "String", "TEST_PASSWORD", "\"" + getTestPassword() + "\""
|
|
||||||
buildConfigField "String", "DEPICTS_PROPERTY", "\"P180\""
|
|
||||||
buildConfigField "String", "CREATOR_PROPERTY", "\"P170\""
|
|
||||||
dimension 'tier'
|
|
||||||
}
|
|
||||||
|
|
||||||
beta {
|
|
||||||
applicationId 'fr.free.nrw.commons.beta'
|
|
||||||
|
|
||||||
// What values do we need to hit the BETA versions of the site / api ?
|
|
||||||
buildConfigField "String", "WIKIMEDIA_API_POTD", "\"https://commons.wikimedia.org/w/api.php?action=featuredfeed&feed=potd&feedformat=rss&language=en\""
|
|
||||||
buildConfigField "String", "WIKIMEDIA_API_HOST", "\"https://commons.wikimedia.beta.wmflabs.org/w/api.php\""
|
|
||||||
buildConfigField "String", "WIKIDATA_API_HOST", "\"https://www.wikidata.org/w/api.php\""
|
|
||||||
buildConfigField "String", "WIKIDATA_URL", "\"https://www.wikidata.org\""
|
|
||||||
buildConfigField "String", "WIKIMEDIA_FORGE_API_HOST", "\"https://tools.wmflabs.org/\""
|
|
||||||
buildConfigField "String", "WIKIMEDIA_CAMPAIGNS_URL", "\"https://raw.githubusercontent.com/commons-app/campaigns/master/campaigns_beta_active.json\""
|
|
||||||
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", "COMMONS_URL", "\"https://commons.wikimedia.beta.wmflabs.org\""
|
|
||||||
buildConfigField "String", "WIKIDATA_URL", "\"https://www.wikidata.org\""
|
|
||||||
buildConfigField "String", "MOBILE_HOME_URL", "\"https://commons.m.wikimedia.beta.wmflabs.org/wiki/\""
|
|
||||||
buildConfigField "String", "MOBILE_META_URL", "\"https://meta.m.wikimedia.beta.wmflabs.org/wiki/\""
|
|
||||||
buildConfigField "String", "SIGNUP_LANDING_URL", "\"https://commons.m.wikimedia.beta.wmflabs.org/w/index.php?title=Special:CreateAccount&returnto=Main+Page&returntoquery=welcome%3Dyes\""
|
|
||||||
buildConfigField "String", "SIGNUP_SUCCESS_REDIRECTION_URL", "\"https://commons.m.wikimedia.beta.wmflabs.org/w/index.php?title=Main_Page&welcome=yes\""
|
|
||||||
buildConfigField "String", "FORGOT_PASSWORD_URL", "\"https://commons.wikimedia.beta.wmflabs.org/wiki/Special:PasswordReset\""
|
|
||||||
buildConfigField "String", "PRIVACY_POLICY_URL", "\"https://commons-app.github.io/privacy-policy\""
|
|
||||||
buildConfigField "String", "FILE_USAGES_BASE_URL", "\"https://commons.wikimedia.org/w/api.php?action=query&format=json&formatversion=2\""
|
|
||||||
buildConfigField "String", "ACCOUNT_TYPE", "\"fr.free.nrw.commons.beta\""
|
|
||||||
buildConfigField "String", "CONTRIBUTION_AUTHORITY", "\"fr.free.nrw.commons.beta.contributions.contentprovider\""
|
|
||||||
buildConfigField "String", "MODIFICATION_AUTHORITY", "\"fr.free.nrw.commons.beta.modifications.contentprovider\""
|
|
||||||
buildConfigField "String", "CATEGORY_AUTHORITY", "\"fr.free.nrw.commons.beta.categories.contentprovider\""
|
|
||||||
buildConfigField "String", "RECENT_SEARCH_AUTHORITY", "\"fr.free.nrw.commons.beta.explore.recentsearches.contentprovider\""
|
|
||||||
buildConfigField "String", "RECENT_LANGUAGE_AUTHORITY", "\"fr.free.nrw.commons.beta.recentlanguages.contentprovider\""
|
|
||||||
buildConfigField "String", "BOOKMARK_AUTHORITY", "\"fr.free.nrw.commons.beta.bookmarks.contentprovider\""
|
|
||||||
buildConfigField "String", "BOOKMARK_LOCATIONS_AUTHORITY", "\"fr.free.nrw.commons.beta.bookmarks.locations.contentprovider\""
|
|
||||||
buildConfigField "String", "BOOKMARK_ITEMS_AUTHORITY", "\"fr.free.nrw.commons.beta.bookmarks.items.contentprovider\""
|
|
||||||
buildConfigField "String", "COMMIT_SHA", "\"" + getBuildVersion().toString() + "\""
|
|
||||||
buildConfigField "String", "TEST_USERNAME", "\"" + getTestUserName() + "\""
|
|
||||||
buildConfigField "String", "TEST_PASSWORD", "\"" + getTestPassword() + "\""
|
|
||||||
buildConfigField "String", "DEPICTS_PROPERTY", "\"P245962\""
|
|
||||||
buildConfigField "String", "CREATOR_PROPERTY", "\"P253075\""
|
|
||||||
dimension 'tier'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
compileOptions {
|
|
||||||
sourceCompatibility JavaVersion.VERSION_17
|
|
||||||
targetCompatibility JavaVersion.VERSION_17
|
|
||||||
}
|
|
||||||
kotlinOptions {
|
|
||||||
jvmTarget = "17"
|
|
||||||
}
|
|
||||||
|
|
||||||
buildToolsVersion buildToolsVersion
|
|
||||||
|
|
||||||
buildFeatures {
|
|
||||||
viewBinding true
|
|
||||||
compose true
|
|
||||||
}
|
|
||||||
composeOptions {
|
|
||||||
kotlinCompilerExtensionVersion '1.5.8'
|
|
||||||
}
|
|
||||||
namespace 'fr.free.nrw.commons'
|
|
||||||
lint {
|
|
||||||
abortOnError false
|
|
||||||
disable 'MissingTranslation', 'ExtraTranslation'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
String getTestUserName() {
|
|
||||||
def propFile = rootProject.file("./local.properties")
|
|
||||||
def properties = new Properties()
|
|
||||||
properties.load(new FileInputStream(propFile))
|
|
||||||
return properties['TEST_USER_NAME']
|
|
||||||
}
|
|
||||||
|
|
||||||
String getTestPassword() {
|
|
||||||
def propFile = rootProject.file("./local.properties")
|
|
||||||
def properties = new Properties()
|
|
||||||
properties.load(new FileInputStream(propFile))
|
|
||||||
return properties['TEST_USER_PASSWORD']
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isRunningOnTravisAndIsNotPRBuild) {
|
|
||||||
play {
|
|
||||||
track = "alpha"
|
|
||||||
userFraction = 1
|
|
||||||
serviceAccountEmail = System.getenv("SERVICE_ACCOUNT_NAME")
|
|
||||||
serviceAccountCredentials = file("../play.p12")
|
|
||||||
|
|
||||||
resolutionStrategy = "auto"
|
|
||||||
outputProcessor { // this: ApkVariantOutput
|
|
||||||
versionNameOverride = "$versionNameOverride.$versionCode"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
445
app/build.gradle.kts
Normal file
445
app/build.gradle.kts
Normal file
|
|
@ -0,0 +1,445 @@
|
||||||
|
import java.util.Properties
|
||||||
|
import java.io.ByteArrayOutputStream
|
||||||
|
|
||||||
|
plugins {
|
||||||
|
alias(libs.plugins.android.application)
|
||||||
|
alias(libs.plugins.jetbrains.kotlin.android)
|
||||||
|
alias(libs.plugins.kotlin.kapt)
|
||||||
|
alias(libs.plugins.kotlin.parcelize)
|
||||||
|
}
|
||||||
|
|
||||||
|
apply(from = "$rootDir/jacoco.gradle")
|
||||||
|
|
||||||
|
val isRunningOnTravisAndIsNotPRBuild = System.getenv("CI") == "true" && file("../play.p12").exists()
|
||||||
|
|
||||||
|
if (isRunningOnTravisAndIsNotPRBuild) {
|
||||||
|
apply(plugin = "com.github.triplet.play")
|
||||||
|
}
|
||||||
|
|
||||||
|
android {
|
||||||
|
namespace = "fr.free.nrw.commons"
|
||||||
|
compileSdk = 34
|
||||||
|
|
||||||
|
defaultConfig {
|
||||||
|
applicationId = "fr.free.nrw.commons"
|
||||||
|
minSdk = 21
|
||||||
|
targetSdk = 34
|
||||||
|
versionCode = 1043
|
||||||
|
versionName = "5.1.2"
|
||||||
|
|
||||||
|
setProperty("archivesBaseName", "app-commons-v$versionName-" + getBranchName())
|
||||||
|
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||||
|
testInstrumentationRunnerArguments["clearPackageData"] = "true"
|
||||||
|
|
||||||
|
multiDexEnabled = true
|
||||||
|
|
||||||
|
vectorDrawables {
|
||||||
|
useSupportLibrary = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sourceSets {
|
||||||
|
getByName("test") {
|
||||||
|
// Use kotlin only in tests (for now)
|
||||||
|
java.srcDirs("src/test/kotlin")
|
||||||
|
|
||||||
|
// Use main assets and resources in test
|
||||||
|
assets.srcDirs("src/main/assets")
|
||||||
|
resources.srcDirs("src/main/resources")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
signingConfigs {
|
||||||
|
create("release") {
|
||||||
|
// Configure keystore based on env vars in Travis for automated alpha builds
|
||||||
|
if(isRunningOnTravisAndIsNotPRBuild) {
|
||||||
|
storeFile = file("../nr-commons.keystore")
|
||||||
|
storePassword = System.getenv("keystore_password")
|
||||||
|
keyAlias = System.getenv("key_alias")
|
||||||
|
keyPassword = System.getenv("key_password")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
buildTypes {
|
||||||
|
release {
|
||||||
|
isMinifyEnabled = true
|
||||||
|
proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.txt")
|
||||||
|
testProguardFile("test-proguard-rules.txt")
|
||||||
|
|
||||||
|
signingConfig = signingConfigs.getByName("debug")
|
||||||
|
if (isRunningOnTravisAndIsNotPRBuild) {
|
||||||
|
signingConfig = signingConfigs.getByName("release")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
debug {
|
||||||
|
isMinifyEnabled = false
|
||||||
|
proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.txt")
|
||||||
|
testProguardFile("test-proguard-rules.txt")
|
||||||
|
|
||||||
|
versionNameSuffix = "-debug-" + getBranchName()
|
||||||
|
enableUnitTestCoverage = true
|
||||||
|
enableAndroidTestCoverage = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
configurations.all {
|
||||||
|
resolutionStrategy {
|
||||||
|
force("androidx.annotation:annotation:1.1.0")
|
||||||
|
force("com.jakewharton.timber:timber:4.7.1")
|
||||||
|
force("androidx.fragment:fragment:1.3.6")
|
||||||
|
}
|
||||||
|
exclude(module = "okhttp-ws")
|
||||||
|
}
|
||||||
|
|
||||||
|
flavorDimensions += "tier"
|
||||||
|
productFlavors {
|
||||||
|
create("prod") {
|
||||||
|
dimension = "tier"
|
||||||
|
applicationId = "fr.free.nrw.commons"
|
||||||
|
|
||||||
|
buildConfigField("String", "WIKIMEDIA_API_POTD", "\"https://commons.wikimedia.org/w/api.php?action=featuredfeed&feed=potd&feedformat=rss&language=en\"")
|
||||||
|
buildConfigField("String", "WIKIMEDIA_API_HOST", "\"https://commons.wikimedia.org/w/api.php\"")
|
||||||
|
buildConfigField("String", "WIKIDATA_API_HOST", "\"https://www.wikidata.org/w/api.php\"")
|
||||||
|
buildConfigField("String", "WIKIDATA_URL", "\"https://www.wikidata.org\"")
|
||||||
|
buildConfigField("String", "WIKIMEDIA_FORGE_API_HOST", "\"https://tools.wmflabs.org/\"")
|
||||||
|
buildConfigField("String", "WIKIMEDIA_CAMPAIGNS_URL", "\"https://raw.githubusercontent.com/commons-app/campaigns/master/campaigns.json\"")
|
||||||
|
buildConfigField("String", "IMAGE_URL_BASE", "\"https://upload.wikimedia.org/wikipedia/commons\"")
|
||||||
|
buildConfigField("String", "HOME_URL", "\"https://commons.wikimedia.org/wiki/\"")
|
||||||
|
buildConfigField("String", "COMMONS_URL", "\"https://commons.wikimedia.org\"")
|
||||||
|
buildConfigField("String", "WIKIDATA_URL", "\"https://www.wikidata.org\"")
|
||||||
|
buildConfigField("String", "MOBILE_HOME_URL", "\"https://commons.m.wikimedia.org/wiki/\"")
|
||||||
|
buildConfigField("String", "MOBILE_META_URL", "\"https://meta.m.wikimedia.org/wiki/\"")
|
||||||
|
buildConfigField("String", "SIGNUP_LANDING_URL", "\"https://commons.m.wikimedia.org/w/index.php?title=Special:CreateAccount&returnto=Main+Page&returntoquery=welcome%3Dyes\"")
|
||||||
|
buildConfigField("String", "SIGNUP_SUCCESS_REDIRECTION_URL", "\"https://commons.m.wikimedia.org/w/index.php?title=Main_Page&welcome=yes\"")
|
||||||
|
buildConfigField("String", "FORGOT_PASSWORD_URL", "\"https://commons.wikimedia.org/wiki/Special:PasswordReset\"")
|
||||||
|
buildConfigField("String", "PRIVACY_POLICY_URL", "\"https://github.com/commons-app/commons-app-documentation/blob/master/android/Privacy-policy.md\"")
|
||||||
|
buildConfigField("String", "FILE_USAGES_BASE_URL", "\"https://commons.wikimedia.org/w/api.php?action=query&format=json&formatversion=2\"")
|
||||||
|
buildConfigField("String", "ACCOUNT_TYPE", "\"fr.free.nrw.commons\"")
|
||||||
|
buildConfigField("String", "CONTRIBUTION_AUTHORITY", "\"fr.free.nrw.commons.contributions.contentprovider\"")
|
||||||
|
buildConfigField("String", "MODIFICATION_AUTHORITY", "\"fr.free.nrw.commons.modifications.contentprovider\"")
|
||||||
|
buildConfigField("String", "CATEGORY_AUTHORITY", "\"fr.free.nrw.commons.categories.contentprovider\"")
|
||||||
|
buildConfigField("String", "RECENT_SEARCH_AUTHORITY", "\"fr.free.nrw.commons.explore.recentsearches.contentprovider\"")
|
||||||
|
buildConfigField("String", "RECENT_LANGUAGE_AUTHORITY", "\"fr.free.nrw.commons.recentlanguages.contentprovider\"")
|
||||||
|
buildConfigField("String", "BOOKMARK_AUTHORITY", "\"fr.free.nrw.commons.bookmarks.contentprovider\"")
|
||||||
|
buildConfigField("String", "BOOKMARK_LOCATIONS_AUTHORITY", "\"fr.free.nrw.commons.bookmarks.locations.contentprovider\"")
|
||||||
|
buildConfigField("String", "BOOKMARK_ITEMS_AUTHORITY", "\"fr.free.nrw.commons.bookmarks.items.contentprovider\"")
|
||||||
|
buildConfigField("String", "COMMIT_SHA", "\"" + getBuildVersion().toString() + "\"")
|
||||||
|
buildConfigField("String", "TEST_USERNAME", "\"" + getTestUserName() + "\"")
|
||||||
|
buildConfigField("String", "TEST_PASSWORD", "\"" + getTestPassword() + "\"")
|
||||||
|
buildConfigField("String", "DEPICTS_PROPERTY", "\"P180\"")
|
||||||
|
buildConfigField("String", "CREATOR_PROPERTY", "\"P170\"")
|
||||||
|
}
|
||||||
|
|
||||||
|
create("beta") {
|
||||||
|
dimension = "tier"
|
||||||
|
applicationId = "fr.free.nrw.commons.beta"
|
||||||
|
|
||||||
|
// What values do we need to hit the BETA versions of the site / api ?
|
||||||
|
buildConfigField("String", "WIKIMEDIA_API_POTD", "\"https://commons.wikimedia.org/w/api.php?action=featuredfeed&feed=potd&feedformat=rss&language=en\"")
|
||||||
|
buildConfigField("String", "WIKIMEDIA_API_HOST", "\"https://commons.wikimedia.beta.wmflabs.org/w/api.php\"")
|
||||||
|
buildConfigField("String", "WIKIDATA_API_HOST", "\"https://www.wikidata.org/w/api.php\"")
|
||||||
|
buildConfigField("String", "WIKIDATA_URL", "\"https://www.wikidata.org\"")
|
||||||
|
buildConfigField("String", "WIKIMEDIA_FORGE_API_HOST", "\"https://tools.wmflabs.org/\"")
|
||||||
|
buildConfigField("String", "WIKIMEDIA_CAMPAIGNS_URL", "\"https://raw.githubusercontent.com/commons-app/campaigns/master/campaigns_beta_active.json\"")
|
||||||
|
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", "COMMONS_URL", "\"https://commons.wikimedia.beta.wmflabs.org\"")
|
||||||
|
buildConfigField("String", "WIKIDATA_URL", "\"https://www.wikidata.org\"")
|
||||||
|
buildConfigField("String", "MOBILE_HOME_URL", "\"https://commons.m.wikimedia.beta.wmflabs.org/wiki/\"")
|
||||||
|
buildConfigField("String", "MOBILE_META_URL", "\"https://meta.m.wikimedia.beta.wmflabs.org/wiki/\"")
|
||||||
|
buildConfigField("String", "SIGNUP_LANDING_URL", "\"https://commons.m.wikimedia.beta.wmflabs.org/w/index.php?title=Special:CreateAccount&returnto=Main+Page&returntoquery=welcome%3Dyes\"")
|
||||||
|
buildConfigField("String", "SIGNUP_SUCCESS_REDIRECTION_URL", "\"https://commons.m.wikimedia.beta.wmflabs.org/w/index.php?title=Main_Page&welcome=yes\"")
|
||||||
|
buildConfigField("String", "FORGOT_PASSWORD_URL", "\"https://commons.wikimedia.beta.wmflabs.org/wiki/Special:PasswordReset\"")
|
||||||
|
buildConfigField("String", "PRIVACY_POLICY_URL", "\"https://github.com/commons-app/commons-app-documentation/blob/master/android/Privacy-policy.md\"")
|
||||||
|
buildConfigField("String", "FILE_USAGES_BASE_URL", "\"https://commons.wikimedia.org/w/api.php?action=query&format=json&formatversion=2\"")
|
||||||
|
buildConfigField("String", "ACCOUNT_TYPE", "\"fr.free.nrw.commons.beta\"")
|
||||||
|
buildConfigField("String", "CONTRIBUTION_AUTHORITY", "\"fr.free.nrw.commons.beta.contributions.contentprovider\"")
|
||||||
|
buildConfigField("String", "MODIFICATION_AUTHORITY", "\"fr.free.nrw.commons.beta.modifications.contentprovider\"")
|
||||||
|
buildConfigField("String", "CATEGORY_AUTHORITY", "\"fr.free.nrw.commons.beta.categories.contentprovider\"")
|
||||||
|
buildConfigField("String", "RECENT_SEARCH_AUTHORITY", "\"fr.free.nrw.commons.beta.explore.recentsearches.contentprovider\"")
|
||||||
|
buildConfigField("String", "RECENT_LANGUAGE_AUTHORITY", "\"fr.free.nrw.commons.beta.recentlanguages.contentprovider\"")
|
||||||
|
buildConfigField("String", "BOOKMARK_AUTHORITY", "\"fr.free.nrw.commons.beta.bookmarks.contentprovider\"")
|
||||||
|
buildConfigField("String", "BOOKMARK_LOCATIONS_AUTHORITY", "\"fr.free.nrw.commons.beta.bookmarks.locations.contentprovider\"")
|
||||||
|
buildConfigField("String", "BOOKMARK_ITEMS_AUTHORITY", "\"fr.free.nrw.commons.beta.bookmarks.items.contentprovider\"")
|
||||||
|
buildConfigField("String", "COMMIT_SHA", "\"" + getBuildVersion().toString() + "\"")
|
||||||
|
buildConfigField("String", "TEST_USERNAME", "\"" + getTestUserName() + "\"")
|
||||||
|
buildConfigField("String", "TEST_PASSWORD", "\"" + getTestPassword() + "\"")
|
||||||
|
buildConfigField("String", "DEPICTS_PROPERTY", "\"P245962\"")
|
||||||
|
buildConfigField("String", "CREATOR_PROPERTY", "\"P253075\"")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
compileOptions {
|
||||||
|
sourceCompatibility = JavaVersion.VERSION_17
|
||||||
|
targetCompatibility = JavaVersion.VERSION_17
|
||||||
|
}
|
||||||
|
kotlinOptions {
|
||||||
|
jvmTarget = "17"
|
||||||
|
}
|
||||||
|
buildFeatures {
|
||||||
|
buildConfig = true
|
||||||
|
viewBinding = true
|
||||||
|
compose = true
|
||||||
|
}
|
||||||
|
buildToolsVersion = buildToolsVersion
|
||||||
|
composeOptions {
|
||||||
|
kotlinCompilerExtensionVersion = "1.5.8"
|
||||||
|
}
|
||||||
|
packaging {
|
||||||
|
jniLibs {
|
||||||
|
excludes += listOf("META-INF/androidx.*")
|
||||||
|
}
|
||||||
|
resources {
|
||||||
|
excludes += listOf(
|
||||||
|
"META-INF/androidx.*",
|
||||||
|
"META-INF/proguard/androidx-annotations.pro",
|
||||||
|
"/META-INF/LICENSE.md",
|
||||||
|
"/META-INF/LICENSE-notice.md"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
testOptions {
|
||||||
|
animationsDisabled = true
|
||||||
|
unitTests {
|
||||||
|
isReturnDefaultValues = true
|
||||||
|
isIncludeAndroidResources = true
|
||||||
|
}
|
||||||
|
unitTests.all {
|
||||||
|
it.jvmArgs("-noverify")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lint {
|
||||||
|
abortOnError = false
|
||||||
|
disable += listOf("MissingTranslation", "ExtraTranslation")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
// Utils
|
||||||
|
implementation(libs.gson)
|
||||||
|
implementation(libs.okhttp)
|
||||||
|
implementation(libs.retrofit)
|
||||||
|
implementation(libs.retrofit.converter.gson)
|
||||||
|
implementation(libs.retrofit.adapter.rxjava)
|
||||||
|
implementation(libs.rxandroid)
|
||||||
|
implementation(libs.rxjava)
|
||||||
|
implementation(libs.rxbinding)
|
||||||
|
implementation(libs.rxbinding.appcompat)
|
||||||
|
implementation(libs.facebook.fresco)
|
||||||
|
implementation(libs.apache.commons.lang3)
|
||||||
|
|
||||||
|
// UI
|
||||||
|
implementation("${libs.viewpagerindicator.library.get()}@aar")
|
||||||
|
implementation(libs.photoview)
|
||||||
|
implementation(libs.android.sdk)
|
||||||
|
implementation(libs.android.plugin.scalebar)
|
||||||
|
|
||||||
|
implementation(libs.timber)
|
||||||
|
implementation(libs.android.material)
|
||||||
|
implementation(libs.dexter)
|
||||||
|
|
||||||
|
// Jetpack Compose
|
||||||
|
implementation(libs.androidx.core.ktx)
|
||||||
|
implementation(libs.androidx.lifecycle.runtime.ktx)
|
||||||
|
implementation(libs.androidx.activity.compose)
|
||||||
|
implementation(platform(libs.androidx.compose.bom))
|
||||||
|
implementation(libs.androidx.compose.runtime)
|
||||||
|
implementation(libs.androidx.ui)
|
||||||
|
implementation(libs.androidx.ui.graphics)
|
||||||
|
implementation(libs.androidx.ui.tooling.preview)
|
||||||
|
implementation(libs.androidx.ui.viewbinding)
|
||||||
|
implementation(libs.androidx.material3)
|
||||||
|
implementation(libs.androidx.foundation)
|
||||||
|
implementation(libs.androidx.foundation.layout)
|
||||||
|
androidTestImplementation(platform(libs.androidx.compose.bom))
|
||||||
|
androidTestImplementation(libs.androidx.ui.test.junit4)
|
||||||
|
debugImplementation(libs.androidx.ui.tooling)
|
||||||
|
debugImplementation(libs.androidx.ui.test.manifest)
|
||||||
|
|
||||||
|
implementation(libs.adapterdelegates4.kotlin.dsl.viewbinding)
|
||||||
|
implementation(libs.adapterdelegates4.pagination)
|
||||||
|
implementation(libs.androidx.paging.runtime.ktx)
|
||||||
|
testImplementation(libs.androidx.paging.common.ktx)
|
||||||
|
implementation(libs.androidx.paging.rxjava2.ktx)
|
||||||
|
implementation(libs.androidx.recyclerview)
|
||||||
|
|
||||||
|
// Logging
|
||||||
|
implementation(libs.acra.dialog)
|
||||||
|
implementation(libs.acra.mail)
|
||||||
|
implementation(libs.slf4j.api)
|
||||||
|
implementation(libs.logback.android.classic) {
|
||||||
|
exclude(group = "com.google.android", module = "android")
|
||||||
|
}
|
||||||
|
implementation(libs.logging.interceptor)
|
||||||
|
|
||||||
|
// Dependency injector
|
||||||
|
implementation(libs.dagger.android)
|
||||||
|
implementation(libs.dagger.android.support)
|
||||||
|
kapt(libs.dagger.android.processor)
|
||||||
|
kapt(libs.dagger.compiler)
|
||||||
|
annotationProcessor(libs.dagger.android.processor)
|
||||||
|
|
||||||
|
implementation(libs.kotlin.reflect)
|
||||||
|
|
||||||
|
//Mocking
|
||||||
|
testImplementation(libs.mockito.kotlin)
|
||||||
|
testImplementation(libs.mockito.core)
|
||||||
|
testImplementation(libs.powermock.module.junit)
|
||||||
|
testImplementation(libs.powermock.api.mockito)
|
||||||
|
testImplementation(libs.mockk)
|
||||||
|
|
||||||
|
// Unit testing
|
||||||
|
testImplementation(libs.junit)
|
||||||
|
testImplementation(libs.robolectric)
|
||||||
|
testImplementation(libs.androidx.test.core)
|
||||||
|
testImplementation(libs.androidx.runner)
|
||||||
|
testImplementation(libs.androidx.test.ext.junit)
|
||||||
|
testImplementation(libs.androidx.test.rules)
|
||||||
|
testImplementation(libs.mockwebserver)
|
||||||
|
testImplementation(libs.livedata.testing.ktx)
|
||||||
|
testImplementation(libs.androidx.core.testing)
|
||||||
|
testImplementation(libs.junit.jupiter.api)
|
||||||
|
testRuntimeOnly(libs.junit.jupiter.engine)
|
||||||
|
testImplementation(libs.soloader)
|
||||||
|
testImplementation(libs.kotlinx.coroutines.test)
|
||||||
|
debugImplementation(libs.androidx.fragment.testing)
|
||||||
|
testImplementation(libs.commons.io)
|
||||||
|
|
||||||
|
// Android testing
|
||||||
|
androidTestImplementation(libs.androidx.espresso.core)
|
||||||
|
androidTestImplementation(libs.androidx.espresso.intents)
|
||||||
|
androidTestImplementation(libs.androidx.espresso.contrib)
|
||||||
|
androidTestImplementation(libs.androidx.runner)
|
||||||
|
androidTestImplementation(libs.androidx.test.rules)
|
||||||
|
androidTestImplementation(libs.androidx.test.core)
|
||||||
|
androidTestImplementation(libs.androidx.test.ext.junit)
|
||||||
|
androidTestImplementation(libs.androidx.annotation)
|
||||||
|
androidTestImplementation(libs.mockwebserver)
|
||||||
|
androidTestImplementation(libs.androidx.uiautomator)
|
||||||
|
|
||||||
|
// Debugging
|
||||||
|
debugImplementation(libs.leakcanary.android)
|
||||||
|
|
||||||
|
// Support libraries
|
||||||
|
implementation(libs.androidx.browser)
|
||||||
|
implementation(libs.androidx.cardview)
|
||||||
|
implementation(libs.androidx.constraintlayout)
|
||||||
|
implementation(libs.androidx.exifinterface)
|
||||||
|
implementation(libs.recyclerview.fastscroll)
|
||||||
|
|
||||||
|
//swipe_layout
|
||||||
|
implementation(libs.swipelayout.library)
|
||||||
|
|
||||||
|
//Room
|
||||||
|
implementation(libs.androidx.room.runtime)
|
||||||
|
implementation(libs.androidx.room.ktx)
|
||||||
|
implementation(libs.androidx.room.rxjava)
|
||||||
|
kapt(libs.androidx.room.compiler)
|
||||||
|
|
||||||
|
// Preferences
|
||||||
|
implementation(libs.androidx.preference)
|
||||||
|
implementation(libs.androidx.preference.ktx)
|
||||||
|
|
||||||
|
//Android Media
|
||||||
|
implementation(libs.juanitobananas.androidDmediaUtil)
|
||||||
|
implementation(libs.androidx.multidex)
|
||||||
|
|
||||||
|
// Kotlin + coroutines
|
||||||
|
implementation(libs.androidx.work.runtime.ktx)
|
||||||
|
implementation(libs.androidx.work.runtime)
|
||||||
|
testImplementation(libs.androidx.work.testing)
|
||||||
|
|
||||||
|
//Glide
|
||||||
|
implementation(libs.glide)
|
||||||
|
annotationProcessor(libs.glide.compiler)
|
||||||
|
kaptTest(libs.androidx.databinding.compiler)
|
||||||
|
kaptAndroidTest(libs.androidx.databinding.compiler)
|
||||||
|
|
||||||
|
implementation(libs.coordinates2country.android) {
|
||||||
|
exclude(group = "com.google.android", module = "android")
|
||||||
|
}
|
||||||
|
|
||||||
|
//OSMDroid
|
||||||
|
implementation(libs.osmdroid.android)
|
||||||
|
constraints {
|
||||||
|
implementation(libs.kotlin.stdlib.jdk7) {
|
||||||
|
because("kotlin-stdlib-jdk7 is now a part of kotlin-stdlib")
|
||||||
|
}
|
||||||
|
implementation(libs.kotlin.stdlib.jdk8) {
|
||||||
|
because("kotlin-stdlib-jdk8 is now a part of kotlin-stdlib")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.register<Exec>("disableAnimations") {
|
||||||
|
val adb = "${System.getenv("ANDROID_HOME")}/platform-tools/adb"
|
||||||
|
commandLine(adb, "shell", "settings", "put", "global", "window_animation_scale", "0")
|
||||||
|
commandLine(adb, "shell", "settings", "put", "global", "transition_animation_scale", "0")
|
||||||
|
commandLine(adb, "shell", "settings", "put", "global", "animator_duration_scale", "0")
|
||||||
|
}
|
||||||
|
|
||||||
|
project.gradle.taskGraph.whenReady {
|
||||||
|
val connectedBetaDebugAndroidTest = tasks.named("connectedBetaDebugAndroidTest")
|
||||||
|
val connectedProdDebugAndroidTest = tasks.named("connectedProdDebugAndroidTest")
|
||||||
|
|
||||||
|
connectedBetaDebugAndroidTest.configure {
|
||||||
|
dependsOn("disableAnimations")
|
||||||
|
}
|
||||||
|
connectedProdDebugAndroidTest.configure {
|
||||||
|
dependsOn("disableAnimations")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun getTestUserName(): String? {
|
||||||
|
val propFile = rootProject.file("./local.properties")
|
||||||
|
val properties = Properties()
|
||||||
|
propFile.inputStream().use { properties.load(it) }
|
||||||
|
return properties.getProperty("TEST_USER_NAME")
|
||||||
|
}
|
||||||
|
|
||||||
|
fun getTestPassword(): String? {
|
||||||
|
val propFile = rootProject.file("./local.properties")
|
||||||
|
val properties = Properties()
|
||||||
|
propFile.inputStream().use { properties.load(it) }
|
||||||
|
return properties.getProperty("TEST_USER_PASSWORD")
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isRunningOnTravisAndIsNotPRBuild) {
|
||||||
|
configure<com.github.triplet.gradle.play.PlayPublisherExtension> {
|
||||||
|
track = "alpha"
|
||||||
|
userFraction = 1.0
|
||||||
|
serviceAccountEmail = System.getenv("SERVICE_ACCOUNT_NAME")
|
||||||
|
serviceAccountCredentials = file("../play.p12")
|
||||||
|
|
||||||
|
resolutionStrategy = "auto"
|
||||||
|
outputProcessor { // this: ApkVariantOutput
|
||||||
|
versionNameOverride = "$versionNameOverride.$versionCode"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun getBuildVersion(): String? {
|
||||||
|
return try {
|
||||||
|
val stdout = ByteArrayOutputStream()
|
||||||
|
exec {
|
||||||
|
commandLine("git", "rev-parse", "--short", "HEAD")
|
||||||
|
standardOutput = stdout
|
||||||
|
}
|
||||||
|
stdout.toString().trim()
|
||||||
|
} catch (e: Exception) {
|
||||||
|
null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun getBranchName(): String? {
|
||||||
|
return try {
|
||||||
|
val stdout = ByteArrayOutputStream()
|
||||||
|
exec {
|
||||||
|
commandLine("git", "rev-parse", "--abbrev-ref", "HEAD")
|
||||||
|
standardOutput = stdout
|
||||||
|
}
|
||||||
|
stdout.toString().trim()
|
||||||
|
} catch (e: Exception) {
|
||||||
|
null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -49,7 +49,7 @@ class UploadCancelledTest {
|
||||||
fun setup() {
|
fun setup() {
|
||||||
try {
|
try {
|
||||||
Intents.init()
|
Intents.init()
|
||||||
} catch (ex: IllegalStateException) {
|
} catch (_: IllegalStateException) {
|
||||||
}
|
}
|
||||||
device.unfreezeRotation()
|
device.unfreezeRotation()
|
||||||
device.setOrientationNatural()
|
device.setOrientationNatural()
|
||||||
|
|
@ -65,7 +65,7 @@ class UploadCancelledTest {
|
||||||
fun teardown() {
|
fun teardown() {
|
||||||
try {
|
try {
|
||||||
Intents.release()
|
Intents.release()
|
||||||
} catch (ex: IllegalStateException) {
|
} catch (_: IllegalStateException) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -71,7 +71,7 @@ class UploadTest {
|
||||||
fun setup() {
|
fun setup() {
|
||||||
try {
|
try {
|
||||||
Intents.init()
|
Intents.init()
|
||||||
} catch (ex: IllegalStateException) {
|
} catch (_: IllegalStateException) {
|
||||||
}
|
}
|
||||||
UITestHelper.loginUser()
|
UITestHelper.loginUser()
|
||||||
UITestHelper.skipWelcome()
|
UITestHelper.skipWelcome()
|
||||||
|
|
|
||||||
|
|
@ -28,9 +28,7 @@ class Media constructor(
|
||||||
*/
|
*/
|
||||||
var filename: String? = null,
|
var filename: String? = null,
|
||||||
/**
|
/**
|
||||||
* Gets or sets the file description.
|
* The fallback description of the file, used if no other description is provided.
|
||||||
* @return file description as a string
|
|
||||||
* @param fallbackDescription the new description of the file
|
|
||||||
*/
|
*/
|
||||||
var fallbackDescription: String? = null,
|
var fallbackDescription: String? = null,
|
||||||
/**
|
/**
|
||||||
|
|
@ -40,19 +38,24 @@ class Media constructor(
|
||||||
*/
|
*/
|
||||||
var dateUploaded: Date? = null,
|
var dateUploaded: Date? = null,
|
||||||
/**
|
/**
|
||||||
* Gets or sets the license name of the file.
|
* The license name of the file.
|
||||||
* @return license as a String
|
|
||||||
* @param license license name as a String
|
|
||||||
*/
|
*/
|
||||||
var license: String? = null,
|
var license: String? = null,
|
||||||
|
/**
|
||||||
|
* The URL corresponding to the license.
|
||||||
|
*/
|
||||||
var licenseUrl: String? = null,
|
var licenseUrl: String? = null,
|
||||||
/**
|
/**
|
||||||
* Gets or sets the name of the creator of the file.
|
* The name of the creator of the file.
|
||||||
* @return author name as a String
|
|
||||||
* @param author creator name as a string
|
|
||||||
*/
|
*/
|
||||||
var author: String? = null,
|
var author: String? = null,
|
||||||
|
/**
|
||||||
|
* The username of the uploader.
|
||||||
|
*/
|
||||||
var user: String? = null,
|
var user: String? = null,
|
||||||
|
/**
|
||||||
|
* The full name of the file's creator, if different from username.
|
||||||
|
*/
|
||||||
var creatorName: String? = null,
|
var creatorName: String? = null,
|
||||||
/**
|
/**
|
||||||
* Gets the categories the file falls under.
|
* Gets the categories the file falls under.
|
||||||
|
|
|
||||||
|
|
@ -129,9 +129,10 @@ interface PageEditInterface {
|
||||||
): Observable<Entities>
|
): Observable<Entities>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get wiki text for provided file names
|
* Gets the wiki text for the provided file name.
|
||||||
* @param titles : Name of the file
|
*
|
||||||
* @return Single<MwQueryResult>
|
* @param title The title (name) of the file to fetch wiki text for.
|
||||||
|
* @return A Single emitting the wiki query response.
|
||||||
*/
|
*/
|
||||||
@GET(MW_API_PREFIX + "action=query&prop=revisions&rvprop=content|timestamp&rvlimit=1&converttitles=")
|
@GET(MW_API_PREFIX + "action=query&prop=revisions&rvprop=content|timestamp&rvlimit=1&converttitles=")
|
||||||
fun getWikiText(
|
fun getWikiText(
|
||||||
|
|
|
||||||
|
|
@ -158,7 +158,9 @@ class SingleWebViewActivity : ComponentActivity() {
|
||||||
|
|
||||||
webChromeClient = object : WebChromeClient() {
|
webChromeClient = object : WebChromeClient() {
|
||||||
override fun onConsoleMessage(message: ConsoleMessage): Boolean {
|
override fun onConsoleMessage(message: ConsoleMessage): Boolean {
|
||||||
Timber.d("Console: ${message.message()} -- From line ${message.lineNumber()} of ${message.sourceId()}")
|
Timber.d("%s%s",
|
||||||
|
"Console: ${message.message()} -- From line ",
|
||||||
|
"${message.lineNumber()} of ${message.sourceId()}")
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ class Bookmark(
|
||||||
/**
|
/**
|
||||||
* Gets or Sets the content URI - marking this bookmark as already saved in the database
|
* Gets or Sets the content URI - marking this bookmark as already saved in the database
|
||||||
* @return content URI
|
* @return content URI
|
||||||
* @param contentUri the content URI
|
* contentUri the content URI
|
||||||
*/
|
*/
|
||||||
var contentUri: Uri?,
|
var contentUri: Uri?,
|
||||||
) {
|
) {
|
||||||
|
|
|
||||||
|
|
@ -22,9 +22,9 @@ class ExceptionAwareThreadPoolExecutor(
|
||||||
if (r.isDone) {
|
if (r.isDone) {
|
||||||
r.get()
|
r.get()
|
||||||
}
|
}
|
||||||
} catch (e: CancellationException) {
|
} catch (_: CancellationException) {
|
||||||
// ignore
|
// ignore
|
||||||
} catch (e: InterruptedException) {
|
} catch (_: InterruptedException) {
|
||||||
// ignore
|
// ignore
|
||||||
} catch (e: ExecutionException) {
|
} catch (e: ExecutionException) {
|
||||||
throwable = e.cause ?: e
|
throwable = e.cause ?: e
|
||||||
|
|
|
||||||
|
|
@ -808,10 +808,11 @@ class ContributionsFragment : CommonsDaggerSupportFragment(), FragmentManager.On
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
// /**
|
||||||
* Temporarily disabled, see issue [https://github.com/commons-app/apps-android-commons/issues/5847]
|
// * Temporarily disabled. See issue [#5847](https://github.com/commons-app/apps-android-commons/issues/5847)
|
||||||
* @param count The number of pending uploads.
|
// * @param count The number of pending uploads.
|
||||||
*/
|
// */
|
||||||
|
// public void updateUploadIcon(int count) {
|
||||||
// public void updateUploadIcon(int count) {
|
// public void updateUploadIcon(int count) {
|
||||||
// if (pendingUploadsImageView != null) {
|
// if (pendingUploadsImageView != null) {
|
||||||
// if (count != 0) {
|
// if (count != 0) {
|
||||||
|
|
|
||||||
|
|
@ -17,8 +17,11 @@ interface ImageSelectListener {
|
||||||
)
|
)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* onLongPress
|
* Called when the user performs a long press on an image.
|
||||||
* @param imageUri : uri of image
|
*
|
||||||
|
* @param position The index of the pressed image in the list.
|
||||||
|
* @param images The list of all available images.
|
||||||
|
* @param selectedImages The currently selected images.
|
||||||
*/
|
*/
|
||||||
fun onLongPress(
|
fun onLongPress(
|
||||||
position: Int,
|
position: Int,
|
||||||
|
|
|
||||||
|
|
@ -8,15 +8,15 @@ sealed class CallbackStatus {
|
||||||
/**
|
/**
|
||||||
IDLE : The callback is idle , doing nothing.
|
IDLE : The callback is idle , doing nothing.
|
||||||
*/
|
*/
|
||||||
object IDLE : CallbackStatus()
|
data object IDLE : CallbackStatus()
|
||||||
|
|
||||||
/**
|
/**
|
||||||
FETCHING : Fetching images.
|
FETCHING : Fetching images.
|
||||||
*/
|
*/
|
||||||
object FETCHING : CallbackStatus()
|
data object FETCHING : CallbackStatus()
|
||||||
|
|
||||||
/**
|
/**
|
||||||
SUCCESS : Success fetching images.
|
SUCCESS : Success fetching images.
|
||||||
*/
|
*/
|
||||||
object SUCCESS : CallbackStatus()
|
data object SUCCESS : CallbackStatus()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -610,8 +610,11 @@ class CustomSelectorActivity :
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* onLongPress
|
* Triggered when the user performs a long press on an image.
|
||||||
* @param imageUri : uri of image
|
*
|
||||||
|
* @param position The index of the selected image.
|
||||||
|
* @param images The list of all available images.
|
||||||
|
* @param selectedImages The list of images currently selected.
|
||||||
*/
|
*/
|
||||||
override fun onLongPress(
|
override fun onLongPress(
|
||||||
position: Int,
|
position: Int,
|
||||||
|
|
|
||||||
|
|
@ -104,7 +104,8 @@ class ImageFileLoader(
|
||||||
if (file != null && file.exists() && name != null && path != null && bucketName != null) {
|
if (file != null && file.exists() && name != null && path != null && bucketName != null) {
|
||||||
val extension = path.substringAfterLast(".", "")
|
val extension = path.substringAfterLast(".", "")
|
||||||
// Check if the extension is one of the allowed types
|
// Check if the extension is one of the allowed types
|
||||||
if (extension.lowercase(Locale.ROOT) !in arrayOf("jpg", "jpeg", "png", "svg", "gif", "tiff", "webp", "xcf")) {
|
if (extension.lowercase(Locale.ROOT) !in arrayOf("jpg", "jpeg", "png", "svg",
|
||||||
|
"gif", "tiff", "webp", "xcf")) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -238,10 +238,10 @@ class NetworkingModule {
|
||||||
factory.create(BuildConfig.COMMONS_URL)
|
factory.create(BuildConfig.COMMONS_URL)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add provider for WikidataMediaInterface
|
* Provides a Retrofit service for accessing the commons wiki site via [WikidataMediaInterface].
|
||||||
* It creates a retrofit service for the commons wiki site
|
*
|
||||||
* @param commonsWikiSite commonsWikiSite
|
* @param factory The CommonsServiceFactory used to create the Retrofit service.
|
||||||
* @return WikidataMediaInterface
|
* @return An instance of [WikidataMediaInterface].
|
||||||
*/
|
*/
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,9 @@ import io.reactivex.Observable;
|
||||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||||
import io.reactivex.schedulers.Schedulers;
|
import io.reactivex.schedulers.Schedulers;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.inject.Named;
|
import javax.inject.Named;
|
||||||
import org.osmdroid.events.MapEventsReceiver;
|
import org.osmdroid.events.MapEventsReceiver;
|
||||||
|
|
@ -98,6 +100,7 @@ public class ExploreMapFragment extends CommonsDaggerSupportFragment
|
||||||
private GeoPoint mapCenter;
|
private GeoPoint mapCenter;
|
||||||
private GeoPoint lastMapFocus;
|
private GeoPoint lastMapFocus;
|
||||||
IntentFilter intentFilter = new IntentFilter(MapUtils.NETWORK_INTENT_ACTION);
|
IntentFilter intentFilter = new IntentFilter(MapUtils.NETWORK_INTENT_ACTION);
|
||||||
|
private Map<BaseMarker, Overlay> baseMarkerOverlayMap;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
LiveDataConverter liveDataConverter;
|
LiveDataConverter liveDataConverter;
|
||||||
|
|
@ -779,6 +782,9 @@ public class ExploreMapFragment extends CommonsDaggerSupportFragment
|
||||||
}
|
}
|
||||||
clickedMarker = nearbyBaseMarker;
|
clickedMarker = nearbyBaseMarker;
|
||||||
passInfoToSheet(place);
|
passInfoToSheet(place);
|
||||||
|
|
||||||
|
//Move the overlay to the top so it can be fully seen.
|
||||||
|
moveOverlayToTop(getOverlay(item));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -788,11 +794,62 @@ public class ExploreMapFragment extends CommonsDaggerSupportFragment
|
||||||
}
|
}
|
||||||
}, getContext());
|
}, getContext());
|
||||||
|
|
||||||
|
if (this.baseMarkerOverlayMap == null) {
|
||||||
|
this.baseMarkerOverlayMap = new HashMap<>();
|
||||||
|
}
|
||||||
|
this.baseMarkerOverlayMap.put(nearbyBaseMarker, overlay);
|
||||||
|
|
||||||
overlay.setFocusItemsOnTap(true);
|
overlay.setFocusItemsOnTap(true);
|
||||||
binding.mapView.getOverlays().add(overlay); // Add the overlay to the map
|
binding.mapView.getOverlays().add(overlay); // Add the overlay to the map
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Moves the specified Overlay above all other Overlays. This prevents other Overlays from
|
||||||
|
* obstructing it. Upon failure, this method returns early.
|
||||||
|
* @param overlay The Overlay to move.
|
||||||
|
*/
|
||||||
|
private void moveOverlayToTop (Overlay overlay) {
|
||||||
|
if (overlay == null || binding == null || binding.mapView.getOverlays() == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean successfulRemoval = binding.mapView.getOverlays().remove(overlay);
|
||||||
|
if (!successfulRemoval) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
binding.mapView.getOverlays().add(overlay);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Performs a linear search for the first Overlay which contains the specified OverlayItem.
|
||||||
|
*
|
||||||
|
* @param item The OverlayItem contained within the first target Overlay.
|
||||||
|
* @return The first Overlay which contains the specified OverlayItem or null if the Overlay
|
||||||
|
* could not be found.
|
||||||
|
*/
|
||||||
|
private Overlay getOverlay (OverlayItem item) {
|
||||||
|
if (item == null || binding == null || binding.mapView.getOverlays() == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < binding.mapView.getOverlays().size(); i++) {
|
||||||
|
if (binding.mapView.getOverlays().get(i) instanceof ItemizedOverlayWithFocus) {
|
||||||
|
ItemizedOverlayWithFocus overlay =
|
||||||
|
(ItemizedOverlayWithFocus)binding.mapView.getOverlays().get(i);
|
||||||
|
|
||||||
|
for (int j = 0; j < overlay.size(); j++) {
|
||||||
|
if (overlay.getItem(j) == item) {
|
||||||
|
return overlay;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves the specific Media object from the mediaList field.
|
* Retrieves the specific Media object from the mediaList field.
|
||||||
* @param url The specific Media's image URL.
|
* @param url The specific Media's image URL.
|
||||||
|
|
@ -819,24 +876,22 @@ public class ExploreMapFragment extends CommonsDaggerSupportFragment
|
||||||
* @param nearbyBaseMarker The NearbyBaseMarker object representing the marker to be removed.
|
* @param nearbyBaseMarker The NearbyBaseMarker object representing the marker to be removed.
|
||||||
*/
|
*/
|
||||||
private void removeMarker(BaseMarker nearbyBaseMarker) {
|
private void removeMarker(BaseMarker nearbyBaseMarker) {
|
||||||
if (nearbyBaseMarker == null || nearbyBaseMarker.getPlace().getName() == null) {
|
if (nearbyBaseMarker == null || nearbyBaseMarker.getPlace().getName() == null ||
|
||||||
|
baseMarkerOverlayMap == null || !baseMarkerOverlayMap.containsKey(nearbyBaseMarker)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
String target = nearbyBaseMarker.getPlace().getName();
|
Overlay target = baseMarkerOverlayMap.get(nearbyBaseMarker);
|
||||||
List<Overlay> overlays = binding.mapView.getOverlays();
|
List<Overlay> overlays = binding.mapView.getOverlays();
|
||||||
ItemizedOverlayWithFocus item;
|
|
||||||
|
|
||||||
for (int i = 0; i < overlays.size(); i++) {
|
for (int i = 0; i < overlays.size(); i++) {
|
||||||
if (overlays.get(i) instanceof ItemizedOverlayWithFocus) {
|
Overlay overlay = overlays.get(i);
|
||||||
item = (ItemizedOverlayWithFocus) overlays.get(i);
|
|
||||||
OverlayItem overlayItem = item.getItem(0);
|
|
||||||
|
|
||||||
if (overlayItem.getTitle().equals(target)) {
|
if (overlay.equals(target)) {
|
||||||
binding.mapView.getOverlays().remove(i);
|
binding.mapView.getOverlays().remove(i);
|
||||||
binding.mapView.invalidate();
|
binding.mapView.invalidate();
|
||||||
break;
|
baseMarkerOverlayMap.remove(nearbyBaseMarker);
|
||||||
}
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,9 +9,9 @@ import java.util.Date
|
||||||
*/
|
*/
|
||||||
class RecentSearch(
|
class RecentSearch(
|
||||||
/**
|
/**
|
||||||
* Modifies the content URI - marking this query as already saved in the database
|
* The content URI that marks this query as already saved in the database.
|
||||||
*
|
*
|
||||||
* @param contentUri the content URI
|
* @property contentUri the content URI
|
||||||
*/
|
*/
|
||||||
var contentUri: Uri?,
|
var contentUri: Uri?,
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -531,40 +531,38 @@ ${"wd:" + place.wikiDataEntityId}"""
|
||||||
)
|
)
|
||||||
if (placeBindings != null) {
|
if (placeBindings != null) {
|
||||||
for ((item1, label, location, clas) in placeBindings) {
|
for ((item1, label, location, clas) in placeBindings) {
|
||||||
if (item1 != null && label != null && clas != null) {
|
val input = location.value
|
||||||
val input = location.value
|
val pattern = Pattern.compile(
|
||||||
val pattern = Pattern.compile(
|
"Point\\(([-+]?[0-9]*\\.?[0-9]+) ([-+]?[0-9]*\\.?[0-9]+)\\)"
|
||||||
"Point\\(([-+]?[0-9]*\\.?[0-9]+) ([-+]?[0-9]*\\.?[0-9]+)\\)"
|
)
|
||||||
)
|
val matcher = pattern.matcher(input)
|
||||||
val matcher = pattern.matcher(input)
|
|
||||||
|
|
||||||
if (matcher.find()) {
|
if (matcher.find()) {
|
||||||
val longStr = matcher.group(1)
|
val longStr = matcher.group(1)
|
||||||
val latStr = matcher.group(2)
|
val latStr = matcher.group(2)
|
||||||
val itemUrl = item1.value
|
val itemUrl = item1.value
|
||||||
val itemName = label.value.replace("&", "&")
|
val itemName = label.value.replace("&", "&")
|
||||||
val itemLatitude = latStr
|
val itemLatitude = latStr
|
||||||
val itemLongitude = longStr
|
val itemLongitude = longStr
|
||||||
val itemClass = clas.value
|
val itemClass = clas.value
|
||||||
|
|
||||||
val formattedItemName =
|
val formattedItemName =
|
||||||
if (!itemClass.isEmpty())
|
if (!itemClass.isEmpty())
|
||||||
"$itemName ($itemClass)"
|
"$itemName ($itemClass)"
|
||||||
else
|
else
|
||||||
itemName
|
itemName
|
||||||
|
|
||||||
val kmlEntry = ("""
|
val kmlEntry = ("""
|
||||||
<Placemark>
|
<Placemark>
|
||||||
<name>$formattedItemName</name>
|
<name>$formattedItemName</name>
|
||||||
<description>$itemUrl</description>
|
<description>$itemUrl</description>
|
||||||
<Point>
|
<Point>
|
||||||
<coordinates>$itemLongitude,$itemLatitude</coordinates>
|
<coordinates>$itemLongitude,$itemLatitude</coordinates>
|
||||||
</Point>
|
</Point>
|
||||||
</Placemark>""")
|
</Placemark>""")
|
||||||
kmlString = kmlString + kmlEntry
|
kmlString = kmlString + kmlEntry
|
||||||
} else {
|
} else {
|
||||||
Timber.e("No match found")
|
Timber.e("No match found")
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -589,37 +587,35 @@ ${"wd:" + place.wikiDataEntityId}"""
|
||||||
val placeBindings = runQuery(leftLatLng, rightLatLng)
|
val placeBindings = runQuery(leftLatLng, rightLatLng)
|
||||||
if (placeBindings != null) {
|
if (placeBindings != null) {
|
||||||
for ((item1, label, location, clas) in placeBindings) {
|
for ((item1, label, location, clas) in placeBindings) {
|
||||||
if (item1 != null && label != null && clas != null) {
|
val input = location.value
|
||||||
val input = location.value
|
val pattern = Pattern.compile(
|
||||||
val pattern = Pattern.compile(
|
"Point\\(([-+]?[0-9]*\\.?[0-9]+) ([-+]?[0-9]*\\.?[0-9]+)\\)"
|
||||||
"Point\\(([-+]?[0-9]*\\.?[0-9]+) ([-+]?[0-9]*\\.?[0-9]+)\\)"
|
)
|
||||||
)
|
val matcher = pattern.matcher(input)
|
||||||
val matcher = pattern.matcher(input)
|
|
||||||
|
|
||||||
if (matcher.find()) {
|
if (matcher.find()) {
|
||||||
val longStr = matcher.group(1)
|
val longStr = matcher.group(1)
|
||||||
val latStr = matcher.group(2)
|
val latStr = matcher.group(2)
|
||||||
val itemUrl = item1.value
|
val itemUrl = item1.value
|
||||||
val itemName = label.value.replace("&", "&")
|
val itemName = label.value.replace("&", "&")
|
||||||
val itemLatitude = latStr
|
val itemLatitude = latStr
|
||||||
val itemLongitude = longStr
|
val itemLongitude = longStr
|
||||||
val itemClass = clas.value
|
val itemClass = clas.value
|
||||||
|
|
||||||
val formattedItemName = if (!itemClass.isEmpty())
|
val formattedItemName = if (!itemClass.isEmpty())
|
||||||
"$itemName ($itemClass)"
|
"$itemName ($itemClass)"
|
||||||
else
|
else
|
||||||
itemName
|
itemName
|
||||||
|
|
||||||
val gpxEntry =
|
val gpxEntry =
|
||||||
("""
|
("""
|
||||||
<wpt lat="$itemLatitude" lon="$itemLongitude">
|
<wpt lat="$itemLatitude" lon="$itemLongitude">
|
||||||
<name>$itemName</name>
|
<name>$itemName</name>
|
||||||
<url>$itemUrl</url>
|
<url>$itemUrl</url>
|
||||||
</wpt>""")
|
</wpt>""")
|
||||||
gpxString = gpxString + gpxEntry
|
gpxString = gpxString + gpxEntry
|
||||||
} else {
|
} else {
|
||||||
Timber.e("No match found")
|
Timber.e("No match found")
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ import fr.free.nrw.commons.nearby.model.BottomSheetItem
|
||||||
/**
|
/**
|
||||||
* RecyclerView Adapter for displaying items in a bottom sheet.
|
* RecyclerView Adapter for displaying items in a bottom sheet.
|
||||||
*
|
*
|
||||||
* @property context The context used for inflating layout resources.
|
* @param context The context used for inflating layout resources.
|
||||||
* @property itemList The list of BottomSheetItem objects to display.
|
* @property itemList The list of BottomSheetItem objects to display.
|
||||||
* @constructor Creates an instance of BottomSheetAdapter.
|
* @constructor Creates an instance of BottomSheetAdapter.
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -63,7 +63,10 @@ class WikidataFeedback : BaseActivity() {
|
||||||
supportActionBar!!.setDisplayHomeAsUpEnabled(true)
|
supportActionBar!!.setDisplayHomeAsUpEnabled(true)
|
||||||
|
|
||||||
binding.appCompatButton.setOnClickListener {
|
binding.appCompatButton.setOnClickListener {
|
||||||
var desc = findViewById<RadioButton>(binding.radioGroup.checkedRadioButtonId).text
|
var desc = when (binding.radioGroup.checkedRadioButtonId) {
|
||||||
|
R.id.radioButton2 -> getString(R.string.is_at_a_different_place_wikidata, place)
|
||||||
|
else -> findViewById<RadioButton>(binding.radioGroup.checkedRadioButtonId).text
|
||||||
|
}
|
||||||
var det = binding.detailsEditText.text.toString()
|
var det = binding.detailsEditText.text.toString()
|
||||||
if (binding.radioGroup.checkedRadioButtonId == R.id.radioButton3 && binding.detailsEditText.text.isNullOrEmpty()) {
|
if (binding.radioGroup.checkedRadioButtonId == R.id.radioButton3 && binding.detailsEditText.text.isNullOrEmpty()) {
|
||||||
Toast
|
Toast
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,7 @@ import fr.free.nrw.commons.bookmarks.locations.BookmarkLocationsDao
|
||||||
import fr.free.nrw.commons.contributions.ContributionController
|
import fr.free.nrw.commons.contributions.ContributionController
|
||||||
import fr.free.nrw.commons.contributions.MainActivity
|
import fr.free.nrw.commons.contributions.MainActivity
|
||||||
import fr.free.nrw.commons.contributions.MainActivity.ActiveFragment
|
import fr.free.nrw.commons.contributions.MainActivity.ActiveFragment
|
||||||
|
import fr.free.nrw.commons.customselector.ui.selector.ImageLoader
|
||||||
import fr.free.nrw.commons.databinding.FragmentNearbyParentBinding
|
import fr.free.nrw.commons.databinding.FragmentNearbyParentBinding
|
||||||
import fr.free.nrw.commons.di.CommonsDaggerSupportFragment
|
import fr.free.nrw.commons.di.CommonsDaggerSupportFragment
|
||||||
import fr.free.nrw.commons.filepicker.FilePicker
|
import fr.free.nrw.commons.filepicker.FilePicker
|
||||||
|
|
@ -1756,9 +1757,9 @@ class NearbyParentFragment : CommonsDaggerSupportFragment(),
|
||||||
override fun animateFABs() {
|
override fun animateFABs() {
|
||||||
if (binding!!.fabPlus.isShown) {
|
if (binding!!.fabPlus.isShown) {
|
||||||
if (isFABsExpanded) {
|
if (isFABsExpanded) {
|
||||||
collapseFABs(isFABsExpanded)
|
collapseFABs(true)
|
||||||
} else {
|
} else {
|
||||||
expandFABs(isFABsExpanded)
|
expandFABs(false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -2013,17 +2014,17 @@ class NearbyParentFragment : CommonsDaggerSupportFragment(),
|
||||||
if (place.exists && place.pic.trim { it <= ' ' }.isEmpty()) {
|
if (place.exists && place.pic.trim { it <= ' ' }.isEmpty()) {
|
||||||
shouldUpdateMarker = true
|
shouldUpdateMarker = true
|
||||||
}
|
}
|
||||||
} else if (displayExists && !displayNeedsPhoto) {
|
} else if (displayExists) {
|
||||||
// Exists and all included needs and doesn't needs photo
|
// Exists and all included needs and doesn't needs photo
|
||||||
if (place.exists) {
|
if (place.exists) {
|
||||||
shouldUpdateMarker = true
|
shouldUpdateMarker = true
|
||||||
}
|
}
|
||||||
} else if (!displayExists && displayNeedsPhoto) {
|
} else if (displayNeedsPhoto) {
|
||||||
// All and only needs photo
|
// All and only needs photo
|
||||||
if (place.pic.trim { it <= ' ' }.isEmpty()) {
|
if (place.pic.trim { it <= ' ' }.isEmpty()) {
|
||||||
shouldUpdateMarker = true
|
shouldUpdateMarker = true
|
||||||
}
|
}
|
||||||
} else if (!displayExists && !displayNeedsPhoto) {
|
} else {
|
||||||
// all
|
// all
|
||||||
shouldUpdateMarker = true
|
shouldUpdateMarker = true
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -389,7 +389,7 @@ class AchievementsFragment : CommonsDaggerSupportFragment(){
|
||||||
* @param badgeTextColor The badge text color. Default is R.attr.colorPrimary
|
* @param badgeTextColor The badge text color. Default is R.attr.colorPrimary
|
||||||
* @param badgeGravity The position of the badge [TOP_END,TOP_START,BOTTOM_END,BOTTOM_START]. Default is TOP_END
|
* @param badgeGravity The position of the badge [TOP_END,TOP_START,BOTTOM_END,BOTTOM_START]. Default is TOP_END
|
||||||
* @return if the number is 0, then it will not create badge for it and hide the view
|
* @return if the number is 0, then it will not create badge for it and hide the view
|
||||||
* @see https://developer.android.com/reference/com/google/android/material/badge/BadgeDrawable
|
* @see <a href="https://developer.android.com/reference/com/google/android/material/badge/BadgeDrawable">BadgeDrawable (Android Developer)</a>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
private fun showBadgesWithCount(
|
private fun showBadgesWithCount(
|
||||||
|
|
|
||||||
|
|
@ -93,10 +93,11 @@ class QuizResultActivity : AppCompatActivity() {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function to call intent to an activity
|
* Starts an activity using the provided context, target class, and intent flags.
|
||||||
* @param context
|
*
|
||||||
* @param cls
|
* @param context The context used to start the activity.
|
||||||
* @param flags
|
* @param cls The target activity class.
|
||||||
|
* @param flags A variable number of intent flags to apply to the Intent.
|
||||||
*/
|
*/
|
||||||
companion object {
|
companion object {
|
||||||
fun <T> startActivityWithFlags(context: Context, cls: Class<T>, vararg flags: Int) {
|
fun <T> startActivityWithFlags(context: Context, cls: Class<T>, vararg flags: Int) {
|
||||||
|
|
|
||||||
|
|
@ -199,10 +199,11 @@ class UploadRepository @Inject constructor(
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Query the RemoteDataSource for image duplicity check
|
* Queries the RemoteDataSource to check if the image is a duplicate.
|
||||||
*
|
*
|
||||||
* @param filePath file to be checked
|
* @param originalFilePath The original file to be checked.
|
||||||
* @return IMAGE_DUPLICATE or IMAGE_OK
|
* @param modifiedFilePath The modified version of the file (if any).
|
||||||
|
* @return IMAGE_DUPLICATE if the image already exists, otherwise IMAGE_OK.
|
||||||
*/
|
*/
|
||||||
fun checkDuplicateImage(originalFilePath: Uri?, modifiedFilePath: Uri?): Single<Int> {
|
fun checkDuplicateImage(originalFilePath: Uri?, modifiedFilePath: Uri?): Single<Int> {
|
||||||
return uploadModel.checkDuplicateImage(originalFilePath, modifiedFilePath)
|
return uploadModel.checkDuplicateImage(originalFilePath, modifiedFilePath)
|
||||||
|
|
|
||||||
|
|
@ -55,10 +55,10 @@ class ReviewActivity : BaseActivity() {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Consumers should be simply using this method to use this activity.
|
* Starts the ReviewActivity.
|
||||||
*
|
*
|
||||||
* @param context
|
* @param context The context used to start the activity.
|
||||||
* @param title Page title
|
* @param title The page title (currently unused).
|
||||||
*/
|
*/
|
||||||
companion object {
|
companion object {
|
||||||
fun startYourself(context: Context, title: String) {
|
fun startYourself(context: Context, title: String) {
|
||||||
|
|
|
||||||
|
|
@ -276,9 +276,7 @@ class SettingsFragment : PreferenceFragmentCompat() {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Asks users to provide location access
|
* Asks users to provide location access.
|
||||||
*
|
|
||||||
* @param activity
|
|
||||||
*/
|
*/
|
||||||
private fun createDialogsAndHandleLocationPermissions() {
|
private fun createDialogsAndHandleLocationPermissions() {
|
||||||
inAppCameraLocationPermissionLauncher.launch(arrayOf(permission.ACCESS_FINE_LOCATION))
|
inAppCameraLocationPermissionLauncher.launch(arrayOf(permission.ACCESS_FINE_LOCATION))
|
||||||
|
|
|
||||||
|
|
@ -6,29 +6,29 @@ package fr.free.nrw.commons.upload
|
||||||
class Description {
|
class Description {
|
||||||
/**
|
/**
|
||||||
* The language code, e.g., "en" or "fr".
|
* The language code, e.g., "en" or "fr".
|
||||||
* @param languageCode The language code.
|
* @property languageCode The language code.
|
||||||
*/
|
*/
|
||||||
var languageCode: String? = null
|
var languageCode: String? = null
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The description text for the item being uploaded.
|
* The description text for the item being uploaded.
|
||||||
* @param descriptionText The description text.
|
* @property descriptionText The description text.
|
||||||
*/
|
*/
|
||||||
var descriptionText: String? = null
|
var descriptionText: String? = null
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The index of the language selected in a spinner with [SpinnerLanguagesAdapter].
|
* The index of the language selected in a spinner with [SpinnerLanguagesAdapter].
|
||||||
* @param selectedLanguageIndex The index of the selected language.
|
* @property selectedLanguageIndex The index of the selected language.
|
||||||
*/
|
*/
|
||||||
var selectedLanguageIndex = -1
|
var selectedLanguageIndex = -1
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Indicates if the description was added manually (by the user or programmatically).
|
* Indicates if the description was added manually (by the user or programmatically).
|
||||||
* @param manuallyAdded Sets to true if the description was manually added by the user.
|
|
||||||
* @return True if the description was manually added.
|
|
||||||
*/
|
*/
|
||||||
var isManuallyAdded = false
|
var isManuallyAdded = false
|
||||||
|
/**
|
||||||
|
* Returns true if the description text is null or empty.
|
||||||
|
*/
|
||||||
val isEmpty: Boolean
|
val isEmpty: Boolean
|
||||||
get() = descriptionText == null || descriptionText!!.isEmpty()
|
get() = descriptionText == null || descriptionText!!.isEmpty()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -137,13 +137,12 @@ class FileProcessor
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Find other images around the same location that were taken within the last 20 sec
|
* Finds other images around the same location that were taken within a ±120 sec window.
|
||||||
*
|
*
|
||||||
* @param originalImageCoordinates
|
* @param fileBeingProcessed The file currently being checked.
|
||||||
* @param fileBeingProcessed
|
* @param similarImageInterface Callback to display similar images if any are found.
|
||||||
* @param similarImageInterface
|
*/
|
||||||
*/
|
|
||||||
private fun findOtherImages(
|
private fun findOtherImages(
|
||||||
fileBeingProcessed: File,
|
fileBeingProcessed: File,
|
||||||
similarImageInterface: SimilarImageInterface?,
|
similarImageInterface: SimilarImageInterface?,
|
||||||
|
|
|
||||||
|
|
@ -138,10 +138,10 @@ class ImageProcessingService @Inject constructor(
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks for duplicate image
|
* Checks for duplicate image by calculating its SHA1 hash and querying the media client.
|
||||||
*
|
*
|
||||||
* @param filePath file to be checked
|
* @param inputStream The input stream of the file to check.
|
||||||
* @return IMAGE_DUPLICATE or IMAGE_OK
|
* @return IMAGE_DUPLICATE if the file exists, or IMAGE_OK otherwise.
|
||||||
*/
|
*/
|
||||||
private fun checkDuplicateImage(inputStream: InputStream): Single<Int> {
|
private fun checkDuplicateImage(inputStream: InputStream): Single<Int> {
|
||||||
return Single.fromCallable { fileUtilsWrapper.getSHA1(inputStream) }
|
return Single.fromCallable { fileUtilsWrapper.getSHA1(inputStream) }
|
||||||
|
|
|
||||||
|
|
@ -173,6 +173,9 @@ class UploadActivity : BaseActivity(), UploadContract.View, UploadBaseFragment.C
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
|
||||||
|
// Ensure basicKvStoreFactory is always initialized before use
|
||||||
|
presenter?.setupBasicKvStoreFactory { BasicKvStore(this@UploadActivity, it) }
|
||||||
|
|
||||||
_binding = ActivityUploadBinding.inflate(layoutInflater)
|
_binding = ActivityUploadBinding.inflate(layoutInflater)
|
||||||
setContentView(binding.root)
|
setContentView(binding.root)
|
||||||
|
|
||||||
|
|
@ -903,7 +906,6 @@ class UploadActivity : BaseActivity(), UploadContract.View, UploadBaseFragment.C
|
||||||
// Save the user's choice to not show the dialog again
|
// Save the user's choice to not show the dialog again
|
||||||
defaultKvStore.putBoolean("hasAlreadyLaunchedCategoriesDialog", true)
|
defaultKvStore.putBoolean("hasAlreadyLaunchedCategoriesDialog", true)
|
||||||
}
|
}
|
||||||
presenter!!.setupBasicKvStoreFactory { BasicKvStore(this@UploadActivity, it) }
|
|
||||||
presenter!!.checkImageQuality(0)
|
presenter!!.checkImageQuality(0)
|
||||||
UploadMediaPresenter.isCategoriesDialogShowing = false
|
UploadMediaPresenter.isCategoriesDialogShowing = false
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,18 +10,15 @@ import kotlinx.parcelize.Parcelize
|
||||||
@Parcelize
|
@Parcelize
|
||||||
data class UploadMediaDetail(
|
data class UploadMediaDetail(
|
||||||
/**
|
/**
|
||||||
* The language code ie. "en" or "fr".
|
* The language code, e.g., "en" or "fr".
|
||||||
* @param languageCode The language code ie. "en" or "fr".
|
|
||||||
*/
|
*/
|
||||||
var languageCode: String? = null,
|
var languageCode: String? = null,
|
||||||
/**
|
/**
|
||||||
* The description text for the item being uploaded.
|
* The description text for the item being uploaded.
|
||||||
* @param descriptionText The description text.
|
|
||||||
*/
|
*/
|
||||||
var descriptionText: String? = "",
|
var descriptionText: String? = "",
|
||||||
/**
|
/**
|
||||||
* The caption text for the item being uploaded.
|
* The caption text for the item being uploaded.
|
||||||
* @param captionText The caption text.
|
|
||||||
*/
|
*/
|
||||||
var captionText: String = "",
|
var captionText: String = "",
|
||||||
) : Parcelable {
|
) : Parcelable {
|
||||||
|
|
@ -35,15 +32,11 @@ data class UploadMediaDetail(
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The index of the language selected in a spinner with [SpinnerLanguagesAdapter].
|
* The index of the language selected in a spinner with [SpinnerLanguagesAdapter].
|
||||||
* @return The index of the selected language.
|
|
||||||
* @param selectedLanguageIndex The index of the language selected.
|
|
||||||
*/
|
*/
|
||||||
var selectedLanguageIndex: Int = -1
|
var selectedLanguageIndex: Int = -1
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns if the description was added manually (by the user, or programmatically).
|
* Indicates whether the description was added manually (by the user or programmatically).
|
||||||
* @return True if the description was manually added.
|
|
||||||
* @param manuallyAdded Sets to true if the description was manually added.
|
|
||||||
*/
|
*/
|
||||||
var isManuallyAdded: Boolean = false
|
var isManuallyAdded: Boolean = false
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -30,9 +30,10 @@ class UploadMediaDetailInputFilter : InputFilter {
|
||||||
patterns.any { it.matcher(source).find() }
|
patterns.any { it.matcher(source).find() }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Removes any blocklisted characters from the source text.
|
* Removes any blocklisted characters from the input text.
|
||||||
* @param source input text
|
*
|
||||||
* @return a cleaned character sequence
|
* @param input The input text to be cleaned.
|
||||||
|
* @return A cleaned character sequence with blocklisted patterns removed.
|
||||||
*/
|
*/
|
||||||
private fun removeBlocklisted(input: CharSequence): CharSequence {
|
private fun removeBlocklisted(input: CharSequence): CharSequence {
|
||||||
var source = input
|
var source = input
|
||||||
|
|
|
||||||
|
|
@ -98,10 +98,11 @@ class UploadModel @Inject internal constructor(
|
||||||
imageProcessingService.validateImage(uploadItem, inAppPictureLocation)
|
imageProcessingService.validateImage(uploadItem, inAppPictureLocation)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Calls checkDuplicateImage() of ImageProcessingService to check if image is duplicate
|
* Calls checkDuplicateImage() of ImageProcessingService to check if the image is a duplicate.
|
||||||
*
|
*
|
||||||
* @param filePath file to be checked
|
* @param originalFilePath The original file URI.
|
||||||
* @return IMAGE_DUPLICATE or IMAGE_OK
|
* @param modifiedFilePath The modified file URI.
|
||||||
|
* @return IMAGE_DUPLICATE if the file already exists, IMAGE_OK otherwise.
|
||||||
*/
|
*/
|
||||||
fun checkDuplicateImage(originalFilePath: Uri?, modifiedFilePath: Uri?): Single<Int> =
|
fun checkDuplicateImage(originalFilePath: Uri?, modifiedFilePath: Uri?): Single<Int> =
|
||||||
imageProcessingService.checkIfFileAlreadyExists(
|
imageProcessingService.checkIfFileAlreadyExists(
|
||||||
|
|
|
||||||
|
|
@ -34,8 +34,7 @@ class UploadPresenter @Inject internal constructor(
|
||||||
|
|
||||||
private val compositeDisposable = CompositeDisposable()
|
private val compositeDisposable = CompositeDisposable()
|
||||||
|
|
||||||
lateinit var basicKvStoreFactory: (String) -> BasicKvStore
|
private var basicKvStoreFactory: ((String) -> BasicKvStore)? = null
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called by the submit button in [UploadActivity]
|
* Called by the submit button in [UploadActivity]
|
||||||
*/
|
*/
|
||||||
|
|
@ -132,14 +131,38 @@ class UploadPresenter @Inject internal constructor(
|
||||||
basicKvStoreFactory = factory
|
basicKvStoreFactory = factory
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the current BasicKvStore factory or throws if not initialized.
|
||||||
|
*
|
||||||
|
* @throws IllegalStateException if basicKvStoreFactory has not been initialized.
|
||||||
|
*/
|
||||||
|
private fun getBasicKvStoreFactory(): (String) -> BasicKvStore {
|
||||||
|
return basicKvStoreFactory ?: throw IllegalStateException("basicKvStoreFactory has not been initialized")
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ensures that the BasicKvStore factory has been initialized before use.
|
||||||
|
*
|
||||||
|
* @throws IllegalStateException if the factory is null.
|
||||||
|
*/
|
||||||
|
private fun requireFactoryInitialized() {
|
||||||
|
val field = this::class.java.getDeclaredField("basicKvStoreFactory")
|
||||||
|
field.isAccessible = true
|
||||||
|
val value = field.get(this)
|
||||||
|
if (value == null) {
|
||||||
|
throw IllegalStateException("basicKvStoreFactory must be initialized before use. Please call setupBasicKvStoreFactory() before using presenter methods that require it.")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Calls checkImageQuality of UploadMediaPresenter to check image quality of next image
|
* Calls checkImageQuality of UploadMediaPresenter to check image quality of next image
|
||||||
*
|
*
|
||||||
* @param uploadItemIndex Index of next image, whose quality is to be checked
|
* @param uploadItemIndex Index of next image, whose quality is to be checked
|
||||||
*/
|
*/
|
||||||
override fun checkImageQuality(uploadItemIndex: Int) {
|
override fun checkImageQuality(uploadItemIndex: Int) {
|
||||||
|
requireFactoryInitialized()
|
||||||
repository.getUploadItem(uploadItemIndex)?.let {
|
repository.getUploadItem(uploadItemIndex)?.let {
|
||||||
presenter.setupBasicKvStoreFactory(basicKvStoreFactory)
|
presenter.setupBasicKvStoreFactory(getBasicKvStoreFactory())
|
||||||
presenter.checkImageQuality(it, uploadItemIndex)
|
presenter.checkImageQuality(it, uploadItemIndex)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,12 +16,12 @@ object LocationUtils {
|
||||||
val indexOfPrefix = customQuery.indexOf("Point(")
|
val indexOfPrefix = customQuery.indexOf("Point(")
|
||||||
if (indexOfPrefix == -1) {
|
if (indexOfPrefix == -1) {
|
||||||
Timber.e("Invalid prefix index - Seems like user has entered an invalid query")
|
Timber.e("Invalid prefix index - Seems like user has entered an invalid query")
|
||||||
return latLng
|
return null
|
||||||
}
|
}
|
||||||
val indexOfSuffix = customQuery.indexOf(")\"", indexOfPrefix)
|
val indexOfSuffix = customQuery.indexOf(")\"", indexOfPrefix)
|
||||||
if (indexOfSuffix == -1) {
|
if (indexOfSuffix == -1) {
|
||||||
Timber.e("Invalid suffix index - Seems like user has entered an invalid query")
|
Timber.e("Invalid suffix index - Seems like user has entered an invalid query")
|
||||||
return latLng
|
return null
|
||||||
}
|
}
|
||||||
val latLngString = customQuery.substring(indexOfPrefix + "Point(".length, indexOfSuffix)
|
val latLngString = customQuery.substring(indexOfPrefix + "Point(".length, indexOfSuffix)
|
||||||
if (latLngString.isEmpty()) {
|
if (latLngString.isEmpty()) {
|
||||||
|
|
|
||||||
|
|
@ -32,8 +32,8 @@ class PageTitle : Parcelable {
|
||||||
* looking at.
|
* looking at.
|
||||||
*
|
*
|
||||||
* Examples:
|
* Examples:
|
||||||
* * [[Manchester]] on enwiki will have a namespace of null
|
* * \[\[Manchester\]\] on enwiki will have a namespace of null
|
||||||
* * [[Deutschland]] on dewiki will have a namespace of null
|
* * \[\[Deutschland\]\] on dewiki will have a namespace of null
|
||||||
* * [[User:Deskana]] on enwiki will have a namespace of "User"
|
* * [[User:Deskana]] on enwiki will have a namespace of "User"
|
||||||
* * [[Utilisateur:Deskana]] on frwiki will have a namespace of "Utilisateur", even if you got
|
* * [[Utilisateur:Deskana]] on frwiki will have a namespace of "Utilisateur", even if you got
|
||||||
* to the page by going to [[User:Deskana]] and having MediaWiki automatically redirect you.
|
* to the page by going to [[User:Deskana]] and having MediaWiki automatically redirect you.
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@
|
||||||
* Hhaboh162002
|
* Hhaboh162002
|
||||||
* Kassem7899
|
* Kassem7899
|
||||||
* LaMagiaaa
|
* LaMagiaaa
|
||||||
|
* Lolekek
|
||||||
* Meno25
|
* Meno25
|
||||||
* Mido
|
* Mido
|
||||||
* Monrokhoury
|
* Monrokhoury
|
||||||
|
|
@ -853,6 +854,7 @@
|
||||||
<string name="talk">نقاش</string>
|
<string name="talk">نقاش</string>
|
||||||
<string name="write_something_about_the_item">اكتب شيئًا عن العنصر \'%1$s\'. سيكون مرئيًا للعامة.</string>
|
<string name="write_something_about_the_item">اكتب شيئًا عن العنصر \'%1$s\'. سيكون مرئيًا للعامة.</string>
|
||||||
<string name="does_not_exist_anymore_no_picture_can_ever_be_taken_of_it">\'%1$s\' لم يعد موجودًا، ولا يمكن التقاط صورة له أبدًا.</string>
|
<string name="does_not_exist_anymore_no_picture_can_ever_be_taken_of_it">\'%1$s\' لم يعد موجودًا، ولا يمكن التقاط صورة له أبدًا.</string>
|
||||||
|
<string name="is_at_a_different_place_wikidata">\'%1$s\' في مكان آخر.</string>
|
||||||
<string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">\'%1$s\' موجود في مكان مختلف. يرجى تحديد المكان الصحيح أدناه، وإذا أمكن، اكتب خط العرض وخط الطول الصحيحين.</string>
|
<string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">\'%1$s\' موجود في مكان مختلف. يرجى تحديد المكان الصحيح أدناه، وإذا أمكن، اكتب خط العرض وخط الطول الصحيحين.</string>
|
||||||
<string name="other_problem_or_information_please_explain_below">مشكلة أو معلومات أخرى (يرجى التوضيح أدناه).</string>
|
<string name="other_problem_or_information_please_explain_below">مشكلة أو معلومات أخرى (يرجى التوضيح أدناه).</string>
|
||||||
<string name="feedback_destination_note">سيتم نشر تعليقاتك على صفحة الويكي التالية: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobile app/Feedback</a></string>
|
<string name="feedback_destination_note">سيتم نشر تعليقاتك على صفحة الويكي التالية: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobile app/Feedback</a></string>
|
||||||
|
|
|
||||||
|
|
@ -789,6 +789,7 @@
|
||||||
<string name="talk">Tal</string>
|
<string name="talk">Tal</string>
|
||||||
<string name="write_something_about_the_item">Skriv noget om elementet \'%1$s\'. Det vil være offentligt synligt.</string>
|
<string name="write_something_about_the_item">Skriv noget om elementet \'%1$s\'. Det vil være offentligt synligt.</string>
|
||||||
<string name="does_not_exist_anymore_no_picture_can_ever_be_taken_of_it">\'%1$s\' eksisterer ikke længere, der vil aldrig kunne tages et billede af det.</string>
|
<string name="does_not_exist_anymore_no_picture_can_ever_be_taken_of_it">\'%1$s\' eksisterer ikke længere, der vil aldrig kunne tages et billede af det.</string>
|
||||||
|
<string name="is_at_a_different_place_wikidata">\'%1$s\' ligger et andet sted.</string>
|
||||||
<string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">\'%1$s\' ligger et andet sted. Angiv venligst det korrekte sted nedenfor, og skriv om muligt den korrekte bredde- og længdegrad.</string>
|
<string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">\'%1$s\' ligger et andet sted. Angiv venligst det korrekte sted nedenfor, og skriv om muligt den korrekte bredde- og længdegrad.</string>
|
||||||
<string name="other_problem_or_information_please_explain_below">Andet problem eller anden information (forklar venligst nedenfor).</string>
|
<string name="other_problem_or_information_please_explain_below">Andet problem eller anden information (forklar venligst nedenfor).</string>
|
||||||
<string name="feedback_destination_note">Din feedback bliver slået op på følgende wiki-side: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobile app/Feedback</a></string>
|
<string name="feedback_destination_note">Din feedback bliver slået op på følgende wiki-side: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobile app/Feedback</a></string>
|
||||||
|
|
|
||||||
|
|
@ -829,6 +829,7 @@
|
||||||
<string name="talk">Discussion</string>
|
<string name="talk">Discussion</string>
|
||||||
<string name="write_something_about_the_item">Écrivez quelque chose à propos de l’élément « %1$s ». Il sera visible publiquement.</string>
|
<string name="write_something_about_the_item">Écrivez quelque chose à propos de l’élément « %1$s ». Il sera visible publiquement.</string>
|
||||||
<string name="does_not_exist_anymore_no_picture_can_ever_be_taken_of_it">\'%1$s\' n\'existe plus, aucune photo ne pourra jamais en être prise.</string>
|
<string name="does_not_exist_anymore_no_picture_can_ever_be_taken_of_it">\'%1$s\' n\'existe plus, aucune photo ne pourra jamais en être prise.</string>
|
||||||
|
<string name="is_at_a_different_place_wikidata">\'%1$s\' est à un endroit différent.</string>
|
||||||
<string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">\'%1$s\' se trouve à un endroit différent. Veuillez indiquer l\'endroit correct ci-dessous et, si possible, indiquez la latitude et la longitude correctes.</string>
|
<string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">\'%1$s\' se trouve à un endroit différent. Veuillez indiquer l\'endroit correct ci-dessous et, si possible, indiquez la latitude et la longitude correctes.</string>
|
||||||
<string name="other_problem_or_information_please_explain_below">Autre problème ou information (merci d\'expliquer ci-dessous).</string>
|
<string name="other_problem_or_information_please_explain_below">Autre problème ou information (merci d\'expliquer ci-dessous).</string>
|
||||||
<string name="feedback_destination_note">Vos commentaires sont publiés sur la page wiki suivante : <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobile app/Feedback</a></string>
|
<string name="feedback_destination_note">Vos commentaires sont publiés sur la page wiki suivante : <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobile app/Feedback</a></string>
|
||||||
|
|
|
||||||
|
|
@ -65,12 +65,12 @@
|
||||||
<string name="password">Jelszó</string>
|
<string name="password">Jelszó</string>
|
||||||
<string name="login_credential">Jelentkezz be a Commons Béta fiókoddal</string>
|
<string name="login_credential">Jelentkezz be a Commons Béta fiókoddal</string>
|
||||||
<string name="login">Bejelentkezés</string>
|
<string name="login">Bejelentkezés</string>
|
||||||
<string name="forgot_password">Elfelejtett jelszó:</string>
|
<string name="forgot_password">Elfelejtett jelszó</string>
|
||||||
<string name="signup">Regisztráció</string>
|
<string name="signup">Regisztráció</string>
|
||||||
<string name="logging_in_title">Belépés…</string>
|
<string name="logging_in_title">Belépés…</string>
|
||||||
<string name="logging_in_message">Kérlek várj…</string>
|
<string name="logging_in_message">Kérlek várj…</string>
|
||||||
<string name="login_success" fuzzy="true">Sikeres bejelentkezés</string>
|
<string name="login_success">Sikeres bejelentkezés</string>
|
||||||
<string name="login_failed" fuzzy="true">A bejelentkezés nem sikerült.</string>
|
<string name="login_failed">A bejelentkezés nem sikerült.</string>
|
||||||
<string name="upload_failed">A fájl nem található. Próbálkozz másik fájllal.</string>
|
<string name="upload_failed">A fájl nem található. Próbálkozz másik fájllal.</string>
|
||||||
<string name="retry_limit_reached">Elérted az újrapróbálkozások maximális számát. Szakítsd meg a feltöltést, és próbáld újra!</string>
|
<string name="retry_limit_reached">Elérted az újrapróbálkozások maximális számát. Szakítsd meg a feltöltést, és próbáld újra!</string>
|
||||||
<string name="unrestricted_battery_mode">Kikapcsolod az akkumulátoroptimalizálást?</string>
|
<string name="unrestricted_battery_mode">Kikapcsolod az akkumulátoroptimalizálást?</string>
|
||||||
|
|
@ -82,7 +82,7 @@
|
||||||
<string name="upload_progress_notification_title_start">Fájl feltöltése: %s</string>
|
<string name="upload_progress_notification_title_start">Fájl feltöltése: %s</string>
|
||||||
<string name="upload_progress_notification_title_in_progress">%1$s feltöltése</string>
|
<string name="upload_progress_notification_title_in_progress">%1$s feltöltése</string>
|
||||||
<string name="upload_progress_notification_title_finishing">%1$s feltöltése befejezve</string>
|
<string name="upload_progress_notification_title_finishing">%1$s feltöltése befejezve</string>
|
||||||
<string name="upload_failed_notification_title" fuzzy="true">%1$s feltöltése sikertelen</string>
|
<string name="upload_failed_notification_title">%1$s feltöltése sikertelen</string>
|
||||||
<string name="upload_paused_notification_title">%1$s feltöltés megállítva</string>
|
<string name="upload_paused_notification_title">%1$s feltöltés megállítva</string>
|
||||||
<string name="upload_failed_notification_subtitle">Érintsd meg a megtekintéshez</string>
|
<string name="upload_failed_notification_subtitle">Érintsd meg a megtekintéshez</string>
|
||||||
<string name="upload_paused_notification_subtitle">Megnézéshez koppints</string>
|
<string name="upload_paused_notification_subtitle">Megnézéshez koppints</string>
|
||||||
|
|
@ -98,11 +98,11 @@
|
||||||
<string name="menu_share">Megosztás</string>
|
<string name="menu_share">Megosztás</string>
|
||||||
<string name="share_title_hint">Képaláírás (kötelező)</string>
|
<string name="share_title_hint">Képaláírás (kötelező)</string>
|
||||||
<string name="share_description_hint">Leírás</string>
|
<string name="share_description_hint">Leírás</string>
|
||||||
<string name="login_failed_network" fuzzy="true">Nem lehet bejelentkezni - hálózati hiba</string>
|
<string name="login_failed_network">Nem sikerült bejelentkezni – hálózati hiba</string>
|
||||||
<string name="login_failed_throttled">Túl sok sikertelen próbálkozás. Próbálkozz újra pár perc múlva.</string>
|
<string name="login_failed_throttled">Túl sok sikertelen próbálkozás. Próbálkozz újra pár perc múlva.</string>
|
||||||
<string name="login_failed_blocked">Sajnáljuk, ezt a felhasználót blokkolták a Commonson</string>
|
<string name="login_failed_blocked">Sajnáljuk, ezt a felhasználót blokkolták a Commonson</string>
|
||||||
<string name="login_failed_2fa_needed">Meg kell adnod a kétlépcsős hitelesítő kódodat.</string>
|
<string name="login_failed_2fa_needed">Meg kell adnod a kétlépcsős hitelesítő kódodat.</string>
|
||||||
<string name="login_failed_generic" fuzzy="true">Bejelentkezési hiba</string>
|
<string name="login_failed_generic">Bejelentkezési hiba</string>
|
||||||
<string name="share_upload_button">Feltöltés</string>
|
<string name="share_upload_button">Feltöltés</string>
|
||||||
<string name="multiple_share_base_title">Nevezd el a gyűjteményt</string>
|
<string name="multiple_share_base_title">Nevezd el a gyűjteményt</string>
|
||||||
<string name="provider_modifications">Változtatások</string>
|
<string name="provider_modifications">Változtatások</string>
|
||||||
|
|
@ -246,7 +246,7 @@
|
||||||
<string name="nominated_see_more">Weboldal megtekintése további részletekért</string>
|
<string name="nominated_see_more">Weboldal megtekintése további részletekért</string>
|
||||||
<string name="skip_login">Kihagyás</string>
|
<string name="skip_login">Kihagyás</string>
|
||||||
<string name="navigation_item_login">Bejelentkezés</string>
|
<string name="navigation_item_login">Bejelentkezés</string>
|
||||||
<string name="skip_login_title" fuzzy="true">Biztos ki akarod hagyni a bejelentkezést?</string>
|
<string name="skip_login_title">Biztos ki akarod hagyni a bejelentkezést?</string>
|
||||||
<string name="skip_login_message" fuzzy="true">Fényképek feltöltéséhez a jövőben be kell jelentkezned.</string>
|
<string name="skip_login_message" fuzzy="true">Fényképek feltöltéséhez a jövőben be kell jelentkezned.</string>
|
||||||
<string name="login_alert_message">A funkció használatához kérlek jelentkezz be.</string>
|
<string name="login_alert_message">A funkció használatához kérlek jelentkezz be.</string>
|
||||||
<string name="copy_wikicode">Wikiszöveg vágólapra másolása</string>
|
<string name="copy_wikicode">Wikiszöveg vágólapra másolása</string>
|
||||||
|
|
@ -325,7 +325,7 @@
|
||||||
<string name="statistics_thanks">Kapott köszönetek</string>
|
<string name="statistics_thanks">Kapott köszönetek</string>
|
||||||
<string name="statistics_featured">Kiemelt képek</string>
|
<string name="statistics_featured">Kiemelt képek</string>
|
||||||
<string name="statistics_wikidata_edits">Képek a \"közeli helyek\" segítségével</string>
|
<string name="statistics_wikidata_edits">Képek a \"közeli helyek\" segítségével</string>
|
||||||
<string name="level" fuzzy="true">Szint</string>
|
<string name="level">%d. szint</string>
|
||||||
<string name="images_uploaded">Feltöltött képek</string>
|
<string name="images_uploaded">Feltöltött képek</string>
|
||||||
<string name="images_used_by_wiki">Felhasznált képek</string>
|
<string name="images_used_by_wiki">Felhasznált képek</string>
|
||||||
<string name="achievements_share_message">Oszd meg eredményeidet a barátaiddal!</string>
|
<string name="achievements_share_message">Oszd meg eredményeidet a barátaiddal!</string>
|
||||||
|
|
|
||||||
|
|
@ -441,6 +441,8 @@
|
||||||
<string name="open_document_photo_picker_title">Uzez selektilo di fotografuri segun dokumenti</string>
|
<string name="open_document_photo_picker_title">Uzez selektilo di fotografuri segun dokumenti</string>
|
||||||
<string name="open_document_photo_picker_explanation">La nova funciono \'\'Android photo picker\'\' povas perdar informo pri lokizo. Kapabligez ol, se vu semblas uzar ol.</string>
|
<string name="open_document_photo_picker_explanation">La nova funciono \'\'Android photo picker\'\' povas perdar informo pri lokizo. Kapabligez ol, se vu semblas uzar ol.</string>
|
||||||
<string name="location_loss_warning">Deskapabliganta ol povos deskuplar la nova funciono \'\'Android photo picker\'\'. Posible perdos informo pri lokizo.</string>
|
<string name="location_loss_warning">Deskapabliganta ol povos deskuplar la nova funciono \'\'Android photo picker\'\'. Posible perdos informo pri lokizo.</string>
|
||||||
|
<string name="this_function_needs_network_connection">Ca funciono bezonas ligilo ad interreto. Verifikez vua ajusti pri konekti.</string>
|
||||||
|
<string name="error_processing_image">Eventis eroro dum procesado dil imajo. Voluntez probar ol itere!</string>
|
||||||
<string name="getting_edit_token">Kaptanta \'\'token\'\' por redaktar.</string>
|
<string name="getting_edit_token">Kaptanta \'\'token\'\' por redaktar.</string>
|
||||||
<string name="check_category_adding_template">Adjuntanta shablono por verifikar kategorio</string>
|
<string name="check_category_adding_template">Adjuntanta shablono por verifikar kategorio</string>
|
||||||
<string name="check_category_notification_title">Demandanta verifiko di kategorio por %1$s</string>
|
<string name="check_category_notification_title">Demandanta verifiko di kategorio por %1$s</string>
|
||||||
|
|
@ -461,6 +463,7 @@
|
||||||
<string name="review_spam">Ka to apartenas al skopo dil projeto?</string>
|
<string name="review_spam">Ka to apartenas al skopo dil projeto?</string>
|
||||||
<string name="review_thanks">Ka vu deziras dankar la kontributero?</string>
|
<string name="review_thanks">Ka vu deziras dankar la kontributero?</string>
|
||||||
<string name="review_spam_explanation">Kliktez NO por indikar ca imajo por efaco, se ol ne havas irga utileso.</string>
|
<string name="review_spam_explanation">Kliktez NO por indikar ca imajo por efaco, se ol ne havas irga utileso.</string>
|
||||||
|
<string name="review_copyright_explanation">Logotipi*, skreno-kopiuri, afishi pri cinematografuri ofte esas kopiuro-violaci.\nKliktez NO por indikar ca pagino por efaco</string>
|
||||||
<string name="review_thanks_explanation">Vua opiniono stimulos %1$s</string>
|
<string name="review_thanks_explanation">Vua opiniono stimulos %1$s</string>
|
||||||
<string name="review_no_category">Ho, to ne mem havas kategorio!</string>
|
<string name="review_no_category">Ho, to ne mem havas kategorio!</string>
|
||||||
<string name="review_category_explanation">Ca imajo havas %1$s kategorii.</string>
|
<string name="review_category_explanation">Ca imajo havas %1$s kategorii.</string>
|
||||||
|
|
@ -500,11 +503,14 @@
|
||||||
<string name="exif_tag_name_serialNumbers">Serio-nombro</string>
|
<string name="exif_tag_name_serialNumbers">Serio-nombro</string>
|
||||||
<string name="exif_tag_name_software">Software</string>
|
<string name="exif_tag_name_software">Software</string>
|
||||||
<string name="media_location_permission_denied">Aceso ad enmagazinigo-moyeno ne permisita</string>
|
<string name="media_location_permission_denied">Aceso ad enmagazinigo-moyeno ne permisita</string>
|
||||||
|
<string name="add_location_manually">Posible ni ne povos obtenar automatale datumi pri lokizi dil imaji quin vu sendis. Voluntez furnisar sata lokizo di irga fotografuro, ante sendar ol.</string>
|
||||||
|
<string name="share_text">Sendez fotografuri direte de vua smartfono a Wikimedia Commons. Descharjez l\'\'\'app\'\' nun: %1$s</string>
|
||||||
<string name="share_via">Partigar utensilo \'\'app\'\' per...</string>
|
<string name="share_via">Partigar utensilo \'\'app\'\' per...</string>
|
||||||
<string name="image_info">Informo pri imajo</string>
|
<string name="image_info">Informo pri imajo</string>
|
||||||
<string name="no_categories_found">Nula kategorio trovesis</string>
|
<string name="no_categories_found">Nula kategorio trovesis</string>
|
||||||
<string name="no_depiction_found">Nula reprezenturi trovita</string>
|
<string name="no_depiction_found">Nula reprezenturi trovita</string>
|
||||||
<string name="upload_cancelled">Kargajo di arkivo cesis</string>
|
<string name="upload_cancelled">Kargajo di arkivo cesis</string>
|
||||||
|
<string name="previous_image_title_description_not_found">Ne existas datumo pri la titulo o deskripto dil antea imajo</string>
|
||||||
<string name="dialog_box_text_nomination">Pro quo %1$s devas efacesar?</string>
|
<string name="dialog_box_text_nomination">Pro quo %1$s devas efacesar?</string>
|
||||||
<string name="review_is_uploaded_by">%1$s sendesis da: %2$s</string>
|
<string name="review_is_uploaded_by">%1$s sendesis da: %2$s</string>
|
||||||
<string name="default_description_language">implicita deskripto-linguo</string>
|
<string name="default_description_language">implicita deskripto-linguo</string>
|
||||||
|
|
@ -580,9 +586,16 @@
|
||||||
<string name="theme_default_name">Sequar sistemo</string>
|
<string name="theme_default_name">Sequar sistemo</string>
|
||||||
<string name="theme_dark_name">Koloro obskura</string>
|
<string name="theme_dark_name">Koloro obskura</string>
|
||||||
<string name="theme_light_name">Koloro klara</string>
|
<string name="theme_light_name">Koloro klara</string>
|
||||||
|
<string name="cannot_open_location_settings">Faliis apartar ajusti pri lokizo. Voluntez informar la lokizo manuale</string>
|
||||||
<string name="recommend_high_accuracy_mode">Por plu bona rezulti, selektez modo \"granda exakteso\" (\'\'High Accuracy\'\').</string>
|
<string name="recommend_high_accuracy_mode">Por plu bona rezulti, selektez modo \"granda exakteso\" (\'\'High Accuracy\'\').</string>
|
||||||
<string name="ask_to_turn_location_on">Kad montrar lokizo?</string>
|
<string name="ask_to_turn_location_on">Kad montrar lokizo?</string>
|
||||||
|
<string name="ask_to_turn_location_on_text">Voluntez ajustar l\'utensilo pri lokizo, por ke l\'\'\'app\'\' montrez vua nuna lokizo</string>
|
||||||
|
<string name="nearby_needs_location">La funciono \'apud\' (\'\'Nearby\'\') bezonas kapabliko di lokizo, por ke ol funcionez bone</string>
|
||||||
|
<string name="explore_map_needs_location">La mapo pri lokizo bezonas uzo-permiso, por montrar vicina imaji</string>
|
||||||
|
<string name="upload_map_location_access">Vu mustos permisar lokizo-agnosko, por ajustar automatale la lokizo.</string>
|
||||||
|
<string name="use_location_from_similar_image">Ka vu fotografis ca du imaji an la sama loko? Ka vu deziras uzar latitudo/longitudo di fotografuro addextre?</string>
|
||||||
<string name="load_more">Charjez pluse</string>
|
<string name="load_more">Charjez pluse</string>
|
||||||
|
<string name="nearby_no_results">Ne trovis loki, voluntez chajar vua kriterii pri sercho.</string>
|
||||||
<string name="todo_improve">Plubonigi propozata:</string>
|
<string name="todo_improve">Plubonigi propozata:</string>
|
||||||
<string name="missing_category">- Adjuntez kategorii a ca imajo, por faciligar lua uzado.</string>
|
<string name="missing_category">- Adjuntez kategorii a ca imajo, por faciligar lua uzado.</string>
|
||||||
<string name="missing_article">- Adjuntez ca imajo ad artiklo asociita de Wikipedio, qua havas nula imajo.</string>
|
<string name="missing_article">- Adjuntez ca imajo ad artiklo asociita de Wikipedio, qua havas nula imajo.</string>
|
||||||
|
|
@ -593,6 +606,9 @@
|
||||||
<string name="wikipedia_instructions_step_1">1. Uzez la sequanta wikitexto:</string>
|
<string name="wikipedia_instructions_step_1">1. Uzez la sequanta wikitexto:</string>
|
||||||
<string name="wikipedia_instructions_step_2">Kliktanta \"konfirmar\" (\'\'Confirm\'\') apertos l\'artiklo che Wikipedio</string>
|
<string name="wikipedia_instructions_step_2">Kliktanta \"konfirmar\" (\'\'Confirm\'\') apertos l\'artiklo che Wikipedio</string>
|
||||||
<string name="wikipedia_instructions_step_3">3. Trovez adequata fako dil artiklo por inkluzar vua imajo</string>
|
<string name="wikipedia_instructions_step_3">3. Trovez adequata fako dil artiklo por inkluzar vua imajo</string>
|
||||||
|
<string name="wikipedia_instructions_step_4">4. Kliktez l\'ikono Editar (qua semblas krayono) por ta sesiono.</string>
|
||||||
|
<string name="wikipedia_instructions_step_5">5. Kopiez la texto wiki che adequata loko.</string>
|
||||||
|
<string name="wikipedia_instructions_step_6">6. Se bezonata, redaktez la texto wiki por adequata pozado. Por plusa informo, videz <a href=\"https://en.wikipedia.org/wiki/Wikipedia:Manual_of_Style/Images#How_to_place_an_image\">hike</a>.</string>
|
||||||
<string name="wikipedia_instructions_step_7">Publikigar l\'artiklo</string>
|
<string name="wikipedia_instructions_step_7">Publikigar l\'artiklo</string>
|
||||||
<string name="copy_wikicode_to_clipboard">Kopiar wikikodexo a transfero-areo di la komputatoro</string>
|
<string name="copy_wikicode_to_clipboard">Kopiar wikikodexo a transfero-areo di la komputatoro</string>
|
||||||
<string name="pause">pauzar</string>
|
<string name="pause">pauzar</string>
|
||||||
|
|
@ -626,17 +642,23 @@
|
||||||
<string name="pausing_upload">Pauzanta sendajo...</string>
|
<string name="pausing_upload">Pauzanta sendajo...</string>
|
||||||
<string name="cancelling_upload">Nuliganta sendajo...</string>
|
<string name="cancelling_upload">Nuliganta sendajo...</string>
|
||||||
<string name="cancel_upload">Cesar kargajo</string>
|
<string name="cancel_upload">Cesar kargajo</string>
|
||||||
|
<string name="limited_connection_is_on">Kapabligesis por uzar limitizita konekti.</string>
|
||||||
|
<string name="media_details_tooltip">Voluntez skribar kurta titulo deskriptanta quon vua imajo montras. En la deskripto, explikez pro quo la fotografuro esas interesanta, tipala o rara, ed explikez la kuntexto, videbla o ne. Skriptez tan exakta kam posibla.</string>
|
||||||
<string name="depicts_step_title">Montras</string>
|
<string name="depicts_step_title">Montras</string>
|
||||||
<string name="license_step_title">Licencizo di \'\'media\'\'</string>
|
<string name="license_step_title">Licencizo di \'\'media\'\'</string>
|
||||||
<string name="media_detail_step_title">Detali pri \'\'media\'\'</string>
|
<string name="media_detail_step_title">Detali pri \'\'media\'\'</string>
|
||||||
<string name="menu_view_category_page">Vidar kategorio-pagino</string>
|
<string name="menu_view_category_page">Vidar kategorio-pagino</string>
|
||||||
<string name="menu_view_item_page">Vidar pagino dil arkivo</string>
|
<string name="menu_view_item_page">Vidar pagino dil arkivo</string>
|
||||||
|
<string name="remove">Removar titulo e deskripto</string>
|
||||||
<string name="read_help_link">Lektez pluse</string>
|
<string name="read_help_link">Lektez pluse</string>
|
||||||
<string name="media_detail_in_all_languages">En omna idiomi</string>
|
<string name="media_detail_in_all_languages">En omna idiomi</string>
|
||||||
<string name="choose_a_location">Selektez lokizo</string>
|
<string name="choose_a_location">Selektez lokizo</string>
|
||||||
|
<string name="pan_and_zoom_to_adjust">Facez panoramo e proximigez por ajustar</string>
|
||||||
<string name="select_location_location_picker">Selektar lokizo</string>
|
<string name="select_location_location_picker">Selektar lokizo</string>
|
||||||
<string name="show_in_map_app">Montrar en l\'utensilo \'\'app\'\' di mapo</string>
|
<string name="show_in_map_app">Montrar en l\'utensilo \'\'app\'\' di mapo</string>
|
||||||
<string name="modify_location">Aktualigar lokizo</string>
|
<string name="modify_location">Aktualigar lokizo</string>
|
||||||
|
<string name="location_picker_image_view">Vidado dil imajo de la selektilo di lokizo</string>
|
||||||
|
<string name="location_picker_image_view_shadow">L\'ombro di la vidado dil imajo de la selektilo di lokizo</string>
|
||||||
<string name="image_location">Lokizo dil imajo</string>
|
<string name="image_location">Lokizo dil imajo</string>
|
||||||
<string name="check_whether_location_is_correct">Verifikez se la lokizo esas korekta</string>
|
<string name="check_whether_location_is_correct">Verifikez se la lokizo esas korekta</string>
|
||||||
<string name="label">Etiketo</string>
|
<string name="label">Etiketo</string>
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
* Albe Albe 460
|
* Albe Albe 460
|
||||||
* Albe Albe460
|
* Albe Albe460
|
||||||
* Ale.salmo
|
* Ale.salmo
|
||||||
|
* Antonino Faro
|
||||||
* Beta16
|
* Beta16
|
||||||
* Black Sky83
|
* Black Sky83
|
||||||
* Champ0999
|
* Champ0999
|
||||||
|
|
@ -21,6 +22,7 @@
|
||||||
* Senpremì
|
* Senpremì
|
||||||
* Una giornata uggiosa '94
|
* Una giornata uggiosa '94
|
||||||
* Valerio Bozzolan
|
* Valerio Bozzolan
|
||||||
|
* Wheelygay
|
||||||
* Wim b
|
* Wim b
|
||||||
-->
|
-->
|
||||||
<resources>
|
<resources>
|
||||||
|
|
@ -34,7 +36,7 @@
|
||||||
<string name="add_new_contribution">Aggiungi nuovo contributo</string>
|
<string name="add_new_contribution">Aggiungi nuovo contributo</string>
|
||||||
<string name="add_contribution_from_camera">Aggiungi contributo dalla fotocamera</string>
|
<string name="add_contribution_from_camera">Aggiungi contributo dalla fotocamera</string>
|
||||||
<string name="add_contribution_from_photos">Aggiungi contributo da Foto</string>
|
<string name="add_contribution_from_photos">Aggiungi contributo da Foto</string>
|
||||||
<string name="add_contribution_from_contributions_gallery">Aggiungi contributo dalla galleria dei contributi precedenti</string>
|
<string name="add_contribution_from_contributions_gallery">Aggiungi un contributo dalla galleria dei contributi precedenti</string>
|
||||||
<string name="show_captions">Didascalie</string>
|
<string name="show_captions">Didascalie</string>
|
||||||
<string name="row_item_language_description">Descrizione della lingua</string>
|
<string name="row_item_language_description">Descrizione della lingua</string>
|
||||||
<string name="row_item_caption">Didascalia</string>
|
<string name="row_item_caption">Didascalia</string>
|
||||||
|
|
@ -86,7 +88,7 @@
|
||||||
<string name="username">Nome utente</string>
|
<string name="username">Nome utente</string>
|
||||||
<string name="password">Password</string>
|
<string name="password">Password</string>
|
||||||
<string name="login_credential">Accedi alla tua utenza in Commons Beta</string>
|
<string name="login_credential">Accedi alla tua utenza in Commons Beta</string>
|
||||||
<string name="login">Entra</string>
|
<string name="login">Accedi</string>
|
||||||
<string name="forgot_password">Password dimenticata?</string>
|
<string name="forgot_password">Password dimenticata?</string>
|
||||||
<string name="signup">Registrati</string>
|
<string name="signup">Registrati</string>
|
||||||
<string name="logging_in_title">Accesso in corso</string>
|
<string name="logging_in_title">Accesso in corso</string>
|
||||||
|
|
@ -103,7 +105,7 @@
|
||||||
<string name="uploading_started">Caricamento iniziato!</string>
|
<string name="uploading_started">Caricamento iniziato!</string>
|
||||||
<string name="uploading_queued">Caricamento in coda (attivata modalità di connessione limitata)</string>
|
<string name="uploading_queued">Caricamento in coda (attivata modalità di connessione limitata)</string>
|
||||||
<string name="upload_completed_notification_title">%1$s caricato!</string>
|
<string name="upload_completed_notification_title">%1$s caricato!</string>
|
||||||
<string name="upload_completed_notification_text">Premi per vedere i tuoi caricamenti</string>
|
<string name="upload_completed_notification_text">Tocca per visualizzare il tuo caricamento</string>
|
||||||
<string name="upload_progress_notification_title_start">Caricamento file: %s</string>
|
<string name="upload_progress_notification_title_start">Caricamento file: %s</string>
|
||||||
<string name="upload_progress_notification_title_in_progress">Sto caricando %1$s</string>
|
<string name="upload_progress_notification_title_in_progress">Sto caricando %1$s</string>
|
||||||
<string name="upload_progress_notification_title_finishing">Terminato il caricamento di %1$s</string>
|
<string name="upload_progress_notification_title_finishing">Terminato il caricamento di %1$s</string>
|
||||||
|
|
@ -301,6 +303,7 @@
|
||||||
<string name="nearby_showing_pins_offline">Internet non disponibile. Vengono mostrati solo i luoghi memorizzati nella cache.</string>
|
<string name="nearby_showing_pins_offline">Internet non disponibile. Vengono mostrati solo i luoghi memorizzati nella cache.</string>
|
||||||
<string name="upload_location_access_denied">Accesso alla posizione negato. Impostala manualmente per utilizzare questa funzione.</string>
|
<string name="upload_location_access_denied">Accesso alla posizione negato. Impostala manualmente per utilizzare questa funzione.</string>
|
||||||
<string name="location_permission_rationale_nearby">È richiesta l\'autorizzazione per visualizzare un elenco di luoghi nelle vicinanze</string>
|
<string name="location_permission_rationale_nearby">È richiesta l\'autorizzazione per visualizzare un elenco di luoghi nelle vicinanze</string>
|
||||||
|
<string name="location_permission_rationale_explore">È richiesta l\'autorizzazione per visualizzare un elenco di luoghi nelle vicinanze</string>
|
||||||
<string name="nearby_directions">Indicazioni</string>
|
<string name="nearby_directions">Indicazioni</string>
|
||||||
<string name="nearby_wikidata">Wikidata</string>
|
<string name="nearby_wikidata">Wikidata</string>
|
||||||
<string name="nearby_wikipedia">Wikipedia</string>
|
<string name="nearby_wikipedia">Wikipedia</string>
|
||||||
|
|
@ -457,6 +460,7 @@
|
||||||
<string name="option_dismiss">Nascondi</string>
|
<string name="option_dismiss">Nascondi</string>
|
||||||
<string name="in_app_camera_needs_location">Attiva l\'accesso alla posizione dalle Impostazioni e riprova. \n\nNota: il caricamento potrebbe non contenere la posizione se l\'app non è in grado di recuperarla dal dispositivo entro un breve intervallo.</string>
|
<string name="in_app_camera_needs_location">Attiva l\'accesso alla posizione dalle Impostazioni e riprova. \n\nNota: il caricamento potrebbe non contenere la posizione se l\'app non è in grado di recuperarla dal dispositivo entro un breve intervallo.</string>
|
||||||
<string name="in_app_camera_location_permission_rationale">La fotocamera in-app necessita dell\'autorizzazione alla posizione per allegarla alle tue immagini nel caso in cui la posizione non sia disponibile in EXIF. Consenti all\'app di accedere alla tua posizione e riprova.\n\nNota: il caricamento potrebbe non avere la posizione se l\'app non è in grado di recuperare la posizione dal dispositivo entro un breve intervallo.</string>
|
<string name="in_app_camera_location_permission_rationale">La fotocamera in-app necessita dell\'autorizzazione alla posizione per allegarla alle tue immagini nel caso in cui la posizione non sia disponibile in EXIF. Consenti all\'app di accedere alla tua posizione e riprova.\n\nNota: il caricamento potrebbe non avere la posizione se l\'app non è in grado di recuperare la posizione dal dispositivo entro un breve intervallo.</string>
|
||||||
|
<string name="in_app_camera_location_permission_denied">L\'app non registra la posizione insieme alle riprese a causa della mancanza di autorizzazione alla posizione</string>
|
||||||
<string name="in_app_camera_location_unavailable">L\'app non registra la posizione insieme alle foto in quanto il GPS è disattivato</string>
|
<string name="in_app_camera_location_unavailable">L\'app non registra la posizione insieme alle foto in quanto il GPS è disattivato</string>
|
||||||
<string name="open_document_photo_picker_title">Utilizza il selettore di foto basato sui documenti</string>
|
<string name="open_document_photo_picker_title">Utilizza il selettore di foto basato sui documenti</string>
|
||||||
<string name="open_document_photo_picker_explanation">Il nuovo selettore di foto di Android rischia di perdere le informazioni sulla posizione. Abilita se pensi di usarlo.</string>
|
<string name="open_document_photo_picker_explanation">Il nuovo selettore di foto di Android rischia di perdere le informazioni sulla posizione. Abilita se pensi di usarlo.</string>
|
||||||
|
|
@ -608,6 +612,7 @@
|
||||||
<string name="ask_to_turn_location_on">Accendere la localizzazione?</string>
|
<string name="ask_to_turn_location_on">Accendere la localizzazione?</string>
|
||||||
<string name="ask_to_turn_location_on_text">Si prega di attivare i servizi di localizzazione dell’app per mostrare la tua posizione attuale</string>
|
<string name="ask_to_turn_location_on_text">Si prega di attivare i servizi di localizzazione dell’app per mostrare la tua posizione attuale</string>
|
||||||
<string name="nearby_needs_location">La funzione \'nelle vicinanze\' richiede l\'abilitazione della localizzazione per operare correttamente</string>
|
<string name="nearby_needs_location">La funzione \'nelle vicinanze\' richiede l\'abilitazione della localizzazione per operare correttamente</string>
|
||||||
|
<string name="explore_map_needs_location">La mappa Esplora necessita dell\'autorizzazione di posizione per visualizzare le immagini vicine</string>
|
||||||
<string name="upload_map_location_access">È necessario fornire l\'autorizzazione alla posizione per impostare automaticamente la posizione.</string>
|
<string name="upload_map_location_access">È necessario fornire l\'autorizzazione alla posizione per impostare automaticamente la posizione.</string>
|
||||||
<string name="use_location_from_similar_image">Hai scattato queste immagini nello stesso posto? Vuoi usare la latitudine e la longitudine dell\'immagine indicate a destra?</string>
|
<string name="use_location_from_similar_image">Hai scattato queste immagini nello stesso posto? Vuoi usare la latitudine e la longitudine dell\'immagine indicate a destra?</string>
|
||||||
<string name="load_more">Caricane ancora</string>
|
<string name="load_more">Caricane ancora</string>
|
||||||
|
|
@ -665,6 +670,7 @@
|
||||||
<string name="media_details_tooltip">Per favore scrivi una breve descrizione su cosa è ritratto nella tua immagine. Nella descrizione, indica che cosa rende l\'immagine interessante, tipica o rara, e spiega il contesto, visibile o non. Impiega il più possibile una terminologia esatta.</string>
|
<string name="media_details_tooltip">Per favore scrivi una breve descrizione su cosa è ritratto nella tua immagine. Nella descrizione, indica che cosa rende l\'immagine interessante, tipica o rara, e spiega il contesto, visibile o non. Impiega il più possibile una terminologia esatta.</string>
|
||||||
<string name="depicts_tooltip">Trova e seleziona tutti i concetti rappresentati da questa immagine. Sii il più specifico possibile. Se l\'immagine ritrae più elementi, sceglili tutti entro limiti ragionevoli. Non scegliere etichette generali se sono disponibili etichette più specifiche.</string>
|
<string name="depicts_tooltip">Trova e seleziona tutti i concetti rappresentati da questa immagine. Sii il più specifico possibile. Se l\'immagine ritrae più elementi, sceglili tutti entro limiti ragionevoli. Non scegliere etichette generali se sono disponibili etichette più specifiche.</string>
|
||||||
<string name="categories_tooltip">Si prega di selezionare le categorie appropriate. A differenza delle raffigurazioni, le categorie sono solo in inglese.</string>
|
<string name="categories_tooltip">Si prega di selezionare le categorie appropriate. A differenza delle raffigurazioni, le categorie sono solo in inglese.</string>
|
||||||
|
<string name="license_tooltip">Commons rende le tue immagini riutilizzabili e adattabili da chiunque. Vuoi rinunciare a tutti i diritti? Vuoi che ti venga attribuita la paternità? Vuoi che gli adattamenti utilizzino la stessa licenza?</string>
|
||||||
<string name="depicts_step_title">Raffigura</string>
|
<string name="depicts_step_title">Raffigura</string>
|
||||||
<string name="license_step_title">Licenza per il file</string>
|
<string name="license_step_title">Licenza per il file</string>
|
||||||
<string name="media_detail_step_title">Dettagli sul file</string>
|
<string name="media_detail_step_title">Dettagli sul file</string>
|
||||||
|
|
@ -721,6 +727,7 @@
|
||||||
<string name="add_location">Aggiungi luogo</string>
|
<string name="add_location">Aggiungi luogo</string>
|
||||||
<string name="feedback_sharing_data_alert">Rimuovi da questa email tutte le informazioni che non sei disposto a condividere pubblicamente. Inoltre, tieni presente che il tuo indirizzo email con cui stai scrivendo, il nome e l\'immagine del profilo associati saranno visibili pubblicamente.</string>
|
<string name="feedback_sharing_data_alert">Rimuovi da questa email tutte le informazioni che non sei disposto a condividere pubblicamente. Inoltre, tieni presente che il tuo indirizzo email con cui stai scrivendo, il nome e l\'immagine del profilo associati saranno visibili pubblicamente.</string>
|
||||||
<string name="explore_map_details">Dettagli</string>
|
<string name="explore_map_details">Dettagli</string>
|
||||||
|
<string name="achievements_unavailable_beta">La classifica è disponibile solo nella versione prod. Consulta la documentazione per gli sviluppatori.</string>
|
||||||
<string name="leaderboard_unavailable_beta">La classifica è disponibile solo nella versione prod. Consulta la documentazione per gli sviluppatori.</string>
|
<string name="leaderboard_unavailable_beta">La classifica è disponibile solo nella versione prod. Consulta la documentazione per gli sviluppatori.</string>
|
||||||
<string name="copyright_popup">Per favore carica solo le foto che hai scattato tu. Gli autori che caricano immagini protette da copyright verranno bloccati. Questo vale anche per la versione beta. Grazie per aver testato l\'app!</string>
|
<string name="copyright_popup">Per favore carica solo le foto che hai scattato tu. Gli autori che caricano immagini protette da copyright verranno bloccati. Questo vale anche per la versione beta. Grazie per aver testato l\'app!</string>
|
||||||
<string name="select_feedback_data_choice">Deseleziona tutte le informazioni che non ti senti a tuo agio nel condividere pubblicamente.</string>
|
<string name="select_feedback_data_choice">Deseleziona tutte le informazioni che non ti senti a tuo agio nel condividere pubblicamente.</string>
|
||||||
|
|
@ -755,6 +762,7 @@
|
||||||
<string name="welcome_to_full_screen_mode_text">Benvenuto nella modalità di selezione a schermo intero</string>
|
<string name="welcome_to_full_screen_mode_text">Benvenuto nella modalità di selezione a schermo intero</string>
|
||||||
<string name="full_screen_mode_zoom_info">Usa due dita per ingrandire e rimpicciolire.</string>
|
<string name="full_screen_mode_zoom_info">Usa due dita per ingrandire e rimpicciolire.</string>
|
||||||
<string name="full_screen_mode_features_info">Scorri velocemente e a lungo per eseguire queste azioni: \n- Sinistra/destra: vai al precedente/successivo \n- Su: seleziona\n- Giù: contrassegna come da non caricare.</string>
|
<string name="full_screen_mode_features_info">Scorri velocemente e a lungo per eseguire queste azioni: \n- Sinistra/destra: vai al precedente/successivo \n- Su: seleziona\n- Giù: contrassegna come da non caricare.</string>
|
||||||
|
<string name="set_up_avatar_toast_string">Per impostare il tuo avatar nella classifica, tocca \"Imposta come avatar\" nel menu a tre punti di qualsiasi immagine.</string>
|
||||||
<string name="similar_coordinate_description_auto_set">Le coordinate non sono esatte, ma la persona che ha caricato questa immagine pensa che siano abbastanza vicine.</string>
|
<string name="similar_coordinate_description_auto_set">Le coordinate non sono esatte, ma la persona che ha caricato questa immagine pensa che siano abbastanza vicine.</string>
|
||||||
<string name="storage_permissions_denied">Autorizzazioni di archiviazione negate</string>
|
<string name="storage_permissions_denied">Autorizzazioni di archiviazione negate</string>
|
||||||
<string name="unable_to_share_upload_item">Impossibile condividere questo elemento</string>
|
<string name="unable_to_share_upload_item">Impossibile condividere questo elemento</string>
|
||||||
|
|
@ -765,9 +773,14 @@
|
||||||
<string name="edit_image">Modifica Immagine</string>
|
<string name="edit_image">Modifica Immagine</string>
|
||||||
<string name="edit_location">Modifica Posizione</string>
|
<string name="edit_location">Modifica Posizione</string>
|
||||||
<string name="location_updated">Posizione aggiornata!</string>
|
<string name="location_updated">Posizione aggiornata!</string>
|
||||||
|
<string name="remove_location">Rimuovi posizione</string>
|
||||||
|
<string name="remove_location_warning_title">Rimuovi avviso di posizione</string>
|
||||||
|
<string name="remove_location_warning_desc">La posizione rende le immagini più utili e facili da trovare. Vuoi davvero rimuovere la posizione da questa immagine?</string>
|
||||||
|
<string name="location_removed">Posizione rimossa!</string>
|
||||||
<string name="send_thanks_to_author">Ringrazia l\'autore</string>
|
<string name="send_thanks_to_author">Ringrazia l\'autore</string>
|
||||||
<string name="error_sending_thanks">Errore nell\'invio di ringraziamenti all\'autore.</string>
|
<string name="error_sending_thanks">Errore nell\'invio di ringraziamenti all\'autore.</string>
|
||||||
<string name="invalid_login_message">Sessione scaduta. Accedi nuovamente.</string>
|
<string name="invalid_login_message">Sessione scaduta. Accedi nuovamente.</string>
|
||||||
|
<string name="no_application_available_to_open_gpx_files">Nessuna applicazione disponibile per aprire i file GPX</string>
|
||||||
<string name="file_saved_successfully">File salvato con successo</string>
|
<string name="file_saved_successfully">File salvato con successo</string>
|
||||||
<string name="do_you_want_to_open_gpx_file">Vuoi aprire il file GPX?</string>
|
<string name="do_you_want_to_open_gpx_file">Vuoi aprire il file GPX?</string>
|
||||||
<string name="do_you_want_to_open_kml_file">Vuoi aprire il file KML?</string>
|
<string name="do_you_want_to_open_kml_file">Vuoi aprire il file KML?</string>
|
||||||
|
|
@ -781,23 +794,46 @@
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="multiple_files_depiction">Ricorda che tutte le immagini in un caricamento multiplo hanno le stesse categorie e descrizioni. Se le immagini non condividono descrizioni e categorie, esegui caricamenti separati.</string>
|
<string name="multiple_files_depiction">Ricorda che tutte le immagini in un caricamento multiplo hanno le stesse categorie e descrizioni. Se le immagini non condividono descrizioni e categorie, esegui caricamenti separati.</string>
|
||||||
<string name="multiple_files_depiction_header">Osservazione sui caricamenti multipli</string>
|
<string name="multiple_files_depiction_header">Osservazione sui caricamenti multipli</string>
|
||||||
|
<string name="nearby_wikitalk">Segnala un problema su questo elemento su Wikidata</string>
|
||||||
|
<string name="please_enter_some_comments">Inserisci dei commenti</string>
|
||||||
|
<string name="talk">Discussione</string>
|
||||||
|
<string name="write_something_about_the_item">Scrivi qualcosa su \' %1$s \'. Sarà visibile pubblicamente.</string>
|
||||||
|
<string name="does_not_exist_anymore_no_picture_can_ever_be_taken_of_it">\'%1$s\' non esiste più, non potrà mai più essere fotografato.</string>
|
||||||
|
<string name="is_at_a_different_place_wikidata">\' %1$s \' si trova in un luogo diverso.</string>
|
||||||
|
<string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">\' %1$s \' si trova in un luogo diverso. Specifica il luogo corretto qui sotto e, se possibile, scrivi latitudine e longitudine corrette.</string>
|
||||||
|
<string name="other_problem_or_information_please_explain_below">Altro problema o informazione (si prega di spiegare di seguito).</string>
|
||||||
|
<string name="feedback_destination_note">Il tuo feedback verrà pubblicato sulla seguente pagina wiki: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:App mobile/Feedback</a></string>
|
||||||
|
<string name="are_you_sure_that_you_want_cancel_all_the_uploads">Sei sicuro di voler cancellare tutti i caricamenti?</string>
|
||||||
|
<string name="cancelling_all_the_uploads">Cancellando tutti i caricamenti...</string>
|
||||||
<string name="uploads">Caricamenti</string>
|
<string name="uploads">Caricamenti</string>
|
||||||
<string name="pending">In attesa</string>
|
<string name="pending">In attesa</string>
|
||||||
<string name="failed">Non riuscito</string>
|
<string name="failed">Non riuscito</string>
|
||||||
|
<string name="could_not_load_place_data">Impossibile caricare i dati del luogo</string>
|
||||||
<string name="custom_selector_delete_folder">Cancella cartella</string>
|
<string name="custom_selector_delete_folder">Cancella cartella</string>
|
||||||
<string name="custom_selector_confirm_deletion_title">Conferma cancellazione</string>
|
<string name="custom_selector_confirm_deletion_title">Conferma cancellazione</string>
|
||||||
<string name="custom_selector_confirm_deletion_message">Sei sicuro di voler eliminare la cartella %1$s contenente elementi %2$d?</string>
|
<string name="custom_selector_confirm_deletion_message">Sei sicuro di voler eliminare la cartella %1$s contenente elementi %2$d?</string>
|
||||||
<string name="custom_selector_delete">Cancella</string>
|
<string name="custom_selector_delete">Cancella</string>
|
||||||
<string name="custom_selector_cancel">Annulla</string>
|
<string name="custom_selector_cancel">Annulla</string>
|
||||||
<string name="custom_selector_folder_deleted_success">Cartella %1$s cancellata correttamente</string>
|
<string name="custom_selector_folder_deleted_success">Cartella %1$s cancellata correttamente</string>
|
||||||
|
<string name="custom_selector_folder_deleted_failure">Impossibile eliminare la cartella %1$s</string>
|
||||||
|
<string name="custom_selector_error_trashing_folder_contents">Impossibile eliminare i contenuti nella cartella: %1$s</string>
|
||||||
<string name="red_pin">Questo posto non ha ancora una foto, scattane una!</string>
|
<string name="red_pin">Questo posto non ha ancora una foto, scattane una!</string>
|
||||||
<string name="green_pin">Questo posto ha già una foto.</string>
|
<string name="green_pin">Questo posto ha già una foto.</string>
|
||||||
<string name="grey_pin">Ora controlliamo se questo posto ha una foto.</string>
|
<string name="grey_pin">Ora controlliamo se questo posto ha una foto.</string>
|
||||||
|
<string name="error_while_loading">Errore durante il caricamento</string>
|
||||||
<string name="usages_on_commons_heading">Commons</string>
|
<string name="usages_on_commons_heading">Commons</string>
|
||||||
<string name="usages_on_other_wikis_heading">Altri wiki</string>
|
<string name="usages_on_other_wikis_heading">Altri wiki</string>
|
||||||
<string name="file_usages_container_heading">Utilizzi del file</string>
|
<string name="file_usages_container_heading">Utilizzi del file</string>
|
||||||
|
<string name="title_activity_single_web_view">SingleWebViewActivity</string>
|
||||||
|
<string name="account">Utenza</string>
|
||||||
|
<string name="vanish_account">Elimina l\'utenza</string>
|
||||||
|
<string name="account_vanish_request_confirm_title">Avviso di eliminazione dell\'utenza</string>
|
||||||
|
<string name="account_vanish_request_confirm">Il diritto all\'oblio è una <b>soluzione estrema</b> e dovrebbe essere utilizzata solo quando si desidera smettere di contribuire per sempre e anche per nascondere il più possibile le proprie associazioni passate. \n\nLa cancellazione di un utenza su Wikimedia commons avviene cambiando il nome dell\'utenza in modo che gli altri non possano riconoscere i contributi, attraverso un processo chiamato scomparsa dell\'utenza. <b>L\'oblio non garantisce un anonimato completo né la rimozione dei contributi ai progetti.</b></string>
|
||||||
<string name="caption">Didascalia</string>
|
<string name="caption">Didascalia</string>
|
||||||
<string name="caption_copied_to_clipboard">Didascalia copiata negli appunti</string>
|
<string name="caption_copied_to_clipboard">Didascalia copiata negli appunti</string>
|
||||||
|
<string name="congratulations_all_pictures_in_this_album_have_been_either_uploaded_or_marked_as_not_for_upload">Congratulazioni, tutte le foto di questo album sono state caricate o contrassegnate come non adatte al caricamento.</string>
|
||||||
|
<string name="show_in_explore">Mostra in Esplora</string>
|
||||||
|
<string name="show_in_nearby">Mostra nelle vicinanze</string>
|
||||||
<string name="image_tag_line_created_and_uploaded_by">Creato e caricato da: %1$s</string>
|
<string name="image_tag_line_created_and_uploaded_by">Creato e caricato da: %1$s</string>
|
||||||
<string name="image_tag_line_created_by_and_uploaded_by">Creato da %1$s e caricato da %2$s</string>
|
<string name="image_tag_line_created_by_and_uploaded_by">Creato da %1$s e caricato da %2$s</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -822,6 +822,7 @@
|
||||||
<string name="talk">שיחה</string>
|
<string name="talk">שיחה</string>
|
||||||
<string name="write_something_about_the_item">נא לכתוב משהו על פריט \"%1$s\". זה יוצג לציבור.</string>
|
<string name="write_something_about_the_item">נא לכתוב משהו על פריט \"%1$s\". זה יוצג לציבור.</string>
|
||||||
<string name="does_not_exist_anymore_no_picture_can_ever_be_taken_of_it">\"%1$s\" כבר לא קיים, אי־אפשר לצלם אותו.</string>
|
<string name="does_not_exist_anymore_no_picture_can_ever_be_taken_of_it">\"%1$s\" כבר לא קיים, אי־אפשר לצלם אותו.</string>
|
||||||
|
<string name="is_at_a_different_place_wikidata">‚%1$s’ נמצא במקום אחר.</string>
|
||||||
<string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">\"%1$s\" נמצא במקום אחר. נא לציין את המקום הנכון למטה, ואם אפשר, לכתוב את קו הרוחב ואת קו האורך הנכונים.</string>
|
<string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">\"%1$s\" נמצא במקום אחר. נא לציין את המקום הנכון למטה, ואם אפשר, לכתוב את קו הרוחב ואת קו האורך הנכונים.</string>
|
||||||
<string name="other_problem_or_information_please_explain_below">בעיה אחרת או מידע אחר (נא להסביר הלאה).</string>
|
<string name="other_problem_or_information_please_explain_below">בעיה אחרת או מידע אחר (נא להסביר הלאה).</string>
|
||||||
<string name="feedback_destination_note">המשוב שלך מתפרסם בדף הוויקי הבא: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobile app/Feedback</a></string>
|
<string name="feedback_destination_note">המשוב שלך מתפרסם בדף הוויקי הבא: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobile app/Feedback</a></string>
|
||||||
|
|
|
||||||
|
|
@ -256,7 +256,7 @@
|
||||||
<string name="upload_problem_exist">この画像には問題があるかもしれません。</string>
|
<string name="upload_problem_exist">この画像には問題があるかもしれません。</string>
|
||||||
<string name="upload_problem_image_dark">画像が暗すぎます。</string>
|
<string name="upload_problem_image_dark">画像が暗すぎます。</string>
|
||||||
<string name="upload_problem_image_blurry">画像のピントが合っていません。</string>
|
<string name="upload_problem_image_blurry">画像のピントが合っていません。</string>
|
||||||
<string name="upload_problem_image_duplicate">コモンズにすでに登録されている画像です。</string>
|
<string name="upload_problem_image_duplicate">コモンズに既に登録されている画像です。</string>
|
||||||
<string name="upload_problem_different_geolocation">この画像の撮影地点は別の場所です。</string>
|
<string name="upload_problem_different_geolocation">この画像の撮影地点は別の場所です。</string>
|
||||||
<string name="upload_problem_fbmd">あなた自身の撮影したがぞうに限定してアップロードしてください。他人のFacebookアカウントの画像をアップロードすることはやめてください。</string>
|
<string name="upload_problem_fbmd">あなた自身の撮影したがぞうに限定してアップロードしてください。他人のFacebookアカウントの画像をアップロードすることはやめてください。</string>
|
||||||
<string name="upload_problem_do_you_continue">それでもこの画像をアップロードしますか?</string>
|
<string name="upload_problem_do_you_continue">それでもこの画像をアップロードしますか?</string>
|
||||||
|
|
@ -303,7 +303,7 @@
|
||||||
<string name="retry">やり直す</string>
|
<string name="retry">やり直す</string>
|
||||||
<string name="showcase_view_whole_nearby_activity">以下のとおり、近くにウィキペディアの記事に使う写真が足りない場所があります。\n\n\'この近くを検索\' ボタンを押すと、地図をロックしてその地点周辺の検索結果を表示します。</string>
|
<string name="showcase_view_whole_nearby_activity">以下のとおり、近くにウィキペディアの記事に使う写真が足りない場所があります。\n\n\'この近くを検索\' ボタンを押すと、地図をロックしてその地点周辺の検索結果を表示します。</string>
|
||||||
<string name="showcase_view_needs_photo">この場所の写真を募集中です。</string>
|
<string name="showcase_view_needs_photo">この場所の写真を募集中です。</string>
|
||||||
<string name="showcase_view_has_photo">この場所の写真はすでにあります。</string>
|
<string name="showcase_view_has_photo">この場所の写真は既にあります。</string>
|
||||||
<string name="showcase_view_no_longer_exists">この場所はもうありません</string>
|
<string name="showcase_view_no_longer_exists">この場所はもうありません</string>
|
||||||
<string name="no_images_found">画像がありません</string>
|
<string name="no_images_found">画像がありません</string>
|
||||||
<string name="error_loading_images">画像の読み込み中にエラーが発生しました</string>
|
<string name="error_loading_images">画像の読み込み中にエラーが発生しました</string>
|
||||||
|
|
@ -393,7 +393,7 @@
|
||||||
<string name="step_count">全部で%2$d件のうち%1$d件目の手順:%3$s</string>
|
<string name="step_count">全部で%2$d件のうち%1$d件目の手順:%3$s</string>
|
||||||
<string name="next">次へ</string>
|
<string name="next">次へ</string>
|
||||||
<string name="previous">前へ</string>
|
<string name="previous">前へ</string>
|
||||||
<string name="upload_title_duplicate">%1$s という題名のファイルはすでに保存されています。処理をほんとうに続けますか?\n\n注記:ファイル名には適切な接頭辞が自動的に付与されます。</string>
|
<string name="upload_title_duplicate">%1$s という名前のファイルは既に存在します。本当に処理を続行してよろしいですか?\n\n注: ファイル名には適切な接尾辞が自動的に付加されます。</string>
|
||||||
<string name="map_application_missing">お使いの機器に適したアプリが見つかりませんでした。この機能を使用できる地図アプリをインストールしてください。</string>
|
<string name="map_application_missing">お使いの機器に適したアプリが見つかりませんでした。この機能を使用できる地図アプリをインストールしてください。</string>
|
||||||
<string name="title_page_bookmarks_pictures">画像</string>
|
<string name="title_page_bookmarks_pictures">画像</string>
|
||||||
<string name="title_page_bookmarks_locations">位置</string>
|
<string name="title_page_bookmarks_locations">位置</string>
|
||||||
|
|
@ -668,7 +668,7 @@
|
||||||
<string name="your_feedback">あなたのフィードバック</string>
|
<string name="your_feedback">あなたのフィードバック</string>
|
||||||
<string name="mark_as_not_for_upload">アップロード不可としてマーク</string>
|
<string name="mark_as_not_for_upload">アップロード不可としてマーク</string>
|
||||||
<string name="no_more_images_found">これ以上画像が見つかりません</string>
|
<string name="no_more_images_found">これ以上画像が見つかりません</string>
|
||||||
<string name="this_image_is_already_uploaded">この画像はすでにアップロードされています</string>
|
<string name="this_image_is_already_uploaded">この画像は既にアップロードされています</string>
|
||||||
<string name="can_not_select_this_image_for_upload">この画像をアップロード用に選択できません</string>
|
<string name="can_not_select_this_image_for_upload">この画像をアップロード用に選択できません</string>
|
||||||
<string name="image_selected">画像が選択されました</string>
|
<string name="image_selected">画像が選択されました</string>
|
||||||
<string name="menu_view_report">報告</string>
|
<string name="menu_view_report">報告</string>
|
||||||
|
|
|
||||||
|
|
@ -393,6 +393,7 @@
|
||||||
<string name="account_created">ანგარიში შეიქმნა!</string>
|
<string name="account_created">ანგარიში შეიქმნა!</string>
|
||||||
<string name="theme_dark_name">მუქი</string>
|
<string name="theme_dark_name">მუქი</string>
|
||||||
<string name="theme_light_name">ღია</string>
|
<string name="theme_light_name">ღია</string>
|
||||||
|
<string name="title_page_bookmarks_items">ელემენტი</string>
|
||||||
<string name="done">გაკეთდა</string>
|
<string name="done">გაკეთდა</string>
|
||||||
<string name="back">უკან</string>
|
<string name="back">უკან</string>
|
||||||
<string name="welcome_custom_selector_ok">შესანიშნავია</string>
|
<string name="welcome_custom_selector_ok">შესანიშნავია</string>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!-- Authors:
|
<!-- Authors:
|
||||||
* Belkacem77
|
* Belkacem77
|
||||||
|
* ButterflyOfFire
|
||||||
* Hociben
|
* Hociben
|
||||||
-->
|
-->
|
||||||
<resources>
|
<resources>
|
||||||
|
|
@ -8,6 +9,8 @@
|
||||||
<string name="commons_github">Tangalt aɣbalu Github n Commons</string>
|
<string name="commons_github">Tangalt aɣbalu Github n Commons</string>
|
||||||
<string name="commons_logo">Alugu Commons</string>
|
<string name="commons_logo">Alugu Commons</string>
|
||||||
<string name="commons_website">Asmel wen n Commons</string>
|
<string name="commons_website">Asmel wen n Commons</string>
|
||||||
|
<string name="show_captions_description">Aglam</string>
|
||||||
|
<string name="nearby_all">Akk</string>
|
||||||
<plurals name="uploads_pending_notification_indicator">
|
<plurals name="uploads_pending_notification_indicator">
|
||||||
<item quantity="one">%1$d n ufaylu yezga yettali</item>
|
<item quantity="one">%1$d n ufaylu yezga yettali</item>
|
||||||
<item quantity="other">%1$d n ifuyla zgan ttalin</item>
|
<item quantity="other">%1$d n ifuyla zgan ttalin</item>
|
||||||
|
|
@ -49,6 +52,7 @@
|
||||||
<string name="signup">Jerred</string>
|
<string name="signup">Jerred</string>
|
||||||
<string name="logging_in_title">Tuqqna...</string>
|
<string name="logging_in_title">Tuqqna...</string>
|
||||||
<string name="logging_in_message">Rǧu...</string>
|
<string name="logging_in_message">Rǧu...</string>
|
||||||
|
<string name="updating_caption_message">Txil, rǧu…</string>
|
||||||
<string name="login_success" fuzzy="true">Tuqqna tedda!</string>
|
<string name="login_success" fuzzy="true">Tuqqna tedda!</string>
|
||||||
<string name="login_failed" fuzzy="true">Tqqna ur teddi ara!</string>
|
<string name="login_failed" fuzzy="true">Tqqna ur teddi ara!</string>
|
||||||
<string name="upload_failed">Ulac afaylu. Ɛreḍ wayeḍ ma ulac aɣilif.</string>
|
<string name="upload_failed">Ulac afaylu. Ɛreḍ wayeḍ ma ulac aɣilif.</string>
|
||||||
|
|
@ -85,12 +89,14 @@
|
||||||
<string name="categories_search_text_hint">Nadi taggayin</string>
|
<string name="categories_search_text_hint">Nadi taggayin</string>
|
||||||
<string name="menu_save_categories">Sekles</string>
|
<string name="menu_save_categories">Sekles</string>
|
||||||
<string name="refresh_button">Smiren</string>
|
<string name="refresh_button">Smiren</string>
|
||||||
|
<string name="display_list_button">Tabdart</string>
|
||||||
<string name="contributions_subtitle_zero" fuzzy="true">Usla ayen yulin</string>
|
<string name="contributions_subtitle_zero" fuzzy="true">Usla ayen yulin</string>
|
||||||
<string name="categories_not_found">Ulac taggayin imenṭaḍen akked %1$s i yettwafen</string>
|
<string name="categories_not_found">Ulac taggayin imenṭaḍen akked %1$s i yettwafen</string>
|
||||||
<string name="categories_skip_explanation">Rnu taggayin akken ad terreḍ tugniwin-ik sehlent i tifin di Wikimedia Commons.\n\nBdu timerna n taggayin.</string>
|
<string name="categories_skip_explanation">Rnu taggayin akken ad terreḍ tugniwin-ik sehlent i tifin di Wikimedia Commons.\n\nBdu timerna n taggayin.</string>
|
||||||
<string name="categories_activity_title">Taggayin</string>
|
<string name="categories_activity_title">Taggayin</string>
|
||||||
<string name="title_activity_settings">Iɣewwaṛen</string>
|
<string name="title_activity_settings">Iɣewwaṛen</string>
|
||||||
<string name="title_activity_signup">Jerred</string>
|
<string name="title_activity_signup">Jerred</string>
|
||||||
|
<string name="title_activity_category_details">Taggayt</string>
|
||||||
<string name="menu_about">Ɣef</string>
|
<string name="menu_about">Ɣef</string>
|
||||||
<string name="about_license">Asnas Wikipedia Commons d asnas n uɣbalu yeldin i d-yennulfan udiɣ yettwarfed sɣur iwiziwen d wid i t-iḍemnen n tmezdagnut Wikimedia. Tasbeddit Wikimedia ur tetteka ara deg usnulfu-is, tanfelit-is, neɣ aseggem n usnas.</string>
|
<string name="about_license">Asnas Wikipedia Commons d asnas n uɣbalu yeldin i d-yennulfan udiɣ yettwarfed sɣur iwiziwen d wid i t-iḍemnen n tmezdagnut Wikimedia. Tasbeddit Wikimedia ur tetteka ara deg usnulfu-is, tanfelit-is, neɣ aseggem n usnas.</string>
|
||||||
<string name="about_improve">Rnu <a href=\"%1$s\">tummla tamaynut GitHub</a> akken ad temmleḍ ibugen neɣ ad d-mudded isumar.</string>
|
<string name="about_improve">Rnu <a href=\"%1$s\">tummla tamaynut GitHub</a> akken ad temmleḍ ibugen neɣ ad d-mudded isumar.</string>
|
||||||
|
|
@ -129,6 +135,7 @@
|
||||||
<string name="welcome_copyright_subtext">Zgel axedddim yettwaḥerzen ara tafeḍ di Internet akked tugniwin n inazalen, tiduliwin n yidlisen, atg.</string>
|
<string name="welcome_copyright_subtext">Zgel axedddim yettwaḥerzen ara tafeḍ di Internet akked tugniwin n inazalen, tiduliwin n yidlisen, atg.</string>
|
||||||
<string name="welcome_final_text">Tɣileḍ igarrez?</string>
|
<string name="welcome_final_text">Tɣileḍ igarrez?</string>
|
||||||
<string name="welcome_final_button_text">Ih!</string>
|
<string name="welcome_final_button_text">Ih!</string>
|
||||||
|
<string name="welcome_help_button_text">Ugar n telɣut</string>
|
||||||
<string name="detail_panel_cats_label">Taggayin</string>
|
<string name="detail_panel_cats_label">Taggayin</string>
|
||||||
<string name="detail_panel_cats_loading">Asali...</string>
|
<string name="detail_panel_cats_loading">Asali...</string>
|
||||||
<string name="detail_panel_cats_none">Ula d yiwet ur tettwafren</string>
|
<string name="detail_panel_cats_none">Ula d yiwet ur tettwafren</string>
|
||||||
|
|
@ -139,10 +146,12 @@
|
||||||
<string name="write_storage_permission_rationale" fuzzy="true">Ysera tasiregt: Aru deg usekles azɣaray. Asnas ur yezmir ara ad yeddu s war aya.</string>
|
<string name="write_storage_permission_rationale" fuzzy="true">Ysera tasiregt: Aru deg usekles azɣaray. Asnas ur yezmir ara ad yeddu s war aya.</string>
|
||||||
<string name="ok">IH</string>
|
<string name="ok">IH</string>
|
||||||
<string name="warning">Ɣur-k</string>
|
<string name="warning">Ɣur-k</string>
|
||||||
|
<string name="upload">Sali</string>
|
||||||
<string name="yes">Ih</string>
|
<string name="yes">Ih</string>
|
||||||
<string name="no">Uhu</string>
|
<string name="no">Uhu</string>
|
||||||
<string name="media_detail_title">Azwel</string>
|
<string name="media_detail_title">Azwel</string>
|
||||||
<string name="media_detail_description">Aglam</string>
|
<string name="media_detail_description">Aglam</string>
|
||||||
|
<string name="media_detail_author">Ameskar</string>
|
||||||
<string name="media_detail_uploaded_date">Azemz n usali</string>
|
<string name="media_detail_uploaded_date">Azemz n usali</string>
|
||||||
<string name="media_detail_license">Turagt</string>
|
<string name="media_detail_license">Turagt</string>
|
||||||
<string name="media_detail_coordinates">imsidag</string>
|
<string name="media_detail_coordinates">imsidag</string>
|
||||||
|
|
@ -180,6 +189,16 @@
|
||||||
<string name="login_to_your_account">Qqen ar umiḍan-ik</string>
|
<string name="login_to_your_account">Qqen ar umiḍan-ik</string>
|
||||||
<string name="send_log_file">Azen afaylu n uɣmis</string>
|
<string name="send_log_file">Azen afaylu n uɣmis</string>
|
||||||
<string name="send_log_file_description" fuzzy="true">Azen afaylu n uɣmis i yinermisen s yimayl</string>
|
<string name="send_log_file_description" fuzzy="true">Azen afaylu n uɣmis i yinermisen s yimayl</string>
|
||||||
|
<string name="navigation_item_login">Qqen</string>
|
||||||
<string name="nearby_location_not_available" fuzzy="true">Ulac adeg</string>
|
<string name="nearby_location_not_available" fuzzy="true">Ulac adeg</string>
|
||||||
<string name="location_permission_rationale_nearby">Ilaq usireg i uskan tabdart n wadigen iqerben</string>
|
<string name="location_permission_rationale_nearby">Ilaq usireg i uskan tabdart n wadigen iqerben</string>
|
||||||
|
<string name="nearby_wikidata">Wikidata</string>
|
||||||
|
<string name="nearby_wikipedia">Wikipedia</string>
|
||||||
|
<string name="about_faq">Isteqsiyen FAQ</string>
|
||||||
|
<string name="about_translate">Suqel</string>
|
||||||
|
<string name="about_translate_title">Tutlayin</string>
|
||||||
|
<string name="about_translate_cancel">Semmet</string>
|
||||||
|
<string name="menu_search_button">Nadi</string>
|
||||||
|
<string name="title_activity_search">Nadi</string>
|
||||||
|
<string name="search_tab_title_categories">Taggayin</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,9 @@
|
||||||
<string name="show_captions_description">설명</string>
|
<string name="show_captions_description">설명</string>
|
||||||
<string name="nearby_row_image">이미지</string>
|
<string name="nearby_row_image">이미지</string>
|
||||||
<string name="nearby_all">모두</string>
|
<string name="nearby_all">모두</string>
|
||||||
|
<string name="nearby_filter_toggle">위로 전환</string>
|
||||||
<string name="nearby_filter_search">검색 뷰</string>
|
<string name="nearby_filter_search">검색 뷰</string>
|
||||||
|
<string name="nearby_filter_state">장소 상태</string>
|
||||||
<string name="appwidget_img">오늘의 이미지</string>
|
<string name="appwidget_img">오늘의 이미지</string>
|
||||||
<plurals name="uploads_pending_notification_indicator">
|
<plurals name="uploads_pending_notification_indicator">
|
||||||
<item quantity="one">%1$d개의 파일을 올리는 중</item>
|
<item quantity="one">%1$d개의 파일을 올리는 중</item>
|
||||||
|
|
@ -227,6 +229,7 @@
|
||||||
<string name="become_a_tester_title">베타 테스터가 되세요</string>
|
<string name="become_a_tester_title">베타 테스터가 되세요</string>
|
||||||
<string name="become_a_tester_description">구글 플레이 베타 채널에서 메일 발송을 허가해서 새로운 기능이나 버그 수정에 대한 정보를 빨리 얻어보세요</string>
|
<string name="become_a_tester_description">구글 플레이 베타 채널에서 메일 발송을 허가해서 새로운 기능이나 버그 수정에 대한 정보를 빨리 얻어보세요</string>
|
||||||
<string name="_2fa_code">2FA 코드</string>
|
<string name="_2fa_code">2FA 코드</string>
|
||||||
|
<string name="email_auth_code">이메일 인증 코드</string>
|
||||||
<string name="logout_verification">정말 로그아웃하시겠습니까?</string>
|
<string name="logout_verification">정말 로그아웃하시겠습니까?</string>
|
||||||
<string name="mediaimage_failed">미디어 그림 실패</string>
|
<string name="mediaimage_failed">미디어 그림 실패</string>
|
||||||
<string name="no_subcategory_found">하위 분류가 없습니다</string>
|
<string name="no_subcategory_found">하위 분류가 없습니다</string>
|
||||||
|
|
@ -429,12 +432,12 @@
|
||||||
<string name="unable_to_display_nearest_place">위치 권한 없이 사진이 필요한 주변 장소를 표시할 수 없습니다</string>
|
<string name="unable_to_display_nearest_place">위치 권한 없이 사진이 필요한 주변 장소를 표시할 수 없습니다</string>
|
||||||
<string name="never_ask_again">다시는 묻지 않음</string>
|
<string name="never_ask_again">다시는 묻지 않음</string>
|
||||||
<string name="display_location_permission_title">위치 권한 요청</string>
|
<string name="display_location_permission_title">위치 권한 요청</string>
|
||||||
<string name="achievements_fetch_failed" fuzzy="true">무언가가 잘못되어, 저희는 당신의 업적을 가져올 수 없었습니다</string>
|
<string name="achievements_fetch_failed">오류가 발생하여, 업적을 가져올 수 없습니다.</string>
|
||||||
<string name="display_campaigns">캠페인 표시</string>
|
<string name="display_campaigns">캠페인 표시</string>
|
||||||
<string name="display_campaigns_explanation">진행되고 있는 캠페인 보기</string>
|
<string name="display_campaigns_explanation">진행되고 있는 캠페인 보기</string>
|
||||||
<string name="option_allow">허용</string>
|
<string name="option_allow">허용</string>
|
||||||
<string name="option_dismiss">숨기기</string>
|
<string name="option_dismiss">숨기기</string>
|
||||||
<string name="this_function_needs_network_connection" fuzzy="true">이 기능에는 네트워크 연결이 필요합니다. 연결 설정을 확인해 주십시오.</string>
|
<string name="this_function_needs_network_connection">이 기능을 사용하려면 네트워크 연결이 필요합니다. 연결 설정을 확인해 주십시오.</string>
|
||||||
<string name="error_processing_image">이미지를 처리하는 동안 오류가 발생했습니다. 다시 시도해 주십시오!</string>
|
<string name="error_processing_image">이미지를 처리하는 동안 오류가 발생했습니다. 다시 시도해 주십시오!</string>
|
||||||
<string name="getting_edit_token">편집을 위한 토큰을 가져옵니다</string>
|
<string name="getting_edit_token">편집을 위한 토큰을 가져옵니다</string>
|
||||||
<string name="check_category_adding_template">분류 검사를 위한 틀을 추가합니다</string>
|
<string name="check_category_adding_template">분류 검사를 위한 틀을 추가합니다</string>
|
||||||
|
|
@ -450,6 +453,7 @@
|
||||||
<string name="send_thank_failure_title">감사 표현 보내기: 실패</string>
|
<string name="send_thank_failure_title">감사 표현 보내기: 실패</string>
|
||||||
<string name="review_copyright">이것이 저작권 규정을 준수하고 있습니까?</string>
|
<string name="review_copyright">이것이 저작권 규정을 준수하고 있습니까?</string>
|
||||||
<string name="review_category">알맞게 분류됐습니까?</string>
|
<string name="review_category">알맞게 분류됐습니까?</string>
|
||||||
|
<string name="review_spam">이것이 범위에 포함되나요?</string>
|
||||||
<string name="review_thanks">기여자에게 감사를 표하시겠습니까?</string>
|
<string name="review_thanks">기여자에게 감사를 표하시겠습니까?</string>
|
||||||
<string name="review_no_category">앗, 분류가 달리지 않은 것 같습니다!</string>
|
<string name="review_no_category">앗, 분류가 달리지 않은 것 같습니다!</string>
|
||||||
<string name="review_category_explanation">이 이미지는 %1$s 분류에 속해 있습니다.</string>
|
<string name="review_category_explanation">이 이미지는 %1$s 분류에 속해 있습니다.</string>
|
||||||
|
|
@ -458,7 +462,7 @@
|
||||||
<string name="review_thanks_yes_button_text">다음 이미지</string>
|
<string name="review_thanks_yes_button_text">다음 이미지</string>
|
||||||
<string name="review_thanks_no_button_text">예</string>
|
<string name="review_thanks_no_button_text">예</string>
|
||||||
<string name="skip_image_explanation">이 버튼을 클릭하면 위키미디어 공용으로부터 최근 업로드된 다른 이미지를 제공합니다</string>
|
<string name="skip_image_explanation">이 버튼을 클릭하면 위키미디어 공용으로부터 최근 업로드된 다른 이미지를 제공합니다</string>
|
||||||
<string name="review_image_explanation" fuzzy="true">이미지를 검토하고 위키미디어 공용의 품질을 개선할 수 있습니다.\n 4가지 검토 변수가 있습니다:\n - 이 이미지가 범위 내에 있는가? \n - 이 이미지가 저작권 규정을 준수하고 있는가? \n - 이 이미지가 올바르게 분류되어 있는가? \n - 모든 것이 문제 없다면 기여자에게 감사를 표할 수도 있습니다.</string>
|
<string name="review_image_explanation">이미지를 검토하고 위키미디어 공용의 품질을 개선할 수 있습니다.\n검토의 3가지 매개변수는 다음과 같습니다:\n\n- 이 이미지가 범위 내에 있는가?\n아니요(범위 밖)를 선택하면 이 이미지에 삭제 요청 틀이 추가됩니다.\n\n- 이 이미지가 저작권 규정을 준수하고 있는가?\n아니요(저작권 규칙을 따르지 않음)를 선택하면 이 이미지에 삭제 요청 틀이 추가됩니다.\n\n- 이 이미지가 올바르게 분류되어 있는가?\n아니요(올바르게 분류되지 않음)를 선택하면 이 이미지에 삭제 요청 틀이 추가됩니다.\n\n모든 것이 문제 없다면 이미지에 틀이 추가되지 않고, 기여자에게 감사를 표할 수도 있습니다.</string>
|
||||||
<string name="no_image">이미지가 사용되지 않음</string>
|
<string name="no_image">이미지가 사용되지 않음</string>
|
||||||
<string name="no_image_uploaded">이미지가 올려지지 않음</string>
|
<string name="no_image_uploaded">이미지가 올려지지 않음</string>
|
||||||
<string name="no_notification">읽지 않은 알림이 없습니다</string>
|
<string name="no_notification">읽지 않은 알림이 없습니다</string>
|
||||||
|
|
@ -487,13 +491,14 @@
|
||||||
<string name="no_categories_found">분류가 없습니다</string>
|
<string name="no_categories_found">분류가 없습니다</string>
|
||||||
<string name="no_depiction_found">서술이 발견되지 않았습니다</string>
|
<string name="no_depiction_found">서술이 발견되지 않았습니다</string>
|
||||||
<string name="upload_cancelled">업로드 취소됨</string>
|
<string name="upload_cancelled">업로드 취소됨</string>
|
||||||
|
<string name="dialog_box_text_nomination">%1$s을(를) 삭제해야 하는 이유는 무엇인가요?</string>
|
||||||
<string name="default_description_language">기본 설명 언어</string>
|
<string name="default_description_language">기본 설명 언어</string>
|
||||||
<string name="delete_helper_show_deletion_title">삭제 신청</string>
|
<string name="delete_helper_show_deletion_title">삭제 신청</string>
|
||||||
<string name="delete_helper_show_deletion_title_success">성공</string>
|
<string name="delete_helper_show_deletion_title_success">성공</string>
|
||||||
<string name="delete_helper_show_deletion_message_if">%1$s을(를) 삭제 신청함</string>
|
<string name="delete_helper_show_deletion_message_if">%1$s을(를) 삭제 신청함</string>
|
||||||
<string name="delete_helper_show_deletion_title_failed">실패</string>
|
<string name="delete_helper_show_deletion_title_failed">실패</string>
|
||||||
<string name="delete_helper_show_deletion_message_else">삭제를 요청하지 못했습니다.</string>
|
<string name="delete_helper_show_deletion_message_else">삭제를 요청하지 못했습니다.</string>
|
||||||
<string name="delete_helper_ask_spam_selfie" fuzzy="true">셀카</string>
|
<string name="delete_helper_ask_spam_selfie">어떤 문서에도 사용되지 않는 셀카</string>
|
||||||
<string name="delete_helper_ask_spam_blurry">완전히 흐림</string>
|
<string name="delete_helper_ask_spam_blurry">완전히 흐림</string>
|
||||||
<string name="delete_helper_ask_reason_copyright_press_photo">보도 사진</string>
|
<string name="delete_helper_ask_reason_copyright_press_photo">보도 사진</string>
|
||||||
<string name="delete_helper_ask_reason_copyright_internet_photo">인터넷상의 무작위 이미지</string>
|
<string name="delete_helper_ask_reason_copyright_internet_photo">인터넷상의 무작위 이미지</string>
|
||||||
|
|
@ -504,6 +509,7 @@
|
||||||
<string name="category_edit_helper_show_edit_title_success">성공</string>
|
<string name="category_edit_helper_show_edit_title_success">성공</string>
|
||||||
<string name="category_edit_helper_edit_message_else">분류를 추가하지 못했습니다.</string>
|
<string name="category_edit_helper_edit_message_else">분류를 추가하지 못했습니다.</string>
|
||||||
<string name="category_edit_button_text">분류 업데이트</string>
|
<string name="category_edit_button_text">분류 업데이트</string>
|
||||||
|
<string name="depictions_edit_helper_show_edit_title">묘사된 항목 편집하기</string>
|
||||||
<string name="coordinates_edit_helper_show_edit_title">좌표 업데이트</string>
|
<string name="coordinates_edit_helper_show_edit_title">좌표 업데이트</string>
|
||||||
<string name="description_edit_helper_show_edit_title">설명 업데이트</string>
|
<string name="description_edit_helper_show_edit_title">설명 업데이트</string>
|
||||||
<string name="caption_edit_helper_show_edit_title">캡션 업데이트</string>
|
<string name="caption_edit_helper_show_edit_title">캡션 업데이트</string>
|
||||||
|
|
@ -563,10 +569,13 @@
|
||||||
<string name="paused">일시 중단됨</string>
|
<string name="paused">일시 중단됨</string>
|
||||||
<string name="more">더 보기</string>
|
<string name="more">더 보기</string>
|
||||||
<string name="bookmarks">책갈피</string>
|
<string name="bookmarks">책갈피</string>
|
||||||
|
<string name="achievements_tab_title">성과</string>
|
||||||
<string name="leaderboard_tab_title">리더보드</string>
|
<string name="leaderboard_tab_title">리더보드</string>
|
||||||
<string name="rank_prefix">순위:</string>
|
<string name="rank_prefix">순위:</string>
|
||||||
|
<string name="count_prefix">개수:</string>
|
||||||
<string name="leaderboard_column_rank">순위</string>
|
<string name="leaderboard_column_rank">순위</string>
|
||||||
<string name="leaderboard_column_user">사용자</string>
|
<string name="leaderboard_column_user">사용자</string>
|
||||||
|
<string name="leaderboard_column_count">개수</string>
|
||||||
<string name="setting_avatar_dialog_title">리더보드 아바타로 설정</string>
|
<string name="setting_avatar_dialog_title">리더보드 아바타로 설정</string>
|
||||||
<string name="setting_avatar_dialog_message">아바타로 설정 중이니 기다려 주십시오</string>
|
<string name="setting_avatar_dialog_message">아바타로 설정 중이니 기다려 주십시오</string>
|
||||||
<string name="avatar_set_unsuccessfully">새 아바타를 설정하는 중 오류가 발생했습니다. 다시 시도해 주십시오</string>
|
<string name="avatar_set_unsuccessfully">새 아바타를 설정하는 중 오류가 발생했습니다. 다시 시도해 주십시오</string>
|
||||||
|
|
@ -689,6 +698,7 @@
|
||||||
<string name="please_enter_some_comments">의견을 입력해 주십시오</string>
|
<string name="please_enter_some_comments">의견을 입력해 주십시오</string>
|
||||||
<string name="talk">토론</string>
|
<string name="talk">토론</string>
|
||||||
<string name="other_problem_or_information_please_explain_below">기타 문제 또는 정보 (아래에 설명해 주십시오)</string>
|
<string name="other_problem_or_information_please_explain_below">기타 문제 또는 정보 (아래에 설명해 주십시오)</string>
|
||||||
|
<string name="are_you_sure_that_you_want_cancel_all_the_uploads">모든 업로드를 취소하시겠습니까?</string>
|
||||||
<string name="cancelling_all_the_uploads">모든 업로드를 취소하는 중...</string>
|
<string name="cancelling_all_the_uploads">모든 업로드를 취소하는 중...</string>
|
||||||
<string name="uploads">업로드</string>
|
<string name="uploads">업로드</string>
|
||||||
<string name="pending">보류 중</string>
|
<string name="pending">보류 중</string>
|
||||||
|
|
|
||||||
|
|
@ -785,6 +785,7 @@
|
||||||
<string name="talk">Разговор</string>
|
<string name="talk">Разговор</string>
|
||||||
<string name="write_something_about_the_item">Напишете нешто за предметот „%1$s“. Ова ќе биде јавно видливо.</string>
|
<string name="write_something_about_the_item">Напишете нешто за предметот „%1$s“. Ова ќе биде јавно видливо.</string>
|
||||||
<string name="does_not_exist_anymore_no_picture_can_ever_be_taken_of_it">„%1$s“ повеќе не постои, нема да може да се фотографира.</string>
|
<string name="does_not_exist_anymore_no_picture_can_ever_be_taken_of_it">„%1$s“ повеќе не постои, нема да може да се фотографира.</string>
|
||||||
|
<string name="is_at_a_different_place_wikidata">„%1$s“ се наоѓа на друго место.</string>
|
||||||
<string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">„%1$s“ се наоѓа на друго место. Подолу укажете го исправното место и, ако е можно, ставете исправна географска ширина и должина.</string>
|
<string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">„%1$s“ се наоѓа на друго место. Подолу укажете го исправното место и, ако е можно, ставете исправна географска ширина и должина.</string>
|
||||||
<string name="other_problem_or_information_please_explain_below">Друг проблем или информација (објаснете подолу).</string>
|
<string name="other_problem_or_information_please_explain_below">Друг проблем или информација (објаснете подолу).</string>
|
||||||
<string name="feedback_destination_note">Вашите мислења се објавуваат на следнава викистраница: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobile app/Feedback</a></string>
|
<string name="feedback_destination_note">Вашите мислења се објавуваат на следнава викистраница: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobile app/Feedback</a></string>
|
||||||
|
|
|
||||||
|
|
@ -826,6 +826,7 @@
|
||||||
<string name="talk">Dyskusja</string>
|
<string name="talk">Dyskusja</string>
|
||||||
<string name="write_something_about_the_item">Napisz coś o elemencie \' %1$s\'. Będzie to publicznie widoczne.</string>
|
<string name="write_something_about_the_item">Napisz coś o elemencie \' %1$s\'. Będzie to publicznie widoczne.</string>
|
||||||
<string name="does_not_exist_anymore_no_picture_can_ever_be_taken_of_it">\'%1$s\' już nie istnieje, nie da się zrobić dla niego zdjęcia.</string>
|
<string name="does_not_exist_anymore_no_picture_can_ever_be_taken_of_it">\'%1$s\' już nie istnieje, nie da się zrobić dla niego zdjęcia.</string>
|
||||||
|
<string name="is_at_a_different_place_wikidata">\'%1$s\' znajduje się w innym miejscu.</string>
|
||||||
<string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">\'%1$s\' jest w innym miejscu. Proszę podać poniżej prawidłowe miejsce i jeśli to możliwe, wpisać jego prawidłową szerokość i długość geograficzną.</string>
|
<string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">\'%1$s\' jest w innym miejscu. Proszę podać poniżej prawidłowe miejsce i jeśli to możliwe, wpisać jego prawidłową szerokość i długość geograficzną.</string>
|
||||||
<string name="other_problem_or_information_please_explain_below">Inny problem lub informacja (proszę wyjaśnić poniżej).</string>
|
<string name="other_problem_or_information_please_explain_below">Inny problem lub informacja (proszę wyjaśnić poniżej).</string>
|
||||||
<string name="feedback_destination_note">Twoja opinia zostanie opublikowana na następującej stronie wiki: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Aplikacja mobilna/Opinie</a></string>
|
<string name="feedback_destination_note">Twoja opinia zostanie opublikowana na następującej stronie wiki: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Aplikacja mobilna/Opinie</a></string>
|
||||||
|
|
@ -855,6 +856,7 @@
|
||||||
<string name="account">Konto</string>
|
<string name="account">Konto</string>
|
||||||
<string name="vanish_account">Wymaż konto</string>
|
<string name="vanish_account">Wymaż konto</string>
|
||||||
<string name="account_vanish_request_confirm_title">Ostrzeżenie o wymazaniu konta</string>
|
<string name="account_vanish_request_confirm_title">Ostrzeżenie o wymazaniu konta</string>
|
||||||
|
<string name="account_vanish_request_confirm">Wymazanie to <b>ostateczność</b> i należy z niej skorzystać <b>tylko wtedy, gdy chcesz na zawsze zaprzestać edytowania</b> oraz ukryć jak najwięcej swoich przeszłych powiązań.<br/><br/>Usunięcie konta w Wikimedia Commons odbywa się poprzez zmianę nazwy konta, tak aby inni nie mogli rozpoznać Twoich wkładów, w procesie zwanym wymazaniem konta. <b>Wymazanie nie gwarantuje pełnej anonimowości ani nie usuwa wkładów wniesionych do projektów</b>.</string>
|
||||||
<string name="caption">Podpis</string>
|
<string name="caption">Podpis</string>
|
||||||
<string name="caption_copied_to_clipboard">Podpis skopiowano do schowka</string>
|
<string name="caption_copied_to_clipboard">Podpis skopiowano do schowka</string>
|
||||||
<string name="congratulations_all_pictures_in_this_album_have_been_either_uploaded_or_marked_as_not_for_upload">Gratulacje, wszystkie zdjęcia w tym albumie zostały przesłane lub zostały oznaczone jako nie do przesłania.</string>
|
<string name="congratulations_all_pictures_in_this_album_have_been_either_uploaded_or_marked_as_not_for_upload">Gratulacje, wszystkie zdjęcia w tym albumie zostały przesłane lub zostały oznaczone jako nie do przesłania.</string>
|
||||||
|
|
|
||||||
|
|
@ -781,6 +781,7 @@
|
||||||
<string name="talk">Ciaciarade</string>
|
<string name="talk">Ciaciarade</string>
|
||||||
<string name="write_something_about_the_item">Scrive cheicòs a propòsit ëd l\'element \'%1$s\'. Sòn a sarà visìbil për tuti.</string>
|
<string name="write_something_about_the_item">Scrive cheicòs a propòsit ëd l\'element \'%1$s\'. Sòn a sarà visìbil për tuti.</string>
|
||||||
<string name="does_not_exist_anymore_no_picture_can_ever_be_taken_of_it">\'%1$s\' a esist pi nen, a peul pa esse fotografà.</string>
|
<string name="does_not_exist_anymore_no_picture_can_ever_be_taken_of_it">\'%1$s\' a esist pi nen, a peul pa esse fotografà.</string>
|
||||||
|
<string name="is_at_a_different_place_wikidata">\'%1$s\' a l\'é ant un pòst diferent.</string>
|
||||||
<string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">\'%1$s\' a l\'é ant un pòst diferent. Për piasì, ch\'a spessìfica ël pòst giust sì-sota e, si possìbil, ch\'a scriva latitùdin e longitùdin giuste.</string>
|
<string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">\'%1$s\' a l\'é ant un pòst diferent. Për piasì, ch\'a spessìfica ël pòst giust sì-sota e, si possìbil, ch\'a scriva latitùdin e longitùdin giuste.</string>
|
||||||
<string name="other_problem_or_information_please_explain_below">Àutr problema o anformassion (për piasì, ch\'a spiega sì-sota).</string>
|
<string name="other_problem_or_information_please_explain_below">Àutr problema o anformassion (për piasì, ch\'a spiega sì-sota).</string>
|
||||||
<string name="feedback_destination_note">Ij sò sugeriment a saran giontà a coste pàgine wiki: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobile app/Feedback</a></string>
|
<string name="feedback_destination_note">Ij sò sugeriment a saran giontà a coste pàgine wiki: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobile app/Feedback</a></string>
|
||||||
|
|
|
||||||
|
|
@ -143,7 +143,9 @@
|
||||||
<string name="title_activity_category_details">وېشنيزه</string>
|
<string name="title_activity_category_details">وېشنيزه</string>
|
||||||
<string name="title_activity_review">ملگرو بياکتنه</string>
|
<string name="title_activity_review">ملگرو بياکتنه</string>
|
||||||
<string name="menu_about">په اړه</string>
|
<string name="menu_about">په اړه</string>
|
||||||
<string name="about_privacy_policy" fuzzy="true"><a href=\"https://wikimediafoundation.org/wiki/Privacy_policy\">د پټنتيا تگلاره</a></string>
|
<string name="about_license">د ويکيرسنۍ خونديځ کاريال يو پرانيستې سرچينې کاريال دی چې د ويکيرسنۍ ټولنې د بسپنه ورکوونکو او خپلخوښو کارنانو له خوا جوړ شوی او ساتل کېږي. د ويکيرسنۍ بنسټ د دې کاريال په جوړولو، پراختيا او ساتنه کې ښکېل نه دی.</string>
|
||||||
|
<string name="about_improve">د بگ راپور او وړانديزونو لپاره يوه <a href=\"%1$s\">گيټ هاب ستونزه</a> جوړه کړئ.</string>
|
||||||
|
<string name="about_privacy_policy">د پټنتيا تگلار</string>
|
||||||
<string name="title_activity_about">په اړه</string>
|
<string name="title_activity_about">په اړه</string>
|
||||||
<string name="menu_feedback">غبرگون لېږنه (برېښليک له لارې)</string>
|
<string name="menu_feedback">غبرگون لېږنه (برېښليک له لارې)</string>
|
||||||
<string name="no_email_client">هيڅ برېښليک سرچينه نه ده ځای پرځای شوې</string>
|
<string name="no_email_client">هيڅ برېښليک سرچينه نه ده ځای پرځای شوې</string>
|
||||||
|
|
@ -161,13 +163,36 @@
|
||||||
<string name="license_name_cc_by_sa">ځانگړي کونگ-ورته وېشنه ۳.۰</string>
|
<string name="license_name_cc_by_sa">ځانگړي کونگ-ورته وېشنه ۳.۰</string>
|
||||||
<string name="license_name_cc_by">ځانگړي کونگ ۳.۰</string>
|
<string name="license_name_cc_by">ځانگړي کونگ ۳.۰</string>
|
||||||
<string name="license_name_cc_by_3_0">CC BY 3.0</string>
|
<string name="license_name_cc_by_3_0">CC BY 3.0</string>
|
||||||
|
<string name="tutorial_1_subtext">ستاسو انځورونه د نړۍ په گوټ گوټ کې خلکو ته زده کړه ورکوي!</string>
|
||||||
|
<string name="tutorial_2_text">مهرباني وکړئ هغه انځورونه راپورته کړئ چې په بشپړ ډول تاسو اخيستي يا جوړ کړې وي:</string>
|
||||||
|
<string name="tutorial_2_subtext_1">طبيعي څيزونه (گلان، څاروي، غرونه)</string>
|
||||||
|
<string name="tutorial_2_subtext_2">گټور څيزونه (بايسيکلونه، اورگډو تمځايونه)</string>
|
||||||
|
<string name="tutorial_2_subtext_3">نوميالي وگړي (ستاسو ښاروال، اولمپيک لوبغاړی چې تاسو ورسره وليدل)</string>
|
||||||
|
<string name="tutorial_3_text">مهرباني وکړئ مه يې راپورته کوئ:</string>
|
||||||
|
<string name="tutorial_3_subtext_1">د خپلو ملگرو ځانانځورنه او انځورونه</string>
|
||||||
|
<string name="tutorial_3_subtext_2">هغه انځورنه چې تاسو له اينټرنېټ څخه راکښته کړې وي</string>
|
||||||
|
<string name="tutorial_3_subtext_3">د ملکيتي کاريالونو سکرينشاټونه</string>
|
||||||
|
<string name="tutorial_4_text">د پورته کولو بېلگه:</string>
|
||||||
|
<string name="tutorial_4_subtext_1">سرليک: سيډني اوپېرا هاوس</string>
|
||||||
|
<string name="tutorial_4_subtext_2">څرگنداوی: د خليج له خوا د سيډني اوپېرا هاوس ليدنه</string>
|
||||||
|
<string name="tutorial_4_subtext_3">وېشنيزې: له لوېديځ څخه د سېډني اوپېرا هاوس ، د سېډني اوپېرا هاوس لرليد</string>
|
||||||
|
<string name="welcome_wikipedia_text">خپل انځورونه شريک کړئ. د ويکيپېډيا ليکنو ته ژوند ورکولو کې مرسته وکړئ!</string>
|
||||||
|
<string name="welcome_wikipedia_subtext">په ويکيپېډيا کې دا انځورونه له ويکيمېډيا خونديځ نه اخيستل شوي دي.</string>
|
||||||
|
<string name="welcome_copyright_text">ستاسو انځورونه د نړۍ په گوټ گوټ کې خلکو ته زده کړه ورکوي!</string>
|
||||||
|
<string name="welcome_copyright_subtext">له اينټرنېته د لمېس رېښتو لرونکو موادو او د پوسټرونو، کتاب پوښونو او نورو انځورنو د خپرلو څخه ډډه وکړئ.</string>
|
||||||
|
<string name="welcome_final_text">ستا په اند ته پوه شوې؟</string>
|
||||||
<string name="welcome_final_button_text">هو</string>
|
<string name="welcome_final_button_text">هو</string>
|
||||||
|
<string name="welcome_help_button_text">نور مالومات</string>
|
||||||
<string name="detail_panel_cats_label">وېشنيزې</string>
|
<string name="detail_panel_cats_label">وېشنيزې</string>
|
||||||
<string name="detail_panel_cats_loading">رابرسېرېږي...</string>
|
<string name="detail_panel_cats_loading">رابرسېرېږي...</string>
|
||||||
<string name="detail_panel_cats_none">هېڅ هم نه دی ټاکل شوی</string>
|
<string name="detail_panel_cats_none">هېڅ هم نه دی ټاکل شوی</string>
|
||||||
|
<string name="detail_caption_empty">هيڅ نيونگ نشته</string>
|
||||||
<string name="detail_description_empty">څرگندونه نشته</string>
|
<string name="detail_description_empty">څرگندونه نشته</string>
|
||||||
|
<string name="detail_discussion_empty">هيڅ شننه نشته</string>
|
||||||
<string name="detail_license_empty">نامعلوم جواز</string>
|
<string name="detail_license_empty">نامعلوم جواز</string>
|
||||||
<string name="menu_refresh">تازه کول</string>
|
<string name="menu_refresh">تازه کول</string>
|
||||||
|
<string name="storage_permission_title">د زېرمه کولو د پرېښولي غوښتنه کول</string>
|
||||||
|
<string name="read_storage_permission_rationale">اړينه پرېښولی: بهرنۍ زېرمه ولولئ. کاريال ستاسو انځورتونه ته پرته له دې لاسرسی نشي موندلی.</string>
|
||||||
<string name="ok">ښه</string>
|
<string name="ok">ښه</string>
|
||||||
<string name="warning">گواښنه</string>
|
<string name="warning">گواښنه</string>
|
||||||
<string name="yes">هو</string>
|
<string name="yes">هو</string>
|
||||||
|
|
|
||||||
|
|
@ -848,6 +848,7 @@
|
||||||
<string name="talk">Обсуждение</string>
|
<string name="talk">Обсуждение</string>
|
||||||
<string name="write_something_about_the_item">Напишите что-нибудь об элементе \'%1$s\'. Это будет видно всем.</string>
|
<string name="write_something_about_the_item">Напишите что-нибудь об элементе \'%1$s\'. Это будет видно всем.</string>
|
||||||
<string name="does_not_exist_anymore_no_picture_can_ever_be_taken_of_it">\'%1$s\' больше не существует, его невозможно сфотографировать.</string>
|
<string name="does_not_exist_anymore_no_picture_can_ever_be_taken_of_it">\'%1$s\' больше не существует, его невозможно сфотографировать.</string>
|
||||||
|
<string name="is_at_a_different_place_wikidata">\'%1$s\' находится в другом месте.</string>
|
||||||
<string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">\'%1$s\' находится в другом месте. Пожалуйста, укажите правильное место ниже и, если возможно, напишите правильную широту и долготу.</string>
|
<string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">\'%1$s\' находится в другом месте. Пожалуйста, укажите правильное место ниже и, если возможно, напишите правильную широту и долготу.</string>
|
||||||
<string name="other_problem_or_information_please_explain_below">Другая проблема или информация (пожалуйста, объясните ниже).</string>
|
<string name="other_problem_or_information_please_explain_below">Другая проблема или информация (пожалуйста, объясните ниже).</string>
|
||||||
<string name="feedback_destination_note">Ваш отзыв будет опубликован на следующей вики-странице: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobile app/Feedback</a></string>
|
<string name="feedback_destination_note">Ваш отзыв будет опубликован на следующей вики-странице: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobile app/Feedback</a></string>
|
||||||
|
|
|
||||||
|
|
@ -90,13 +90,13 @@
|
||||||
<string name="logging_in_message">Prosimo, počakajte ...</string>
|
<string name="logging_in_message">Prosimo, počakajte ...</string>
|
||||||
<string name="updating_caption_title">Posodabljam napise in opise</string>
|
<string name="updating_caption_title">Posodabljam napise in opise</string>
|
||||||
<string name="updating_caption_message">Prosimo, počakajte ...</string>
|
<string name="updating_caption_message">Prosimo, počakajte ...</string>
|
||||||
<string name="login_success" fuzzy="true">Uspešno ste se prijavili!</string>
|
<string name="login_success">Uspešna prijava!</string>
|
||||||
<string name="login_failed" fuzzy="true">Prijava ni uspela!</string>
|
<string name="login_failed">Prijava ni uspela!</string>
|
||||||
<string name="upload_failed">Datoteka ni bila najdena. Prosimo, poskusite z drugo datoteko.</string>
|
<string name="upload_failed">Datoteka ni bila najdena. Prosimo, poskusite z drugo datoteko.</string>
|
||||||
<string name="retry_limit_reached">Dosežena je največja omejitev ponovnih poskusov! Prekličite nalaganje in poskusite znova.</string>
|
<string name="retry_limit_reached">Dosežena je največja omejitev ponovnih poskusov! Prekličite nalaganje in poskusite znova.</string>
|
||||||
<string name="unrestricted_battery_mode">Ali želite izklopiti optimizacijo baterije?</string>
|
<string name="unrestricted_battery_mode">Ali želite izklopiti optimizacijo baterije?</string>
|
||||||
<string name="suggest_unrestricted_mode">Nalaganje več kot 3 slik deluje bolj zanesljivo, ko je optimizacija baterije izklopljena. Za nemoteno nalaganje v nastavitvah izklopite optimizacijo baterije za aplikacijo Commons. \n\nMožni koraki za izklop optimizacije baterije:\n\n1. korak: Dotaknite se spodnjega gumba »Nastavitve«.\n\n 2. korak: Preklopite z »Ni optimizirano« na »Vse aplikacije«.\n\n3. korak: Poiščite »Commons« ali »fr.free.nrw.commons«.\n\n 4. korak: tapnite ga in izberite »Ne optimiziraj«.\n\n\n5. korak: Pritisnite »Končano«.</string>
|
<string name="suggest_unrestricted_mode">Nalaganje več kot 3 slik deluje bolj zanesljivo, ko je optimizacija baterije izklopljena. Za nemoteno nalaganje v nastavitvah izklopite optimizacijo baterije za aplikacijo Commons. \n\nMožni koraki za izklop optimizacije baterije:\n\n1. korak: Dotaknite se spodnjega gumba »Nastavitve«.\n\n 2. korak: Preklopite z »Ni optimizirano« na »Vse aplikacije«.\n\n3. korak: Poiščite »Commons« ali »fr.free.nrw.commons«.\n\n 4. korak: tapnite ga in izberite »Ne optimiziraj«.\n\n\n5. korak: Pritisnite »Končano«.</string>
|
||||||
<string name="authentication_failed" fuzzy="true">Avtentikacija ni uspela; prosimo, prijavite se znova</string>
|
<string name="authentication_failed">Avtentikacija ni uspela. Prosimo, prijavite se znova.</string>
|
||||||
<string name="uploading_started">Nalaganje se je začelo!</string>
|
<string name="uploading_started">Nalaganje se je začelo!</string>
|
||||||
<string name="uploading_queued">Nalaganje na čakanju (vklopljen je način omejene povezanosti)</string>
|
<string name="uploading_queued">Nalaganje na čakanju (vklopljen je način omejene povezanosti)</string>
|
||||||
<string name="upload_completed_notification_title">Datoteka »%1$s« je naložena!</string>
|
<string name="upload_completed_notification_title">Datoteka »%1$s« je naložena!</string>
|
||||||
|
|
@ -117,17 +117,20 @@
|
||||||
<string name="menu_from_camera">Posnemi fotografijo</string>
|
<string name="menu_from_camera">Posnemi fotografijo</string>
|
||||||
<string name="menu_nearby">Bližnje</string>
|
<string name="menu_nearby">Bližnje</string>
|
||||||
<string name="provider_contributions">Moje naložitve</string>
|
<string name="provider_contributions">Moje naložitve</string>
|
||||||
|
<string name="menu_copy_link">Kopiraj povezavo</string>
|
||||||
|
<string name="menu_link_copied">Povezava je kopirana v odložišče</string>
|
||||||
<string name="menu_share">Deli</string>
|
<string name="menu_share">Deli</string>
|
||||||
<string name="menu_view_file_page">Ogled opisne strani</string>
|
<string name="menu_view_file_page">Ogled opisne strani</string>
|
||||||
<string name="share_title_hint">Napis (obvezen)</string>
|
<string name="share_title_hint">Napis (obvezen)</string>
|
||||||
<string name="add_caption_toast">Prosimo, dodajte sliki napis</string>
|
<string name="add_caption_toast">Prosimo, dodajte sliki napis</string>
|
||||||
<string name="share_description_hint">Opis</string>
|
<string name="share_description_hint">Opis</string>
|
||||||
<string name="share_caption_hint">Napis</string>
|
<string name="share_caption_hint">Napis</string>
|
||||||
<string name="login_failed_network" fuzzy="true">Prijava ni uspela – omrežna napaka</string>
|
<string name="login_failed_network">Prijava ni mogoča – omrežna napaka</string>
|
||||||
<string name="login_failed_throttled">Preveč neuspešnih nalaganj. Prosimo, poskusite znova čez nekaj minut.</string>
|
<string name="login_failed_throttled">Preveč neuspešnih nalaganj. Prosimo, poskusite znova čez nekaj minut.</string>
|
||||||
<string name="login_failed_blocked">Ta uporabnik je v Zbirki žal blokiran</string>
|
<string name="login_failed_blocked">Ta uporabnik je v Zbirki žal blokiran</string>
|
||||||
<string name="login_failed_2fa_needed">Navesti morate svojo dvofaktorsko avtentikacijsko kodo.</string>
|
<string name="login_failed_2fa_needed">Navesti morate svojo dvofaktorsko avtentikacijsko kodo.</string>
|
||||||
<string name="login_failed_generic" fuzzy="true">Prijava ni uspela</string>
|
<string name="login_failed_email_auth_needed">Na vaš e-poštni naslov je bila poslana potrditvena koda za prijavo. Prosimo, vnesite kodo za prijavo.</string>
|
||||||
|
<string name="login_failed_generic">Prijava ni uspela</string>
|
||||||
<string name="share_upload_button">Naloži</string>
|
<string name="share_upload_button">Naloži</string>
|
||||||
<string name="multiple_share_base_title">Poimenuj skupino</string>
|
<string name="multiple_share_base_title">Poimenuj skupino</string>
|
||||||
<string name="provider_modifications">Spremembe</string>
|
<string name="provider_modifications">Spremembe</string>
|
||||||
|
|
@ -135,6 +138,7 @@
|
||||||
<string name="categories_search_text_hint">Poišči kategorije</string>
|
<string name="categories_search_text_hint">Poišči kategorije</string>
|
||||||
<string name="depicts_search_text_hint">Poiščite predmete, ki jih vaša predstavnostna datoteka prikazuje (gora, Tadž Mahal, ...)</string>
|
<string name="depicts_search_text_hint">Poiščite predmete, ki jih vaša predstavnostna datoteka prikazuje (gora, Tadž Mahal, ...)</string>
|
||||||
<string name="menu_save_categories">Shrani</string>
|
<string name="menu_save_categories">Shrani</string>
|
||||||
|
<string name="menu_overflow_desc">Prelivni meni</string>
|
||||||
<string name="refresh_button">Osveži</string>
|
<string name="refresh_button">Osveži</string>
|
||||||
<string name="display_list_button">Seznam</string>
|
<string name="display_list_button">Seznam</string>
|
||||||
<string name="contributions_subtitle_zero">(Ni še naložitev)</string>
|
<string name="contributions_subtitle_zero">(Ni še naložitev)</string>
|
||||||
|
|
@ -231,6 +235,7 @@
|
||||||
<string name="become_a_tester_title">Postanite beta preizkuševalec</string>
|
<string name="become_a_tester_title">Postanite beta preizkuševalec</string>
|
||||||
<string name="become_a_tester_description">Prijavite se na naš beta kanal v trgovini Google Play in pridobite zgodnji dostop do novih možnosti in popravkov hroščev</string>
|
<string name="become_a_tester_description">Prijavite se na naš beta kanal v trgovini Google Play in pridobite zgodnji dostop do novih možnosti in popravkov hroščev</string>
|
||||||
<string name="_2fa_code">Koda 2FA</string>
|
<string name="_2fa_code">Koda 2FA</string>
|
||||||
|
<string name="email_auth_code">Koda za preverjanje e-pošte</string>
|
||||||
<string name="logout_verification">Ali se res želite odjaviti?</string>
|
<string name="logout_verification">Ali se res želite odjaviti?</string>
|
||||||
<string name="mediaimage_failed">Nalaganje datoteke ni uspelo</string>
|
<string name="mediaimage_failed">Nalaganje datoteke ni uspelo</string>
|
||||||
<string name="no_subcategory_found">Najdena ni bila nobena podkategorija</string>
|
<string name="no_subcategory_found">Najdena ni bila nobena podkategorija</string>
|
||||||
|
|
@ -251,6 +256,7 @@
|
||||||
<string name="navigation_item_about">O orodju</string>
|
<string name="navigation_item_about">O orodju</string>
|
||||||
<string name="navigation_item_settings">Nastavitve</string>
|
<string name="navigation_item_settings">Nastavitve</string>
|
||||||
<string name="navigation_item_feedback">Odziv</string>
|
<string name="navigation_item_feedback">Odziv</string>
|
||||||
|
<string name="navigation_item_feedback_github">Povratne informacije prek GitHuba</string>
|
||||||
<string name="navigation_item_logout">Odjava</string>
|
<string name="navigation_item_logout">Odjava</string>
|
||||||
<string name="navigation_item_info">Vadnica</string>
|
<string name="navigation_item_info">Vadnica</string>
|
||||||
<string name="navigation_item_notification">Obvestila</string>
|
<string name="navigation_item_notification">Obvestila</string>
|
||||||
|
|
@ -284,14 +290,16 @@
|
||||||
<string name="nominated_see_more">Za podrobnosti glejte spletno stran</string>
|
<string name="nominated_see_more">Za podrobnosti glejte spletno stran</string>
|
||||||
<string name="skip_login">Preskoči</string>
|
<string name="skip_login">Preskoči</string>
|
||||||
<string name="navigation_item_login">Prijava</string>
|
<string name="navigation_item_login">Prijava</string>
|
||||||
<string name="skip_login_title" fuzzy="true">Ali res želite preskočiti prijavo?</string>
|
<string name="skip_login_title">Ali res želite preskočiti prijavo?</string>
|
||||||
<string name="skip_login_message" fuzzy="true">V prihodnosti se boste morali za nalaganje slik prijaviti.</string>
|
<string name="skip_login_message">V prihodnosti se boste morali za nalaganje slik prijaviti.</string>
|
||||||
<string name="login_alert_message">Za uporabo te možnosti se prijavite</string>
|
<string name="login_alert_message">Za uporabo te možnosti se prijavite</string>
|
||||||
<string name="copy_wikicode">Kopiraj vikibesedilo v odložišče</string>
|
<string name="copy_wikicode">Kopiraj vikibesedilo v odložišče</string>
|
||||||
<string name="wikicode_copied">Vikibesedilo je skopirano v odložišče</string>
|
<string name="wikicode_copied">Vikibesedilo je skopirano v odložišče</string>
|
||||||
<string name="nearby_location_not_available">Bližnje mogoče ne bo pravilno delovalo. Kraj ni na voljo.</string>
|
<string name="nearby_location_not_available">Bližnje mogoče ne bo pravilno delovalo. Kraj ni na voljo.</string>
|
||||||
|
<string name="nearby_showing_pins_offline">Internet ni na voljo. Prikazani so samo predpomnjeni kraji.</string>
|
||||||
<string name="upload_location_access_denied">Dostop do lokacije je bil zavrnjen. Za uporabo te možnosti ročno nastavite svojo lokacijo.</string>
|
<string name="upload_location_access_denied">Dostop do lokacije je bil zavrnjen. Za uporabo te možnosti ročno nastavite svojo lokacijo.</string>
|
||||||
<string name="location_permission_rationale_nearby">Za prikaz seznama bložnjih krajev je potrebno dovoljenje</string>
|
<string name="location_permission_rationale_nearby">Za prikaz seznama bložnjih krajev je potrebno dovoljenje</string>
|
||||||
|
<string name="location_permission_rationale_explore">Za prikaz seznama bložnjih slik je potrebno dovoljenje</string>
|
||||||
<string name="nearby_directions">Smeri</string>
|
<string name="nearby_directions">Smeri</string>
|
||||||
<string name="nearby_wikidata">Wikipodatki</string>
|
<string name="nearby_wikidata">Wikipodatki</string>
|
||||||
<string name="nearby_wikipedia">Wikipedija</string>
|
<string name="nearby_wikipedia">Wikipedija</string>
|
||||||
|
|
@ -351,7 +359,7 @@
|
||||||
<string name="construction_event_answer">V Wikimedijini zbirki so zelo dobrodošle slike, ki prikazujejo tehniko ali kulturo.</string>
|
<string name="construction_event_answer">V Wikimedijini zbirki so zelo dobrodošle slike, ki prikazujejo tehniko ali kulturo.</string>
|
||||||
<string name="congratulatory_message_quiz">Pravilno ste odgovorili na %1$s vprašanj. Čestitamo!</string>
|
<string name="congratulatory_message_quiz">Pravilno ste odgovorili na %1$s vprašanj. Čestitamo!</string>
|
||||||
<string name="warning_for_no_answer">Za odgovor na vprašanje izberite eno od dveh možnosti.</string>
|
<string name="warning_for_no_answer">Za odgovor na vprašanje izberite eno od dveh možnosti.</string>
|
||||||
<string name="user_not_logged_in" fuzzy="true">Seja prijave je potekla. Poskusite se prijaviti znova.</string>
|
<string name="user_not_logged_in">Prijava je potekla. Prijavite se znova.</string>
|
||||||
<string name="quiz_result_share_message">Delite kviz s prijatelji!</string>
|
<string name="quiz_result_share_message">Delite kviz s prijatelji!</string>
|
||||||
<string name="continue_message">Nadaljuj</string>
|
<string name="continue_message">Nadaljuj</string>
|
||||||
<string name="correct">Pravilen odgovor</string>
|
<string name="correct">Pravilen odgovor</string>
|
||||||
|
|
@ -359,7 +367,8 @@
|
||||||
<string name="quiz_screenshot_question">Ali je ta zaslonski posnetek primeren za naložitev?</string>
|
<string name="quiz_screenshot_question">Ali je ta zaslonski posnetek primeren za naložitev?</string>
|
||||||
<string name="share_app_title">Delite aplikacijo</string>
|
<string name="share_app_title">Delite aplikacijo</string>
|
||||||
<string name="rotate">Zasukaj</string>
|
<string name="rotate">Zasukaj</string>
|
||||||
<string name="error_fetching_nearby_places" fuzzy="true">Napaka pri pridobivanju bližnjih krajev.</string>
|
<string name="error_fetching_nearby_places">Ni bilo mogoče naložiti bližnjih krajev.</string>
|
||||||
|
<string name="no_pictures_in_this_area">Na tem območju ni slik</string>
|
||||||
<string name="no_nearby_places_around">Tu okoli ni bližnjih krajev</string>
|
<string name="no_nearby_places_around">Tu okoli ni bližnjih krajev</string>
|
||||||
<string name="error_fetching_nearby_monuments">Napaka pri pridobivanju bližnjih spomenikov.</string>
|
<string name="error_fetching_nearby_monuments">Napaka pri pridobivanju bližnjih spomenikov.</string>
|
||||||
<string name="no_recent_searches">Ni nedavnih iskanj</string>
|
<string name="no_recent_searches">Ni nedavnih iskanj</string>
|
||||||
|
|
@ -371,11 +380,13 @@
|
||||||
<string name="delete">Izbriši</string>
|
<string name="delete">Izbriši</string>
|
||||||
<string name="Achievements">Dosežki</string>
|
<string name="Achievements">Dosežki</string>
|
||||||
<string name="Profile">Profil</string>
|
<string name="Profile">Profil</string>
|
||||||
|
<string name="badges">Značke</string>
|
||||||
<string name="statistics">Statistika</string>
|
<string name="statistics">Statistika</string>
|
||||||
<string name="statistics_thanks">Prejete zahvale</string>
|
<string name="statistics_thanks">Prejete zahvale</string>
|
||||||
<string name="statistics_featured">Izbrane slike</string>
|
<string name="statistics_featured">Izbrane slike</string>
|
||||||
<string name="statistics_wikidata_edits">Slike iz »Bližnji kraji«</string>
|
<string name="statistics_wikidata_edits">Slike iz »Bližnji kraji«</string>
|
||||||
<string name="level" fuzzy="true">Raven</string>
|
<string name="level">Raven %d</string>
|
||||||
|
<string name="profileLevel">%s (raven %s)</string>
|
||||||
<string name="images_uploaded">Naložene slike</string>
|
<string name="images_uploaded">Naložene slike</string>
|
||||||
<string name="image_reverts">Nevrnjene slike</string>
|
<string name="image_reverts">Nevrnjene slike</string>
|
||||||
<string name="images_used_by_wiki">Uporabljene slike</string>
|
<string name="images_used_by_wiki">Uporabljene slike</string>
|
||||||
|
|
@ -407,6 +418,7 @@
|
||||||
<string name="map_application_missing">V vaši napravi ni mogoče najti nobene združljive aplikacije z zemljevidom. Za uporabo te možnosti namestite ustrezno aplikacijo z zemljevidom.</string>
|
<string name="map_application_missing">V vaši napravi ni mogoče najti nobene združljive aplikacije z zemljevidom. Za uporabo te možnosti namestite ustrezno aplikacijo z zemljevidom.</string>
|
||||||
<string name="title_page_bookmarks_pictures">Slike</string>
|
<string name="title_page_bookmarks_pictures">Slike</string>
|
||||||
<string name="title_page_bookmarks_locations">Kraji</string>
|
<string name="title_page_bookmarks_locations">Kraji</string>
|
||||||
|
<string name="title_page_bookmarks_categories">Kategorije</string>
|
||||||
<string name="menu_bookmark">Dodaj/odstrani zaznamek</string>
|
<string name="menu_bookmark">Dodaj/odstrani zaznamek</string>
|
||||||
<string name="provider_bookmarks">Zaznamki</string>
|
<string name="provider_bookmarks">Zaznamki</string>
|
||||||
<string name="bookmark_empty">Dodali niste nobenega zaznamka</string>
|
<string name="bookmark_empty">Dodali niste nobenega zaznamka</string>
|
||||||
|
|
@ -434,7 +446,7 @@
|
||||||
<string name="never_ask_again">Nikoli več ne vprašaj</string>
|
<string name="never_ask_again">Nikoli več ne vprašaj</string>
|
||||||
<string name="display_location_permission_title">Vprašaj za dovoljenje za lokacijo</string>
|
<string name="display_location_permission_title">Vprašaj za dovoljenje za lokacijo</string>
|
||||||
<string name="display_location_permission_explanation">Vprašaj za dovoljenje za uporabo lokacije, ko je to potrebno za ogled obvestila o bližnjih krajih.</string>
|
<string name="display_location_permission_explanation">Vprašaj za dovoljenje za uporabo lokacije, ko je to potrebno za ogled obvestila o bližnjih krajih.</string>
|
||||||
<string name="achievements_fetch_failed" fuzzy="true">Nekaj je šlo narobe. Vaših dosežkov nismo mogli pridobiti.</string>
|
<string name="achievements_fetch_failed">Nekaj je šlo narobe. Dosežkov ni bilo mogoče pridobiti.</string>
|
||||||
<string name="achievements_fetch_failed_ultimate_achievement">Opravili ste toliko prispevkov, da jih naš sistem izračunavanja ne more razčleniti. To je vrhunski dosežek.</string>
|
<string name="achievements_fetch_failed_ultimate_achievement">Opravili ste toliko prispevkov, da jih naš sistem izračunavanja ne more razčleniti. To je vrhunski dosežek.</string>
|
||||||
<string name="ends_on">Konec:</string>
|
<string name="ends_on">Konec:</string>
|
||||||
<string name="display_campaigns">Prikaži akcije</string>
|
<string name="display_campaigns">Prikaži akcije</string>
|
||||||
|
|
@ -450,7 +462,7 @@
|
||||||
<string name="open_document_photo_picker_explanation">Novi izbirnik fotografij Android lahko izgubi podatke o lokaciji. Omogočite ga, če ga želite uporabljati.</string>
|
<string name="open_document_photo_picker_explanation">Novi izbirnik fotografij Android lahko izgubi podatke o lokaciji. Omogočite ga, če ga želite uporabljati.</string>
|
||||||
<string name="location_loss_warning">Izklop te možnosti lahko aktivira novi izbirnik fotografij za Android. S tem tvegate izgubo podatkov o informacijah.\n\nZa več informacij kliknite »Preberi več«.</string>
|
<string name="location_loss_warning">Izklop te možnosti lahko aktivira novi izbirnik fotografij za Android. S tem tvegate izgubo podatkov o informacijah.\n\nZa več informacij kliknite »Preberi več«.</string>
|
||||||
<string name="nearby_campaign_dismiss_message">Kampanj ne boste več videli. Če želite, lahko tovrstno obveščanje znova vklopite v nastavitvah.</string>
|
<string name="nearby_campaign_dismiss_message">Kampanj ne boste več videli. Če želite, lahko tovrstno obveščanje znova vklopite v nastavitvah.</string>
|
||||||
<string name="this_function_needs_network_connection" fuzzy="true">Ta možnost zahteva omrežno povezavo. Prosimo, preverite vaše nastavitve povezave.</string>
|
<string name="this_function_needs_network_connection">Ta funkcija zahteva omrežno povezavo. Prosimo, preverite vaše povezavne nastavitve.</string>
|
||||||
<string name="error_processing_image">Pri obdelavi slike je prišlo do napake. Prosimo, poskusite znova!</string>
|
<string name="error_processing_image">Pri obdelavi slike je prišlo do napake. Prosimo, poskusite znova!</string>
|
||||||
<string name="getting_edit_token">Pridobivam žeton za urejanje</string>
|
<string name="getting_edit_token">Pridobivam žeton za urejanje</string>
|
||||||
<string name="check_category_adding_template">Dodajam predlogo za preverjanje kategorije</string>
|
<string name="check_category_adding_template">Dodajam predlogo za preverjanje kategorije</string>
|
||||||
|
|
@ -488,6 +500,7 @@
|
||||||
<string name="no_notification">Nimate neprebranih obvestil</string>
|
<string name="no_notification">Nimate neprebranih obvestil</string>
|
||||||
<string name="no_read_notification">Ninate prebranih obvestil</string>
|
<string name="no_read_notification">Ninate prebranih obvestil</string>
|
||||||
<string name="share_logs_using">Delite dnevniške zapise z</string>
|
<string name="share_logs_using">Delite dnevniške zapise z</string>
|
||||||
|
<string name="check_your_email_inbox">Preverite svoj e-poštni nabiralnik</string>
|
||||||
<string name="menu_option_read">Ogled prebranih</string>
|
<string name="menu_option_read">Ogled prebranih</string>
|
||||||
<string name="menu_option_unread">Ogled neprebranih</string>
|
<string name="menu_option_unread">Ogled neprebranih</string>
|
||||||
<string name="error_occurred_in_picking_images">Pri izbiri slik je prišlo do napake</string>
|
<string name="error_occurred_in_picking_images">Pri izbiri slik je prišlo do napake</string>
|
||||||
|
|
@ -566,7 +579,7 @@
|
||||||
<string name="coordinates_edit_helper_edit_message_else">Ni bilo mogoče dodati koordinat.</string>
|
<string name="coordinates_edit_helper_edit_message_else">Ni bilo mogoče dodati koordinat.</string>
|
||||||
<string name="description_edit_helper_edit_message_else">Ni bilo mogoče dodati opisov.</string>
|
<string name="description_edit_helper_edit_message_else">Ni bilo mogoče dodati opisov.</string>
|
||||||
<string name="caption_edit_helper_edit_message_else">Napisa ni bilo mogoče dodati.</string>
|
<string name="caption_edit_helper_edit_message_else">Napisa ni bilo mogoče dodati.</string>
|
||||||
<string name="coordinates_picking_unsuccessful" fuzzy="true">Koordinat ni bilo mogoče pridobiti.</string>
|
<string name="coordinates_picking_unsuccessful">Koordinat slike ni bilo mogoče posodobiti.</string>
|
||||||
<string name="descriptions_picking_unsuccessful">Ni bilo mogoče pridobiti opisov.</string>
|
<string name="descriptions_picking_unsuccessful">Ni bilo mogoče pridobiti opisov.</string>
|
||||||
<string name="description_activity_title">Uredi opise in napise</string>
|
<string name="description_activity_title">Uredi opise in napise</string>
|
||||||
<string name="share_image_via">Deli slike prek ...</string>
|
<string name="share_image_via">Deli slike prek ...</string>
|
||||||
|
|
@ -581,12 +594,13 @@
|
||||||
<string name="place_state_needs_photo">Potrebuje fotografijo</string>
|
<string name="place_state_needs_photo">Potrebuje fotografijo</string>
|
||||||
<string name="place_type">Vrsta kraja:</string>
|
<string name="place_type">Vrsta kraja:</string>
|
||||||
<string name="nearby_search_hint">Most, muzej, hotel idr.</string>
|
<string name="nearby_search_hint">Most, muzej, hotel idr.</string>
|
||||||
<string name="you_must_reset_your_passsword" fuzzy="true">Pri prijavi je šlo nekaj narobe; ponastaviti morate geslo!!</string>
|
<string name="you_must_reset_your_passsword">Pri prijavi je šlo nekaj narobe. Ponastaviti morate geslo!!</string>
|
||||||
<string name="title_for_media">MEDIJ</string>
|
<string name="title_for_media">MEDIJ</string>
|
||||||
<string name="title_for_child_classes">PODREJENI RAZREDI</string>
|
<string name="title_for_child_classes">PODREJENI RAZREDI</string>
|
||||||
<string name="title_for_parent_classes">NADREJENI RAZREDI</string>
|
<string name="title_for_parent_classes">NADREJENI RAZREDI</string>
|
||||||
<string name="upload_nearby_place_found_title">Najden bližnji kraj</string>
|
<string name="upload_nearby_place_found_title">Najden bližnji kraj</string>
|
||||||
<string name="upload_nearby_place_found_description_singular" fuzzy="true">Ali je to fotografija kraja %1$s?</string>
|
<string name="upload_nearby_place_found_description_plural">So to slike %1$s?</string>
|
||||||
|
<string name="upload_nearby_place_found_description_singular">Ali je to slika %1$s?</string>
|
||||||
<string name="title_app_shortcut_bookmark">Zaznamki</string>
|
<string name="title_app_shortcut_bookmark">Zaznamki</string>
|
||||||
<string name="title_app_shortcut_setting">Nastavitve</string>
|
<string name="title_app_shortcut_setting">Nastavitve</string>
|
||||||
<string name="remove_bookmark">Odstranjeno iz zaznamkov</string>
|
<string name="remove_bookmark">Odstranjeno iz zaznamkov</string>
|
||||||
|
|
@ -600,8 +614,10 @@
|
||||||
<string name="cannot_open_location_settings">Nastavitev kraja ni bilo mogoče odpreti. Kraj vklopite ročno.</string>
|
<string name="cannot_open_location_settings">Nastavitev kraja ni bilo mogoče odpreti. Kraj vklopite ročno.</string>
|
||||||
<string name="recommend_high_accuracy_mode">Za najboljše zadetke izberite način Visoka natančnost.</string>
|
<string name="recommend_high_accuracy_mode">Za najboljše zadetke izberite način Visoka natančnost.</string>
|
||||||
<string name="ask_to_turn_location_on">Vklopim kraj?</string>
|
<string name="ask_to_turn_location_on">Vklopim kraj?</string>
|
||||||
|
<string name="ask_to_turn_location_on_text">Vljudno vklopite lokacijske storitve, da bo aplikacija prikazovala vašo trenutno lokacijo.</string>
|
||||||
<string name="nearby_needs_location">Za Bližnje je trebs vklopiti kraj</string>
|
<string name="nearby_needs_location">Za Bližnje je trebs vklopiti kraj</string>
|
||||||
<string name="upload_map_location_access" fuzzy="true">Za samodejno nastavitev lokacije morate omogočiti dostop do vaše trenutne lokacije.</string>
|
<string name="explore_map_needs_location">Raziskovanje zemljevida potrebuje dovoljenje za lokacijo za prikaz bližnjih slik</string>
|
||||||
|
<string name="upload_map_location_access">Za samodejno nastavitev lokacije morate dodeliti dovoljenje za lokacijo.</string>
|
||||||
<string name="use_location_from_similar_image">Ali ste sliki posneli na istem kraju? Ali želite uporabiti geografsko širino/dolžino desne slike?</string>
|
<string name="use_location_from_similar_image">Ali ste sliki posneli na istem kraju? Ali želite uporabiti geografsko širino/dolžino desne slike?</string>
|
||||||
<string name="load_more">Naloži več</string>
|
<string name="load_more">Naloži več</string>
|
||||||
<string name="nearby_no_results">Najden ni noben kraj. Poskusite spremeniti iskalne parametre.</string>
|
<string name="nearby_no_results">Najden ni noben kraj. Poskusite spremeniti iskalne parametre.</string>
|
||||||
|
|
@ -704,7 +720,7 @@
|
||||||
<string name="read_phone_state_permission_message">Bližnji zemljevidi morajo za pravilno delovanje prebrati STANJE TELEFONA</string>
|
<string name="read_phone_state_permission_message">Bližnji zemljevidi morajo za pravilno delovanje prebrati STANJE TELEFONA</string>
|
||||||
<string name="contributions_of_user">Prispevki uporabnika: %s</string>
|
<string name="contributions_of_user">Prispevki uporabnika: %s</string>
|
||||||
<string name="achievements_of_user">Dosežki uporabnika: %s</string>
|
<string name="achievements_of_user">Dosežki uporabnika: %s</string>
|
||||||
<string name="menu_view_user_page" fuzzy="true">Ogled uporabniške strani</string>
|
<string name="menu_view_user_page">Ogled uporabniškega profila</string>
|
||||||
<string name="edit_depictions">Uredi slike</string>
|
<string name="edit_depictions">Uredi slike</string>
|
||||||
<string name="edit_categories">Uredi kategorije</string>
|
<string name="edit_categories">Uredi kategorije</string>
|
||||||
<string name="advanced_options">Napredne možnosti</string>
|
<string name="advanced_options">Napredne možnosti</string>
|
||||||
|
|
@ -717,8 +733,8 @@
|
||||||
<string name="add_location">Dodaj lokacijo</string>
|
<string name="add_location">Dodaj lokacijo</string>
|
||||||
<string name="feedback_sharing_data_alert">Iz te e-pošte odstranite vse podatke, ki jih ne želite javno deliti. Upoštevajte, da bodo vaš e-poštni naslov ter povezano ime in profilna slika javno vidni.</string>
|
<string name="feedback_sharing_data_alert">Iz te e-pošte odstranite vse podatke, ki jih ne želite javno deliti. Upoštevajte, da bodo vaš e-poštni naslov ter povezano ime in profilna slika javno vidni.</string>
|
||||||
<string name="explore_map_details">Podrobnosti</string>
|
<string name="explore_map_details">Podrobnosti</string>
|
||||||
<string name="achievements_unavailable_beta" fuzzy="true">Dosežki so na voljo samo v stabilni različici (preverite dokumentacijo razvijalcev).</string>
|
<string name="achievements_unavailable_beta">Dosežki so na voljo samo v produkcijski različici. Preverite dokumentacijo razvijalcev.</string>
|
||||||
<string name="leaderboard_unavailable_beta" fuzzy="true">Lestvica uvrstitev je na voljo samo v stabilni različici (glejte dokumentacijo razvijalcev).</string>
|
<string name="leaderboard_unavailable_beta">Lestvica uvrstitev je na voljo samo v produkcijski različici. Glejte dokumentacijo razvijalcev.</string>
|
||||||
<string name="copyright_popup">Prosimo, nalagajte samo slike, ki ste jih ustvarili sami. Naložnike avtorsko varovanega gradiva bomo blokirali. To velja tudi za betarazličico. Hvala za preizkušanje aplikacije!</string>
|
<string name="copyright_popup">Prosimo, nalagajte samo slike, ki ste jih ustvarili sami. Naložnike avtorsko varovanega gradiva bomo blokirali. To velja tudi za betarazličico. Hvala za preizkušanje aplikacije!</string>
|
||||||
<string name="select_feedback_data_choice">Prosimo, odizberite vse podatke, ki jih ne želite deliti javno.</string>
|
<string name="select_feedback_data_choice">Prosimo, odizberite vse podatke, ki jih ne želite deliti javno.</string>
|
||||||
<string name="api_level">Raven API</string>
|
<string name="api_level">Raven API</string>
|
||||||
|
|
@ -762,13 +778,72 @@
|
||||||
<string name="see_your_achievements">Oglejte si svoje dosežke</string>
|
<string name="see_your_achievements">Oglejte si svoje dosežke</string>
|
||||||
<string name="edit_image">Uredi sliko</string>
|
<string name="edit_image">Uredi sliko</string>
|
||||||
<string name="edit_location">Uredi lokacijo</string>
|
<string name="edit_location">Uredi lokacijo</string>
|
||||||
|
<string name="location_updated">Lokacija posodobljena!</string>
|
||||||
|
<string name="remove_location">Odstrani lokacijo</string>
|
||||||
|
<string name="remove_location_warning_title">Opozorilo o odstranitvi lokacije</string>
|
||||||
|
<string name="remove_location_warning_desc">Lokacija naredi slike bolj uporabne in jih je lažje najti. Ali res želite odstraniti lokacijo te slike?</string>
|
||||||
|
<string name="location_removed">Lokacija odstranjena!</string>
|
||||||
<string name="send_thanks_to_author">Zahvala avtorju</string>
|
<string name="send_thanks_to_author">Zahvala avtorju</string>
|
||||||
<string name="error_sending_thanks">Napaka pri pošiljanju zahvale avtorju.</string>
|
<string name="error_sending_thanks">Napaka pri pošiljanju zahvale avtorju.</string>
|
||||||
|
<string name="invalid_login_message">Vaša prijava je potekla. Prosimo, prijavite se znova.</string>
|
||||||
|
<string name="no_application_available_to_open_gpx_files">Na voljo ni nobena aplikacija za odpiranje datotek GPX</string>
|
||||||
|
<string name="file_saved_successfully">Datoteka je uspešno shranjena</string>
|
||||||
|
<string name="do_you_want_to_open_gpx_file">Ali želite odpreti datoteko GPX?</string>
|
||||||
|
<string name="do_you_want_to_open_kml_file">Ali želite odpreti datoteko KML?</string>
|
||||||
|
<string name="failed_to_save_kml_file">Shranjevanje datoteke KML ni uspelo.</string>
|
||||||
|
<string name="failed_to_save_gpx_file">Shranjevanje datoteke GPX ni uspelo.</string>
|
||||||
|
<string name="saving_kml_file">Shranjevanje datoteke KML</string>
|
||||||
|
<string name="saving_gpx_file">Shranjevanje datoteke GPX</string>
|
||||||
<plurals name="custom_picker_images_selected_title_appendix">
|
<plurals name="custom_picker_images_selected_title_appendix">
|
||||||
<item quantity="one">%d izbrana slika</item>
|
<item quantity="one">%d izbrana slika</item>
|
||||||
<item quantity="two">%d izbrani sliki</item>
|
<item quantity="two">%d izbrani sliki</item>
|
||||||
<item quantity="few">%d izbranih slik</item>
|
<item quantity="few">%d izbranih slik</item>
|
||||||
<item quantity="other">%d izbranih slik</item>
|
<item quantity="other">%d izbranih slik</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
|
<string name="multiple_files_depiction">Upoštevajte, da imajo vse slike v večkratnem nalaganju enake kategorije in upodobitve. Če slike nimajo skupnih upodobitev in kategorij, izvedite več ločenih nalaganj.</string>
|
||||||
|
<string name="multiple_files_depiction_header">Opomba o večkratnih nalaganjih</string>
|
||||||
|
<string name="nearby_wikitalk">Sporočite problem s tem predmetom v Wikipodatke</string>
|
||||||
|
<string name="please_enter_some_comments">Prosimo, vnesite nekaj komentarjev</string>
|
||||||
|
<string name="talk">Pogovor</string>
|
||||||
|
<string name="write_something_about_the_item">Napišite nekaj o predmetu »%1$s«. To bo javno vidno.</string>
|
||||||
|
<string name="does_not_exist_anymore_no_picture_can_ever_be_taken_of_it">»%1$s« ne obstaja več. Slike tega ni več mogoče posneti.</string>
|
||||||
<string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">»%1$s« je na drugem kraju. Spodaj navedite pravi kraj in, če je mogoče, napišite pravilno zemljepisno širino in dolžino.</string>
|
<string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">»%1$s« je na drugem kraju. Spodaj navedite pravi kraj in, če je mogoče, napišite pravilno zemljepisno širino in dolžino.</string>
|
||||||
|
<string name="other_problem_or_information_please_explain_below">Drug problem ali informacija (razložite spodaj).</string>
|
||||||
|
<string name="feedback_destination_note">Vaše povratne informacije bodo objavljene na naslednji strani vikija: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobilna aplikacija/Povratne informacije</a></string>
|
||||||
|
<string name="are_you_sure_that_you_want_cancel_all_the_uploads">Ste prepričani, da želite preklicati vse nalaganja?</string>
|
||||||
|
<string name="cancelling_all_the_uploads">Preklic vseh nalaganj ...</string>
|
||||||
|
<string name="uploads">Naložitve</string>
|
||||||
|
<string name="pending">Čakajoče</string>
|
||||||
|
<string name="failed">Neuspešno</string>
|
||||||
|
<string name="could_not_load_place_data">Podatkov o kraju ni bilo mogoče naložiti</string>
|
||||||
|
<string name="custom_selector_delete_folder">Izbriši mapo</string>
|
||||||
|
<string name="custom_selector_confirm_deletion_title">Potrdi izbris</string>
|
||||||
|
<string name="custom_selector_confirm_deletion_message">Ali ste prepričani, da želite izbrisati mapo %1$s, ki vsebuje %2$d predmetov?</string>
|
||||||
|
<string name="custom_selector_delete">Izbriši</string>
|
||||||
|
<string name="custom_selector_cancel">Prekliči</string>
|
||||||
|
<string name="custom_selector_folder_deleted_success">Mapa %1$s je uspešno izbrisana</string>
|
||||||
|
<string name="custom_selector_folder_deleted_failure">Izbris mape %1$s ni uspel</string>
|
||||||
|
<string name="custom_selector_error_trashing_folder_contents">Napaka pri brisanju vsebine mape: %1$s</string>
|
||||||
|
<string name="custom_selector_folder_not_found_error">Pridobitev poti mape za bucket ID ni uspela: %1$d</string>
|
||||||
|
<string name="red_pin">Ta kraj še nima slike; posnamite jo!</string>
|
||||||
|
<string name="green_pin">Ta kraj že ima sliko.</string>
|
||||||
|
<string name="grey_pin">Preverjam, ali ta kraj že ima sliko.</string>
|
||||||
|
<string name="error_while_loading">Napaka pri nalaganju</string>
|
||||||
|
<string name="no_usages_found">Ni najdenih uporab</string>
|
||||||
|
<string name="usages_on_commons_heading">Zbirka</string>
|
||||||
|
<string name="usages_on_other_wikis_heading">Drugi vikiji</string>
|
||||||
|
<string name="bullet_point">•</string>
|
||||||
|
<string name="file_usages_container_heading">Uporabe datotek</string>
|
||||||
|
<string name="title_activity_single_web_view">SingleWebViewActivity</string>
|
||||||
|
<string name="account">Račun</string>
|
||||||
|
<string name="vanish_account">Izgini račun</string>
|
||||||
|
<string name="account_vanish_request_confirm_title">Opozorilo o izginjenju računa</string>
|
||||||
|
<string name="account_vanish_request_confirm">Izginotje je <b>skrajni ukrep</b> in ga <b>uporabite samo, če želite za vedno prenehati z urejanjem</b>, in tudi, da skrijete čim več svojih preteklih povezav.\n\nIzbris računa v Wikimedijini zbirki se opravi tako, da spremenite ime svojega računa, da drugi ne morejo prepoznati vaših prispevkov. <b>Izbris ne zagotavlja popolne anonimnosti ali odstranitve prispevkov k projektom</b>.</string>
|
||||||
|
<string name="caption">Napis</string>
|
||||||
|
<string name="caption_copied_to_clipboard">Napis je kopiran v odložišče</string>
|
||||||
|
<string name="congratulations_all_pictures_in_this_album_have_been_either_uploaded_or_marked_as_not_for_upload">Čestitamo, vse slike v tem albumu so naložene ali označene kot neprimerne za nalaganje.</string>
|
||||||
|
<string name="show_in_explore">Prikaži v Raziskuj</string>
|
||||||
|
<string name="show_in_nearby">Prikaži v Bližnje</string>
|
||||||
|
<string name="image_tag_line_created_and_uploaded_by">Ustvaril_a in naložil_a: %1$s</string>
|
||||||
|
<string name="image_tag_line_created_by_and_uploaded_by">Ustvaril_a %1$s in naložil_a %2$s</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
<!-- Authors:
|
<!-- Authors:
|
||||||
* Abbedabb
|
* Abbedabb
|
||||||
* Ainali
|
* Ainali
|
||||||
|
* Gkyziridis
|
||||||
* Jopparn
|
* Jopparn
|
||||||
* Kakan spelar
|
* Kakan spelar
|
||||||
* Liuxinyu970226
|
* Liuxinyu970226
|
||||||
|
|
@ -789,6 +790,7 @@
|
||||||
<string name="talk">Diskussion</string>
|
<string name="talk">Diskussion</string>
|
||||||
<string name="write_something_about_the_item">Skriv någonting om objektet \"%1$s\". Det kommer att visas offentligt.</string>
|
<string name="write_something_about_the_item">Skriv någonting om objektet \"%1$s\". Det kommer att visas offentligt.</string>
|
||||||
<string name="does_not_exist_anymore_no_picture_can_ever_be_taken_of_it">\"%1$s\" finns inte längre och inga bilder kan någonsin tas på det.</string>
|
<string name="does_not_exist_anymore_no_picture_can_ever_be_taken_of_it">\"%1$s\" finns inte längre och inga bilder kan någonsin tas på det.</string>
|
||||||
|
<string name="is_at_a_different_place_wikidata">\' %1$s \' är på en annan plats.</string>
|
||||||
<string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">\"%1$s\" är på en annan plats. Ange den korrekta platsen nedan samt ange latitud och longitud om det är möjligt.</string>
|
<string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">\"%1$s\" är på en annan plats. Ange den korrekta platsen nedan samt ange latitud och longitud om det är möjligt.</string>
|
||||||
<string name="other_problem_or_information_please_explain_below">Andra problem eller information (ange nedan).</string>
|
<string name="other_problem_or_information_please_explain_below">Andra problem eller information (ange nedan).</string>
|
||||||
<string name="feedback_destination_note">Din återkoppling kommer att skickas till följande wikisida: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobilapp/Återkoppling</a></string>
|
<string name="feedback_destination_note">Din återkoppling kommer att skickas till följande wikisida: <a href=\"https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback\">Commons:Mobilapp/Återkoppling</a></string>
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
* Fahimrazick
|
* Fahimrazick
|
||||||
* Gurulenin
|
* Gurulenin
|
||||||
* Kaartic
|
* Kaartic
|
||||||
|
* Matrix
|
||||||
* Sank
|
* Sank
|
||||||
* Sriveenkat
|
* Sriveenkat
|
||||||
* Yuvipanda
|
* Yuvipanda
|
||||||
|
|
@ -13,6 +14,10 @@
|
||||||
<string name="commons_github">பொதுவக கிட்டுகபு மூலக் குறி</string>
|
<string name="commons_github">பொதுவக கிட்டுகபு மூலக் குறி</string>
|
||||||
<string name="commons_logo">பொதுவக இலச்சினை</string>
|
<string name="commons_logo">பொதுவக இலச்சினை</string>
|
||||||
<string name="commons_website">பொதுவக வலைத்தளம்</string>
|
<string name="commons_website">பொதுவக வலைத்தளம்</string>
|
||||||
|
<string name="exit_location_picker">இருப்பிடத் தேர்வியிலிருந்து வெளியேற்</string>
|
||||||
|
<string name="submit">சமர்ப்பி</string>
|
||||||
|
<string name="add_another_description">மற்றொரு விளக்கத்தைச் சேர்க்க</string>
|
||||||
|
<string name="add_new_contribution">புதிய பங்களிப்பைச் சேர்க்க</string>
|
||||||
<string name="nearby_row_image">படம்</string>
|
<string name="nearby_row_image">படம்</string>
|
||||||
<string name="nearby_all">யாவும்</string>
|
<string name="nearby_all">யாவும்</string>
|
||||||
<plurals name="uploads_pending_notification_indicator">
|
<plurals name="uploads_pending_notification_indicator">
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
<!-- Authors:
|
<!-- Authors:
|
||||||
* Chaduvari
|
* Chaduvari
|
||||||
* Nskjnv
|
* Nskjnv
|
||||||
|
* Rajadvamshi
|
||||||
* Ravichandra
|
* Ravichandra
|
||||||
* Veeven
|
* Veeven
|
||||||
-->
|
-->
|
||||||
|
|
@ -45,29 +46,29 @@
|
||||||
<item quantity="other">పంచుకున్న కంటెంటును అందుకుంటున్నాం. బొమ్మల పరిమాణాన్ని బట్టి, మీ పరికరాన్ని బట్టీ ప్రాసెసింగు చేసేందుకు కొంత సమయం పట్టవచ్చు</item>
|
<item quantity="other">పంచుకున్న కంటెంటును అందుకుంటున్నాం. బొమ్మల పరిమాణాన్ని బట్టి, మీ పరికరాన్ని బట్టీ ప్రాసెసింగు చేసేందుకు కొంత సమయం పట్టవచ్చు</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="navigation_item_explore">శోధించండి</string>
|
<string name="navigation_item_explore">శోధించండి</string>
|
||||||
<string name="preference_category_appearance">రూపురేఖలు</string>
|
<string name="preference_category_appearance">స్వరూపం</string>
|
||||||
<string name="preference_category_general">సాధారణం</string>
|
<string name="preference_category_general">సాధారణ</string>
|
||||||
<string name="preference_category_feedback">ప్రతిస్పందన</string>
|
<string name="preference_category_feedback">ప్రతిపుష్టి</string>
|
||||||
<string name="preference_category_privacy">అంతరంగికత</string>
|
<string name="preference_category_privacy">గోప్యత</string>
|
||||||
<string name="app_name">కామన్స్</string>
|
<string name="app_name">సామూహిక</string>
|
||||||
<string name="menu_settings">అమరికలు</string>
|
<string name="menu_settings">అమరికలు</string>
|
||||||
<string name="intent_share_upload_label">కామన్స్ లోకి ఎక్కించండి</string>
|
<string name="intent_share_upload_label">సామూహిక కు ఎగుమోత</string>
|
||||||
<string name="username">వాడుకరిపేరు</string>
|
<string name="username">వాడుకరిపేరు</string>
|
||||||
<string name="password">సంకేతపదం</string>
|
<string name="password">సంకేతపదం</string>
|
||||||
<string name="login_credential">మీ కామన్స్ బీటా ఖాతా లోనికి ప్రవేశించండి</string>
|
<string name="login_credential">మీ సామూహికా బీటా ఖాతా లోనికి ప్రవేశించండి</string>
|
||||||
<string name="login">లాగినవండి</string>
|
<string name="login">ప్రవేశం</string>
|
||||||
<string name="forgot_password">సంకేతపదం మర్చిపోయారా?</string>
|
<string name="forgot_password">సంకేతపదం మర్చిపోయారా?</string>
|
||||||
<string name="signup">నమోదవ్వండి</string>
|
<string name="signup">నమోదు</string>
|
||||||
<string name="logging_in_title">లాగినవుతున్నారు</string>
|
<string name="logging_in_title">ప్రవేశిస్తున్నారు...</string>
|
||||||
<string name="logging_in_message">వేచివుండండి…</string>
|
<string name="logging_in_message">దయచేసి వేచివుండండి …</string>
|
||||||
<string name="updating_caption_title">ఉల్లేఖనలను, వివరణలనూ తాజాకరిస్తున్నాం</string>
|
<string name="updating_caption_title">ఉల్లేఖనలను, వివరణలను నవీకరిస్తోంది</string>
|
||||||
<string name="updating_caption_message">వేచి ఉండండి…</string>
|
<string name="updating_caption_message">దయచేసి వేచివుండండి …</string>
|
||||||
<string name="login_success" fuzzy="true">లాగిన్ విజయవంతమైంది!</string>
|
<string name="login_success" fuzzy="true">లాగిన్ విజయవంతమైంది!</string>
|
||||||
<string name="login_failed" fuzzy="true">లాగిన్ విఫలమైంది!</string>
|
<string name="login_failed" fuzzy="true">లాగిన్ విఫలమైంది!</string>
|
||||||
<string name="upload_failed">ఫైలు కనబడలేదు. మరో ఫైలు కోసం ప్రయత్నించండి.</string>
|
<string name="upload_failed">దస్త్రం కనబడలేదు. దయచేసి మరో దస్త్రం కోసం ప్రయత్నించండి.</string>
|
||||||
<string name="authentication_failed" fuzzy="true">అథీకరణ విఫలమైంది, మళ్ళీ ప్రయత్నించండి</string>
|
<string name="authentication_failed" fuzzy="true">అథీకరణ విఫలమైంది, మళ్ళీ ప్రయత్నించండి</string>
|
||||||
<string name="uploading_started">ఎక్కింపు మొదలైంది!</string>
|
<string name="uploading_started">ఎగుమోత మొదలైంది!</string>
|
||||||
<string name="uploading_queued">ఎక్కింపు వరుసలో ఉంది (పరిమిత కనెక్షన్ల మోడ్ చేతనంగా ఉంది)</string>
|
<string name="uploading_queued">ఎగుమోత వరుసలో ఉంది (పరిమిత సంబంధ పద్దతి చేతనం)</string>
|
||||||
<string name="upload_completed_notification_title">%1$s ను ఎక్కించాం!</string>
|
<string name="upload_completed_notification_title">%1$s ను ఎక్కించాం!</string>
|
||||||
<string name="upload_completed_notification_text">మీ ఎక్కింపును చూసేందుకు నొక్కండి</string>
|
<string name="upload_completed_notification_text">మీ ఎక్కింపును చూసేందుకు నొక్కండి</string>
|
||||||
<string name="upload_progress_notification_title_start">దస్త్రాన్ని ఎక్కిస్తున్నాం: $s</string>
|
<string name="upload_progress_notification_title_start">దస్త్రాన్ని ఎక్కిస్తున్నాం: $s</string>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!-- Authors:
|
<!-- Authors:
|
||||||
* Tajamul9
|
* Vlad5250
|
||||||
-->
|
-->
|
||||||
<resources>
|
<resources>
|
||||||
<string name="crash_dialog_title">کامَنٕز گوو رُکِتھ</string>
|
<string name="crash_dialog_title">کامَنٕز گوو رُکِتھ</string>
|
||||||
|
|
@ -832,6 +832,7 @@ Upload your first media by tapping on the add button.</string>
|
||||||
<string name="talk">Talk</string>
|
<string name="talk">Talk</string>
|
||||||
<string name="write_something_about_the_item">Write something about the \'%1$s\' item. It will be publicly visible.</string>
|
<string name="write_something_about_the_item">Write something about the \'%1$s\' item. It will be publicly visible.</string>
|
||||||
<string name="does_not_exist_anymore_no_picture_can_ever_be_taken_of_it">\'%1$s\' does not exist anymore, no picture can ever be taken of it.</string>
|
<string name="does_not_exist_anymore_no_picture_can_ever_be_taken_of_it">\'%1$s\' does not exist anymore, no picture can ever be taken of it.</string>
|
||||||
|
<string name="is_at_a_different_place_wikidata">\'%1$s\' is at a different place.</string>
|
||||||
<string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">\'%1$s\' is at a different place. Please specify the correct place below, and if possible, write the correct latitude and longitude.</string>
|
<string name="is_at_a_different_place_please_specify_the_correct_place_below_if_possible_tell_us_the_correct_latitude_longitude">\'%1$s\' is at a different place. Please specify the correct place below, and if possible, write the correct latitude and longitude.</string>
|
||||||
<string name="other_problem_or_information_please_explain_below">Other problem or information (please explain below).</string>
|
<string name="other_problem_or_information_please_explain_below">Other problem or information (please explain below).</string>
|
||||||
<string name="feedback_destination_note">Your feedback gets posted to the following wiki page: <![CDATA[ <a href="https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback">Commons:Mobile app/Feedback</a> ]]></string>
|
<string name="feedback_destination_note">Your feedback gets posted to the following wiki page: <![CDATA[ <a href="https://commons.wikimedia.org/wiki/Commons:Mobile_app/Feedback">Commons:Mobile app/Feedback</a> ]]></string>
|
||||||
|
|
|
||||||
29
build.gradle
29
build.gradle
|
|
@ -1,29 +0,0 @@
|
||||||
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
|
||||||
buildscript {
|
|
||||||
repositories {
|
|
||||||
google()
|
|
||||||
mavenCentral()
|
|
||||||
maven { url "https://plugins.gradle.org/m2/" }
|
|
||||||
}
|
|
||||||
dependencies {
|
|
||||||
classpath 'com.android.tools.build:gradle:8.7.0'
|
|
||||||
classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.8.2'
|
|
||||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$KOTLIN_VERSION"
|
|
||||||
classpath 'org.codehaus.groovy:groovy-all:2.4.15'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
allprojects {
|
|
||||||
repositories {
|
|
||||||
google()
|
|
||||||
mavenCentral()
|
|
||||||
gradlePluginPortal() // potential jcenter() replacement
|
|
||||||
maven { url "https://jitpack.io" }
|
|
||||||
maven { url "https://maven.google.com" }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
subprojects{
|
|
||||||
tasks.withType(Test).configureEach{
|
|
||||||
jvmArgs = jvmArgs + ['--add-opens=java.base/java.lang=ALL-UNNAMED']
|
|
||||||
}
|
|
||||||
}
|
|
||||||
13
build.gradle.kts
Normal file
13
build.gradle.kts
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
||||||
|
plugins {
|
||||||
|
alias(libs.plugins.android.application) apply false
|
||||||
|
alias(libs.plugins.jetbrains.kotlin.android) apply false
|
||||||
|
alias(libs.plugins.github.triplet.play) apply false
|
||||||
|
alias(libs.plugins.getkeepsafe.dexcount)
|
||||||
|
}
|
||||||
|
|
||||||
|
subprojects{
|
||||||
|
tasks.withType<Test>().configureEach {
|
||||||
|
jvmArgs = (jvmArgs ?: emptyList()) + listOf("--add-opens=java.base/java.lang=ALL-UNNAMED")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
ext.getBuildVersion = { ->
|
|
||||||
// Short-term fix for #1157. Should ideally look into why method is failing.
|
|
||||||
try {
|
|
||||||
def stdout = new ByteArrayOutputStream()
|
|
||||||
exec {
|
|
||||||
commandLine 'git' , 'rev-parse' , '--short' , 'HEAD'
|
|
||||||
standardOutput = stdout
|
|
||||||
}
|
|
||||||
return stdout.toString().trim()
|
|
||||||
} catch (ignored) {
|
|
||||||
return null
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ext.getBranchName = { ->
|
|
||||||
try {
|
|
||||||
def stdOut = new ByteArrayOutputStream()
|
|
||||||
exec {
|
|
||||||
commandLine 'git', 'rev-parse', '--abbrev-ref', 'HEAD'
|
|
||||||
standardOutput = stdOut
|
|
||||||
}
|
|
||||||
return stdOut.toString().trim()
|
|
||||||
} catch (ignored) {
|
|
||||||
return null
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -17,24 +17,10 @@ org.gradle.jvmargs=-Xmx1536M
|
||||||
org.gradle.caching=true
|
org.gradle.caching=true
|
||||||
android.enableR8.fullMode=false
|
android.enableR8.fullMode=false
|
||||||
|
|
||||||
KOTLIN_VERSION=1.9.22
|
|
||||||
LEAK_CANARY_VERSION=2.10
|
|
||||||
DAGGER_VERSION=2.23
|
|
||||||
ROOM_VERSION=2.6.1
|
|
||||||
PREFERENCE_VERSION=1.2.1
|
|
||||||
CORE_KTX_VERSION=1.9.0
|
|
||||||
ADAPTER_DELEGATES_VERSION=4.3.0
|
|
||||||
PAGING_VERSION=2.1.2
|
|
||||||
MULTIDEX_VERSION=2.0.1
|
|
||||||
OKHTTP_VERSION=4.10.0
|
|
||||||
MAPLIBRE_VERSION=10.0.1
|
|
||||||
OSMDROID_VERSION=6.1.17
|
|
||||||
|
|
||||||
#systemProp.http.proxyPort=0
|
#systemProp.http.proxyPort=0
|
||||||
#systemProp.http.proxyHost=
|
#systemProp.http.proxyHost=
|
||||||
android.useAndroidX=true
|
android.useAndroidX=true
|
||||||
android.enableJetifier=true
|
android.enableJetifier=true
|
||||||
android.jetifier.ignorelist=bcprov-jdk15on
|
android.jetifier.ignorelist=bcprov-jdk15on
|
||||||
android.defaults.buildfeatures.buildconfig=true
|
|
||||||
android.nonTransitiveRClass=false
|
android.nonTransitiveRClass=false
|
||||||
android.nonFinalResIds=false
|
android.nonFinalResIds=false
|
||||||
|
|
|
||||||
209
gradle/libs.versions.toml
Normal file
209
gradle/libs.versions.toml
Normal file
|
|
@ -0,0 +1,209 @@
|
||||||
|
[versions]
|
||||||
|
agp = "8.9.1"
|
||||||
|
acra = "5.8.4"
|
||||||
|
activityCompose = "1.9.3"
|
||||||
|
adapterdelegates = "4.3.0"
|
||||||
|
androidmediautil = "v1.0-1"
|
||||||
|
androidSdkVersion = "10.0.1"
|
||||||
|
androidPluginScalebar = "1.0.0"
|
||||||
|
androidxJunitVersion = "1.1.5"
|
||||||
|
annotation = "1.3.0"
|
||||||
|
browser = "1.3.0"
|
||||||
|
cardview = "1.0.0"
|
||||||
|
commonsIo = "2.6"
|
||||||
|
composeBom = "2024.11.00"
|
||||||
|
constraintlayout = "1.1.3"
|
||||||
|
coordinates2country = "1.8"
|
||||||
|
dexcount = "4.0.0"
|
||||||
|
githubTripletPlay = "2.7.2"
|
||||||
|
osmdroidAndroid = "6.1.17"
|
||||||
|
testCore = "1.4.0"
|
||||||
|
coreKtx = "1.9.0"
|
||||||
|
coreTesting = "2.2.0"
|
||||||
|
dagger = "2.23"
|
||||||
|
databindingCompiler = "8.0.2"
|
||||||
|
dexterVersion = "5.0.0"
|
||||||
|
espresso = "3.6.1"
|
||||||
|
exifinterface = "1.3.7"
|
||||||
|
fragmentTesting = "1.6.2"
|
||||||
|
frescoVersion = "1.13.0"
|
||||||
|
commonsLang3Version = "3.8.1"
|
||||||
|
glide = "4.12.0"
|
||||||
|
gson = "2.8.5"
|
||||||
|
junit = "4.13.2"
|
||||||
|
junitJupiter = "5.10.0"
|
||||||
|
kotlin = "1.9.22"
|
||||||
|
kotlinStdlib = "1.8.0"
|
||||||
|
coroutines = "1.7.3"
|
||||||
|
leakcanary = "2.10"
|
||||||
|
livedataTesting = "1.2.0"
|
||||||
|
swipelayout = "1.2.0"
|
||||||
|
viewpagerIndicator = "2.4.1.1"
|
||||||
|
lifecycleRuntimeKtx = "2.8.4"
|
||||||
|
loggingInterceptor = "4.10.0"
|
||||||
|
logbackAndroidClassic = "1.1.1-6"
|
||||||
|
material = "1.12.0"
|
||||||
|
mockitoCore = "5.6.0"
|
||||||
|
mockitoKotlin = "2.2.0"
|
||||||
|
mockk = "1.13.5"
|
||||||
|
mockwebserver = "4.10.0"
|
||||||
|
multidex = "2.0.1"
|
||||||
|
okHttp = "4.10.0"
|
||||||
|
paging = "2.1.2"
|
||||||
|
photoviewVersion = "2.0.0"
|
||||||
|
powermock = "2.0.9"
|
||||||
|
preference = "1.2.1"
|
||||||
|
recyclerview = "1.2.0-alpha02"
|
||||||
|
recyclerviewFastscroll = "2.0.1"
|
||||||
|
retrofit = "2.8.1"
|
||||||
|
robolectric = "4.11.1"
|
||||||
|
room = "2.6.1"
|
||||||
|
rules = "1.5.0"
|
||||||
|
runner = "1.5.2"
|
||||||
|
rxandroid = "2.1.0"
|
||||||
|
rxjava = "2.2.3"
|
||||||
|
rxbinding = "2.1.1"
|
||||||
|
rxbindingAppcompat = "3.0.0"
|
||||||
|
slf4jApi = "1.7.25"
|
||||||
|
soloader = "0.10.5"
|
||||||
|
timber = "4.7.1"
|
||||||
|
uiautomator = "2.2.0"
|
||||||
|
workManager = "2.8.1"
|
||||||
|
|
||||||
|
[libraries]
|
||||||
|
# AndroidX Core Dependencies
|
||||||
|
androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "activityCompose" }
|
||||||
|
androidx-annotation = { module = "androidx.annotation:annotation", version.ref = "annotation" }
|
||||||
|
androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" }
|
||||||
|
androidx-compose-runtime = { group = "androidx.compose.runtime", name = "runtime" }
|
||||||
|
androidx-constraintlayout = { module = "androidx.constraintlayout:constraintlayout", version.ref = "constraintlayout" }
|
||||||
|
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
|
||||||
|
androidx-test-core = { module = "androidx.test:core", version.ref = "testCore" }
|
||||||
|
androidx-databinding-compiler = { module = "androidx.databinding:databinding-compiler", version.ref = "databindingCompiler" }
|
||||||
|
androidx-exifinterface = { module = "androidx.exifinterface:exifinterface", version.ref = "exifinterface" }
|
||||||
|
androidx-foundation = { module = "androidx.compose.foundation:foundation" }
|
||||||
|
androidx-foundation-layout = { module = "androidx.compose.foundation:foundation-layout" }
|
||||||
|
androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "lifecycleRuntimeKtx" }
|
||||||
|
androidx-material3 = { group = "androidx.compose.material3", name = "material3" }
|
||||||
|
androidx-runner = { module = "androidx.test:runner", version.ref = "runner" }
|
||||||
|
androidx-test-ext-junit = { module = "androidx.test.ext:junit", version.ref = "androidxJunitVersion" }
|
||||||
|
androidx-test-rules = { module = "androidx.test:rules", version.ref = "rules" }
|
||||||
|
androidx-ui = { group = "androidx.compose.ui", name = "ui" }
|
||||||
|
androidx-ui-graphics = { group = "androidx.compose.ui", name = "ui-graphics" }
|
||||||
|
androidx-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" }
|
||||||
|
androidx-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" }
|
||||||
|
androidx-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest" }
|
||||||
|
androidx-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4" }
|
||||||
|
androidx-ui-viewbinding = { group = "androidx.compose.ui", name = "ui-viewbinding" }
|
||||||
|
|
||||||
|
# AndroidX Room
|
||||||
|
androidx-room-compiler = { module = "androidx.room:room-compiler", version.ref = "room" }
|
||||||
|
androidx-room-rxjava = { module = "androidx.room:room-rxjava2", version.ref = "room" }
|
||||||
|
androidx-room-ktx = { module = "androidx.room:room-ktx", version.ref = "room" }
|
||||||
|
androidx-room-runtime = { module = "androidx.room:room-runtime", version.ref = "room" }
|
||||||
|
|
||||||
|
# AndroidX Preferences
|
||||||
|
androidx-preference = { module = "androidx.preference:preference", version.ref = "preference" }
|
||||||
|
androidx-preference-ktx = { module = "androidx.preference:preference-ktx", version.ref = "preference" }
|
||||||
|
|
||||||
|
# AndroidX Paging
|
||||||
|
androidx-recyclerview = { module = "androidx.recyclerview:recyclerview", version.ref = "recyclerview" }
|
||||||
|
androidx-paging-common-ktx = { module = "androidx.paging:paging-common-ktx", version.ref = "paging" }
|
||||||
|
androidx-paging-runtime-ktx = { module = "androidx.paging:paging-runtime-ktx", version.ref = "paging" }
|
||||||
|
androidx-paging-rxjava2-ktx = { module = "androidx.paging:paging-rxjava2-ktx", version.ref = "paging" }
|
||||||
|
|
||||||
|
# AndroidX Work Manager
|
||||||
|
androidx-work-testing = { module = "androidx.work:work-testing", version.ref = "workManager" }
|
||||||
|
androidx-work-runtime = { module = "androidx.work:work-runtime", version.ref = "workManager" }
|
||||||
|
androidx-work-runtime-ktx = { module = "androidx.work:work-runtime-ktx", version.ref = "workManager" }
|
||||||
|
|
||||||
|
# Dependency injection (DI)
|
||||||
|
dagger-android-processor = { module = "com.google.dagger:dagger-android-processor", version.ref = "dagger" }
|
||||||
|
dagger-android-support = { module = "com.google.dagger:dagger-android-support", version.ref = "dagger" }
|
||||||
|
dagger-android = { module = "com.google.dagger:dagger-android", version.ref = "dagger" }
|
||||||
|
dagger-compiler = { module = "com.google.dagger:dagger-compiler", version.ref = "dagger" }
|
||||||
|
|
||||||
|
# Image loading
|
||||||
|
facebook-fresco = { module = "com.facebook.fresco:fresco", version.ref = "frescoVersion" }
|
||||||
|
glide-compiler = { module = "com.github.bumptech.glide:compiler", version.ref = "glide" }
|
||||||
|
glide = { module = "com.github.bumptech.glide:glide", version.ref = "glide" }
|
||||||
|
photoview = { module = "com.github.chrisbanes:PhotoView", version.ref = "photoviewVersion" }
|
||||||
|
|
||||||
|
# RxJava and Reactive Programming
|
||||||
|
rxandroid = { module = "io.reactivex.rxjava2:rxandroid", version.ref = "rxandroid" }
|
||||||
|
rxjava = { module = "io.reactivex.rxjava2:rxjava", version.ref = "rxjava" }
|
||||||
|
rxbinding = { module = "com.jakewharton.rxbinding2:rxbinding", version.ref = "rxbinding" }
|
||||||
|
rxbinding-appcompat = { module = "com.jakewharton.rxbinding3:rxbinding-appcompat", version.ref = "rxbindingAppcompat" }
|
||||||
|
|
||||||
|
# Testing
|
||||||
|
androidx-core-testing = { module = "androidx.arch.core:core-testing", version.ref = "coreTesting" }
|
||||||
|
androidx-espresso-contrib = { module = "androidx.test.espresso:espresso-contrib", version.ref = "espresso" }
|
||||||
|
androidx-espresso-intents = { module = "androidx.test.espresso:espresso-intents", version.ref = "espresso" }
|
||||||
|
androidx-espresso-core = { module = "androidx.test.espresso:espresso-core", version.ref = "espresso" }
|
||||||
|
androidx-fragment-testing = { module = "androidx.fragment:fragment-testing", version.ref = "fragmentTesting" }
|
||||||
|
androidx-uiautomator = { module = "androidx.test.uiautomator:uiautomator", version.ref = "uiautomator" }
|
||||||
|
commons-io = { module = "commons-io:commons-io", version.ref = "commonsIo" }
|
||||||
|
junit = { module = "junit:junit", version.ref = "junit" }
|
||||||
|
junit-jupiter-engine = { module = "org.junit.jupiter:junit-jupiter-engine", version.ref = "junitJupiter" }
|
||||||
|
junit-jupiter-api = { module = "org.junit.jupiter:junit-jupiter-api", version.ref = "junitJupiter" }
|
||||||
|
kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "coroutines" }
|
||||||
|
livedata-testing-ktx = { module = "com.jraska.livedata:testing-ktx", version.ref = "livedataTesting" }
|
||||||
|
robolectric = { module = "org.robolectric:robolectric", version.ref = "robolectric" }
|
||||||
|
soloader = { module = "com.facebook.soloader:soloader", version.ref = "soloader" }
|
||||||
|
|
||||||
|
# Mocking
|
||||||
|
mockk = { module = "io.mockk:mockk", version.ref = "mockk" }
|
||||||
|
mockwebserver = { module = "com.squareup.okhttp3:mockwebserver", version.ref = "mockwebserver" }
|
||||||
|
mockito-core = { module = "org.mockito:mockito-core", version.ref = "mockitoCore" }
|
||||||
|
mockito-kotlin = { module = "com.nhaarman.mockitokotlin2:mockito-kotlin", version.ref = "mockitoKotlin" }
|
||||||
|
powermock-api-mockito = { module = "org.powermock:powermock-api-mockito2", version.ref = "powermock" }
|
||||||
|
powermock-module-junit = { module = "org.powermock:powermock-module-junit4", version.ref = "powermock" }
|
||||||
|
|
||||||
|
# UI components & layouts
|
||||||
|
androidx-cardview = { module = "androidx.cardview:cardview", version.ref = "cardview" }
|
||||||
|
android-material = { group = "com.google.android.material", name = "material", version.ref = "material" }
|
||||||
|
adapterdelegates4-kotlin-dsl-viewbinding = { module = "com.hannesdorfmann:adapterdelegates4-kotlin-dsl-viewbinding", version.ref = "adapterdelegates" }
|
||||||
|
adapterdelegates4-pagination = { module = "com.hannesdorfmann:adapterdelegates4-pagination", version.ref = "adapterdelegates" }
|
||||||
|
dexter = { module = "com.karumi:dexter", version.ref = "dexterVersion" }
|
||||||
|
recyclerview-fastscroll = { module = "com.simplecityapps:recyclerview-fastscroll", version.ref = "recyclerviewFastscroll" }
|
||||||
|
swipelayout-library = { module = "com.daimajia.swipelayout:library", version.ref = "swipelayout" }
|
||||||
|
viewpagerindicator-library = { module = "fr.avianey.com.viewpagerindicator:library", version.ref = "viewpagerIndicator" }
|
||||||
|
|
||||||
|
# Networking libraries
|
||||||
|
logging-interceptor = { module = "com.squareup.okhttp3:logging-interceptor", version.ref = "loggingInterceptor" }
|
||||||
|
okhttp = { module = "com.squareup.okhttp3:okhttp", version.ref = "okHttp" }
|
||||||
|
retrofit = { module = "com.squareup.retrofit2:retrofit", version.ref = "retrofit" }
|
||||||
|
retrofit-adapter-rxjava = { module = "com.squareup.retrofit2:adapter-rxjava2", version.ref = "retrofit" }
|
||||||
|
retrofit-converter-gson = { module = "com.squareup.retrofit2:converter-gson", version.ref = "retrofit" }
|
||||||
|
|
||||||
|
# Utility libraries
|
||||||
|
androidx-browser = { module = "androidx.browser:browser", version.ref = "browser" }
|
||||||
|
apache-commons-lang3 = { module = "org.apache.commons:commons-lang3", version.ref = "commonsLang3Version" }
|
||||||
|
gson = { group = "com.google.code.gson", name = "gson", version.ref = "gson" }
|
||||||
|
juanitobananas-androidDmediaUtil = { module = "com.github.juanitobananas:AndroidMediaUtil", version.ref = "androidmediautil" }
|
||||||
|
androidx-multidex = { module = "androidx.multidex:multidex", version.ref = "multidex" }
|
||||||
|
kotlin-reflect = { module = "org.jetbrains.kotlin:kotlin-reflect", version.ref = "kotlin" }
|
||||||
|
leakcanary-android = { module = "com.squareup.leakcanary:leakcanary-android", version.ref = "leakcanary" }
|
||||||
|
|
||||||
|
# Logging & Crash Reporting
|
||||||
|
acra-mail = { module = "ch.acra:acra-mail", version.ref = "acra" }
|
||||||
|
acra-dialog = { module = "ch.acra:acra-dialog", version.ref = "acra" }
|
||||||
|
logback-android-classic = { module = "com.github.tony19:logback-android-classic", version.ref = "logbackAndroidClassic" }
|
||||||
|
slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "slf4jApi" }
|
||||||
|
timber = { module = "com.jakewharton.timber:timber", version.ref = "timber" }
|
||||||
|
|
||||||
|
# Map & location services
|
||||||
|
android-sdk = { module = "org.maplibre.gl:android-sdk", version.ref = "androidSdkVersion" }
|
||||||
|
android-plugin-scalebar = { module = "org.maplibre.gl:android-plugin-scalebar-v9", version.ref = "androidPluginScalebar" }
|
||||||
|
coordinates2country-android = { module = "io.github.coordinates2country:coordinates2country-android", version.ref = "coordinates2country" }
|
||||||
|
osmdroid-android = { module = "org.osmdroid:osmdroid-android", version.ref = "osmdroidAndroid" }
|
||||||
|
kotlin-stdlib-jdk7 = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib-jdk7", version.ref = "kotlinStdlib" }
|
||||||
|
kotlin-stdlib-jdk8 = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib-jdk8", version.ref = "kotlinStdlib" }
|
||||||
|
|
||||||
|
[plugins]
|
||||||
|
android-application = { id = "com.android.application", version.ref = "agp" }
|
||||||
|
jetbrains-kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
|
||||||
|
kotlin-kapt = { id = "org.jetbrains.kotlin.kapt" }
|
||||||
|
kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize" }
|
||||||
|
github-triplet-play = { id = "com.github.triplet.play", version.ref = "githubTripletPlay" }
|
||||||
|
getkeepsafe-dexcount = { id = "com.getkeepsafe.dexcount", version.ref = "dexcount" }
|
||||||
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
|
|
@ -1,6 +1,6 @@
|
||||||
#Sun Apr 23 18:22:54 IST 2023
|
#Sun Apr 23 18:22:54 IST 2023
|
||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
include ':app'
|
|
||||||
17
settings.gradle.kts
Normal file
17
settings.gradle.kts
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
pluginManagement {
|
||||||
|
repositories {
|
||||||
|
google()
|
||||||
|
mavenCentral()
|
||||||
|
gradlePluginPortal()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dependencyResolutionManagement {
|
||||||
|
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
|
||||||
|
repositories {
|
||||||
|
google()
|
||||||
|
mavenCentral()
|
||||||
|
maven("https://jitpack.io")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
include(":app")
|
||||||
Loading…
Add table
Add a link
Reference in a new issue