diff --git a/app/build.gradle b/app/build.gradle index 718057816..569a176ff 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,3 +1,7 @@ +plugins { + id 'com.github.triplet.play' version '2.2.1' apply false +} + apply from: '../gitutils.gradle' apply plugin: 'com.android.application' apply plugin: 'kotlin-android' diff --git a/app/src/main/java/fr/free/nrw/commons/settings/Prefs.java b/app/src/main/java/fr/free/nrw/commons/settings/Prefs.java index 9a40acc55..41889e3db 100644 --- a/app/src/main/java/fr/free/nrw/commons/settings/Prefs.java +++ b/app/src/main/java/fr/free/nrw/commons/settings/Prefs.java @@ -8,6 +8,7 @@ public class Prefs { public static final String UPLOADS_SHOWING = "uploadsshowing"; public static final String IS_CONTRIBUTION_COUNT_CHANGED = "ccontributionCountChanged"; public static final String MANAGED_EXIF_TAGS = "managedExifTags"; + public static final String KEY_LANGUAGE_VALUE = "languageDescription"; public static class Licenses { public static final String CC_BY_SA_3 = "CC BY-SA 3.0"; diff --git a/app/src/main/java/fr/free/nrw/commons/settings/SettingsFragment.java b/app/src/main/java/fr/free/nrw/commons/settings/SettingsFragment.java index 6d527c91d..176697f9a 100644 --- a/app/src/main/java/fr/free/nrw/commons/settings/SettingsFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/settings/SettingsFragment.java @@ -1,12 +1,15 @@ package fr.free.nrw.commons.settings; import android.Manifest; +import android.content.SharedPreferences; import android.net.Uri; import android.os.Bundle; import android.preference.EditTextPreference; import android.preference.MultiSelectListPreference; +import android.preference.ListPreference; import android.preference.Preference; import android.preference.PreferenceFragment; +import android.preference.PreferenceManager; import android.preference.SwitchPreference; import android.text.Editable; import android.text.TextWatcher; @@ -15,10 +18,10 @@ import com.karumi.dexter.Dexter; import com.karumi.dexter.listener.PermissionGrantedResponse; import com.karumi.dexter.listener.single.BasePermissionListener; -import java.util.Arrays; import java.util.Collections; -import java.util.HashSet; -import java.util.Set; +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; import javax.inject.Inject; import javax.inject.Named; @@ -30,6 +33,7 @@ import fr.free.nrw.commons.kvstore.JsonKvStore; import fr.free.nrw.commons.logging.CommonsLogSender; import fr.free.nrw.commons.utils.PermissionUtils; import fr.free.nrw.commons.utils.ViewUtil; +import fr.free.nrw.commons.upload.Language; public class SettingsFragment extends PreferenceFragment { @@ -38,6 +42,7 @@ public class SettingsFragment extends PreferenceFragment { JsonKvStore defaultKvStore; @Inject CommonsLogSender commonsLogSender; + private ListPreference listPreference; @Override public void onCreate(Bundle savedInstanceState) { @@ -108,6 +113,8 @@ public class SettingsFragment extends PreferenceFragment { } }); + listPreference = (ListPreference) findPreference("descriptionDefaultLanguagePref"); + prepareLanguages(); Preference betaTesterPreference = findPreference("becomeBetaTester"); betaTesterPreference.setOnPreferenceClickListener(preference -> { Utils.handleWebUrl(getActivity(), Uri.parse(getResources().getString(R.string.beta_opt_in_link))); @@ -133,6 +140,74 @@ public class SettingsFragment extends PreferenceFragment { } } + /** + * Prepares language summary and language codes list and adds them to list preference as pairs. + * Uses previously saved language if there is any, if not uses phone local as initial language. + * Adds preference changed listener and saves value choosen by user to shared preferences + * to remember later + */ + private void prepareLanguages() { + List languageNamesList = new ArrayList<>(); + List languageCodesList = new ArrayList<>(); + List languages = getLanguagesSupportedByDevice(); + + for(Language language: languages) { + // Go through all languages and add them to lists + if(!languageCodesList.contains(language.getLocale().getLanguage())) { + // This if prevents us from adding same language twice + languageNamesList.add(language.getLocale().getDisplayName()); + languageCodesList.add(language.getLocale().getLanguage()); + } + } + + CharSequence[] languageNames = languageNamesList.toArray(new CharSequence[0]); + CharSequence[] languageCodes = languageCodesList.toArray(new CharSequence[0]); + // Add all languages and languages codes to lists preference as pair + listPreference.setEntries(languageNames); + listPreference.setEntryValues(languageCodes); + + // Gets current language code from shared preferences + String languageCode = getCurrentLanguageCode(); + if(languageCode.equals("")){ + // If current language code is empty, means none selected by user yet so use phone local + listPreference.setSummary(Locale.getDefault().getDisplayLanguage()); + listPreference.setValue(Locale.getDefault().getLanguage()); + } else { + // If any language is selected by user previously, use it + int prefIndex = listPreference.findIndexOfValue(languageCode); + listPreference.setSummary(listPreference.getEntries()[prefIndex]); + listPreference.setValue(languageCode); + } + + listPreference.setOnPreferenceChangeListener((preference, newValue) -> { + String userSelectedValue = (String) newValue; + int prefIndex = listPreference.findIndexOfValue(userSelectedValue); + listPreference.setSummary(listPreference.getEntries()[prefIndex]); + saveLanguageValue(userSelectedValue); + return true; + }); + } + + private void saveLanguageValue(String userSelectedValue) { + defaultKvStore.putString(Prefs.KEY_LANGUAGE_VALUE, userSelectedValue); + } + + private String getCurrentLanguageCode() { + return defaultKvStore.getString(Prefs.KEY_LANGUAGE_VALUE, ""); + } + + private List getLanguagesSupportedByDevice() { + List languages = new ArrayList<>(); + Locale[] localesArray = Locale.getAvailableLocales(); + for (Locale locale : localesArray) { + languages.add(new Language(locale)); + } + + Collections.sort(languages, (language, t1) -> language.getLocale().getDisplayName() + .compareTo(t1.getLocale().getDisplayName())); + return languages; + } + /** * First checks for external storage permissions and then sends logs via email */ diff --git a/app/src/main/java/fr/free/nrw/commons/upload/DescriptionsAdapter.java b/app/src/main/java/fr/free/nrw/commons/upload/DescriptionsAdapter.java index a24a791bf..badcd48f8 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/DescriptionsAdapter.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/DescriptionsAdapter.java @@ -32,10 +32,12 @@ public class DescriptionsAdapter extends RecyclerView.Adapter selectedLanguages; + private String savedLanguageValue; - public DescriptionsAdapter() { + public DescriptionsAdapter(String savedLanguageValue) { descriptions = new ArrayList<>(); selectedLanguages = new BiMap<>(); + this.savedLanguageValue = savedLanguageValue; } public void setCallback(Callback callback) { @@ -143,14 +145,15 @@ public class DescriptionsAdapter extends RecyclerView.Adapter adapterView, View view, int position, - long l) { + long l) { description.setSelectedLanguageIndex(position); String languageCode = ((SpinnerLanguagesAdapter) adapterView.getAdapter()) .getLanguageCode(position); @@ -159,22 +162,28 @@ public class DescriptionsAdapter extends RecyclerView.Adapter adapterView) { - } }); if (description.getSelectedLanguageIndex() == -1) { - if (position == 0) { - int defaultLocaleIndex = languagesAdapter - .getIndexOfUserDefaultLocale(spinnerDescriptionLanguages.getContext()); - spinnerDescriptionLanguages.setSelection(defaultLocaleIndex, true); + if (savedLanguageValue != null) { + // If user has chosen a default language from settings activity savedLanguageValue is not null + spinnerDescriptionLanguages.setSelection(languagesAdapter.getIndexOfLanguageCode(savedLanguageValue)); } else { - spinnerDescriptionLanguages.setSelection(0); + if (position == 0) { + int defaultLocaleIndex = languagesAdapter + .getIndexOfUserDefaultLocale(spinnerDescriptionLanguages.getContext()); + spinnerDescriptionLanguages.setSelection(defaultLocaleIndex, true); + } else { + spinnerDescriptionLanguages.setSelection(0); + } } + } else { spinnerDescriptionLanguages.setSelection(description.getSelectedLanguageIndex()); selectedLanguages.put(spinnerDescriptionLanguages, description.getLanguageCode()); diff --git a/app/src/main/java/fr/free/nrw/commons/upload/Language.java b/app/src/main/java/fr/free/nrw/commons/upload/Language.java index ab03a4db7..d82796a4a 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/Language.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/Language.java @@ -2,7 +2,7 @@ package fr.free.nrw.commons.upload; import java.util.Locale; -class Language { +public class Language { private Locale locale; private boolean isSet = false; diff --git a/app/src/main/java/fr/free/nrw/commons/upload/SpinnerLanguagesAdapter.java b/app/src/main/java/fr/free/nrw/commons/upload/SpinnerLanguagesAdapter.java index 346f6a4ec..f050568a8 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/SpinnerLanguagesAdapter.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/SpinnerLanguagesAdapter.java @@ -1,7 +1,9 @@ package fr.free.nrw.commons.upload; import android.content.Context; +import android.content.SharedPreferences; import android.graphics.Color; +import android.preference.PreferenceManager; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -16,15 +18,16 @@ import java.util.Locale; import androidx.annotation.NonNull; import androidx.annotation.Nullable; + +import org.apache.commons.lang3.StringUtils; + import butterknife.BindView; import butterknife.ButterKnife; import fr.free.nrw.commons.R; +import fr.free.nrw.commons.settings.Prefs; import fr.free.nrw.commons.utils.BiMap; import fr.free.nrw.commons.utils.LangCodeUtils; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Locale; + public class SpinnerLanguagesAdapter extends ArrayAdapter { @@ -34,11 +37,16 @@ public class SpinnerLanguagesAdapter extends ArrayAdapter { private List languageCodesList; private final BiMap selectedLanguages; public String selectedLangCode=""; + private Context context; + private boolean dropDownClicked; + private String savedLanguageValue; public SpinnerLanguagesAdapter(@NonNull Context context, - int resource, BiMap selectedLanguages) { + int resource, + BiMap selectedLanguages, + String savedLanguageValue) { super(context, resource); this.resource = resource; this.layoutInflater = LayoutInflater.from(context); @@ -46,6 +54,9 @@ public class SpinnerLanguagesAdapter extends ArrayAdapter { languageCodesList = new ArrayList<>(); prepareLanguages(); this.selectedLanguages = selectedLanguages; + this.context = context; + this.dropDownClicked = false; + this.savedLanguageValue = savedLanguageValue; } private void prepareLanguages() { @@ -90,7 +101,9 @@ public class SpinnerLanguagesAdapter extends ArrayAdapter { convertView = layoutInflater.inflate(resource, parent, false); } ViewHolder holder = new ViewHolder(convertView); - holder.init(position, true); + holder.init(position, true, savedLanguageValue); + + dropDownClicked = true; return convertView; } @@ -105,7 +118,7 @@ public class SpinnerLanguagesAdapter extends ArrayAdapter { } else { holder = (ViewHolder) convertView.getTag(); } - holder.init(position, false); + holder.init(position, false, savedLanguageValue); return convertView; } @@ -122,17 +135,23 @@ public class SpinnerLanguagesAdapter extends ArrayAdapter { ButterKnife.bind(this, itemView); } - public void init(int position, boolean isDropDownView) { - final String languageCode = LangCodeUtils.fixLanguageCode(languageCodesList.get(position)); - final String languageName = String.format("%s%s", languageNamesList.get(position) - .substring(0, 1).toUpperCase(), languageNamesList.get(position).substring(1)); + public void init(int position, boolean isDropDownView, String savedLanguageValue) { + String languageCode = LangCodeUtils.fixLanguageCode(languageCodesList.get(position)); + final String languageName = StringUtils.capitalize(languageNamesList.get(position)); + + if(savedLanguageValue.equals("")){ + savedLanguageValue = Locale.getDefault().getLanguage(); + } + if (!isDropDownView) { + if( !dropDownClicked){ + languageCode = LangCodeUtils.fixLanguageCode(savedLanguageValue); + } view.setVisibility(View.GONE); - if(languageCode.length()>2) - tvLanguage.setText(languageCode.subSequence(0,2)); + if (languageCode.length() > 2) + tvLanguage.setText(languageCode.substring(0, 2)); else tvLanguage.setText(languageCode); - } else { view.setVisibility(View.VISIBLE); if (languageCodesList.get(position).isEmpty()) { @@ -141,7 +160,7 @@ public class SpinnerLanguagesAdapter extends ArrayAdapter { } else { tvLanguage.setText( String.format("%s [%s]", languageName, languageCode)); - if(selectedLanguages.containsKey(languageCodesList.get(position))&& + if (selectedLanguages.containsKey(languageCodesList.get(position)) && !languageCodesList.get(position).equals(selectedLangCode)) { tvLanguage.setTextColor(Color.GRAY); } @@ -158,4 +177,7 @@ public class SpinnerLanguagesAdapter extends ArrayAdapter { return languageCodesList.indexOf(context.getResources().getConfiguration().locale.getLanguage()); } + int getIndexOfLanguageCode(String languageCode) { + return languageCodesList.indexOf(languageCode); + } } diff --git a/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailFragment.java b/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailFragment.java index 0b589fc77..3c7c96bbe 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailFragment.java @@ -32,6 +32,7 @@ import java.util.List; import java.util.Locale; import javax.inject.Inject; +import javax.inject.Named; import butterknife.BindView; import butterknife.ButterKnife; @@ -39,8 +40,10 @@ import butterknife.OnClick; import fr.free.nrw.commons.R; import fr.free.nrw.commons.Utils; import fr.free.nrw.commons.filepicker.UploadableFile; +import fr.free.nrw.commons.kvstore.JsonKvStore; import fr.free.nrw.commons.location.LatLng; import fr.free.nrw.commons.nearby.Place; +import fr.free.nrw.commons.settings.Prefs; import fr.free.nrw.commons.upload.Description; import fr.free.nrw.commons.upload.DescriptionsAdapter; import fr.free.nrw.commons.upload.SimilarImageDialogFragment; @@ -86,6 +89,11 @@ public class UploadMediaDetailFragment extends UploadBaseFragment implements @Inject UploadMediaDetailsContract.UserActionListener presenter; + + @Inject + @Named("default_preferences") + JsonKvStore defaultKvStore; + private UploadableFile uploadableFile; private String source; private Place place; @@ -214,7 +222,7 @@ public class UploadMediaDetailFragment extends UploadBaseFragment implements * init the recycler veiw */ private void initRecyclerView() { - descriptionsAdapter = new DescriptionsAdapter(); + descriptionsAdapter = new DescriptionsAdapter(defaultKvStore.getString(Prefs.KEY_LANGUAGE_VALUE,"")); descriptionsAdapter.setCallback(this::showInfoAlert); rvDescriptions.setLayoutManager(new LinearLayoutManager(getContext())); rvDescriptions.setAdapter(descriptionsAdapter); diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 873a3101d..bd05c7cd3 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -531,5 +531,9 @@ ارفع الصور لويكيميديا ​​كومنز على هاتفك قم بتنزيل تطبيق كومنز: %1$s مشاركة التطبيق عبر... معلومات الصورة + لم يتم العثور على تصنيفات + تم إلغاء الرفع + لا توجد بيانات لعنوان أو وصف الصورة السابقة لماذا يجب حذف %1$s؟ + لغة الوصف الافتراضية diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 8d5ea3767..f9d412b88 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -11,6 +11,7 @@ --> Aparença + Privadesa Ubicació Commons Configuració @@ -205,4 +206,12 @@ No teniu cap notificació arxivada Exemples d’imatges adequades per a Commons Exemples d’imatges que no s’han de pujar + Autor + Drets d’autor + Ubicació + Model de la càmera + Números de sèrie + Programari + No s’ha trobat cap categoria + S’ha cancel·lat la pujada diff --git a/app/src/main/res/values-eo/strings.xml b/app/src/main/res/values-eo/strings.xml index fb25c0020..a4e65f2e7 100644 --- a/app/src/main/res/values-eo/strings.xml +++ b/app/src/main/res/values-eo/strings.xml @@ -12,6 +12,7 @@ Aspekto Ĝenerala Prikomentado + Privateco Pozicio Komunejo @@ -170,6 +171,7 @@ Petante Permeson Konservi Postulata permeso: Legi eksteran konservejon. La aplikaĵo ne povas atingi vian galerion sen tio. Postulata permeso: Skribi al ekstera konservejo. La aplikaĵo ne povas atingi viajn fotilon/galerion sen tio. + Petante Permeson por Lokado Laŭvola permeso: Akiri aktualan lokon por sugestoj pri kategorio Bone Apudaj Lokoj @@ -509,7 +511,20 @@ Ekzemploj de ne alŝutindaj bildoj PRETERPASI TIUN BILDON Elŝuto malsukcesis!! Ni ne povas elŝuti la dosieron sen permeso konservi ekstere. + Mastrumi EXIF-Etikedojn + Elekti EXIF-etikedojn tenotajn je alŝutoj + Aŭtoro + Aŭtorrajto + Loko + Speco de Fotilo + Speco de Lenso + Numero de Fotilo + Programaro Alŝutu fotojn al Vikimedia Komunejo telefone. Elŝutu la Komunejo-aplikaĵon: %1$s Diskonigi aplikaĵon per... Informo pri Bildo + Neniu Kategorio troviĝis + Alŝutado Ĉesis + Mankas dateno pri titolo aŭ priskribo de antaŭa bildo + Kial %1$s foriĝu? diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 2b28b4d54..747b5efb4 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -29,6 +29,7 @@ Apariencia General Sugerencias + Privacidad Ubicación Commons @@ -526,5 +527,17 @@ Ejemplos de imágenes que no deben cargarse OMITIR ESTA IMAGEN La descarga falló!. No podemos descargar el archivo sin el permiso de almacenamiento externo. + Gestionar etiquetas EXIF + Autor + Derechos de autor + Ubicación + Modelo de cámara + Modelo de lente + Números de serie + Programa Información de la imagen + No se encontró ninguna categoría + Se canceló la carga + No hay datos sobre el título o la descripción anteriores de la imagen + ¿Por qué debe borrarse %1$s? diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml index 47760ee8a..e22e07bdf 100644 --- a/app/src/main/res/values-fa/strings.xml +++ b/app/src/main/res/values-fa/strings.xml @@ -448,7 +448,7 @@ خوب به نظر می‌رسد بله، چرا که نه تصویر بعدی - تصاویر استاده نشده + هیچ تصویری به کار نرفته است تصویر برگردانده نشد هیچ تصویری بارگذاری نشد شما هیچ اعلان خوانده‌نشده‌ای ندارید diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 850d1545b..3692caccc 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -221,7 +221,7 @@ Voulez-vous vraiment vous déconnecter ? Logo de Commons Site web de Communs - Page Facebook de Communs + Page Facebook de Commons Code source Github de Communs Image de fond Échec sur l’image du média @@ -541,5 +541,8 @@ Téléverser des photos vers Wikimédia Commons, sur votre téléphone Téléchargez l’application Commons : %1$s Partager l’application via… Informations de l’image + Aucune catégorie trouvée + Téléversement annulé + Il n’y a pas de données pour le titre ou la description de l’image précédente Pourquoi %1$s devrait-il être supprimé ? diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 32509e837..d705265e8 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -476,5 +476,7 @@ Software Condividi applicazione tramite... Informazioni sull\'immagine + Nessuna categoria trovata + Caricamento annullato Perché %1$s dovrebbe essere cancellato? diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index 95daefdaf..32223c54b 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -10,6 +10,7 @@ * Guycn2 * Inkbug * Nurick +* Steeve815 * Strayblues * Uziel302 * YaronSh @@ -21,6 +22,7 @@ מראה כללי משוב + פרטיות מיקום ויקישיתוף @@ -518,7 +520,20 @@ דוגמאות של תמונות שאין להעלות דילוג על התמונה הזאת ההורדה נכשלה!! אין לנו אפשרות להוריד את הקובץ ללא הרשאות גישה לאחסון חיצוני. + ניהול תגיות EXIF + לבחור אילו תגיות EXIF יישארו בהעלאות + יוצר + זכויות יוצרים + מיקום + דגם המצלמה + דגם העדשה + מספרים סידוריים + תוכנה כדי להעלות תמונות לוויקינתונים של ויקימדיה בעזרת הטלפון שלך יש להוריד את היישומון של ויקינתונים: %1$s שיתוף אפליקציה דרך... פרטי תמונה + לא נמצאו קטגוריות + ההעלאה בוטלה + אין נתונים עבור הכותרת או התיאור התמונה הקודמת + למה %1$s צריך להימחק? diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 8d23998f9..7f32291b6 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -13,11 +13,13 @@ * Whym * Yusuke1109 * Yuukin0248 +* 神樂坂秀吉 --> 表示 全般 フィードバック + プライバシー 場所 コモンズ @@ -108,7 +110,10 @@ まだ写真をアップロードしていません。 再試行 キャンセル - この画像は%1$sライセンスのもとにアップロードされます。 + + この画像は%1$sライセンスのもとにアップロードされます + これらの画像は%1$sライセンスのもとにアップロードされます + この画像の投稿に当たり、私はこれが自分自身の作品であり、著作権のあるコンテンツや自撮りは含まれていないと宣言します。 ダウンロード 既定のライセンス @@ -162,6 +167,7 @@ 読み込み中… ファイルを選択していません 説明はありません。 + 議論なし 不明なライセンス 更新 必要な権限:外部ストレージを読み込みます。これがなければアプリはギャラリーを開けません。 @@ -175,6 +181,7 @@ いいえ タイトル 記述 + 議論 作者 アップロード日時 ライセンス @@ -185,6 +192,7 @@ 2段階認証コード 最近のアップロードファイルに表示する最大件数 最大限 + 無効な入力 表示できるのは500件以下です 最近のアップロード上限件数 2段階認証は現在サポートされていません。 @@ -219,6 +227,7 @@ チュートリアル 通知 秀逸 + 査読 場所の権限がないため、近くの場所を表示できません 説明がありません コモンズのファイルページ @@ -279,11 +288,14 @@ 今日の一枚 検索 検索 + 最近の検索: カテゴリ ウィキデータの%1$sに画像を追加しました ! 対応するウィキデータの更新に失敗しました! 壁紙として設定 壁紙の設定ができました! + 終了 + 質問 結果 続行 アプリをシェアする @@ -297,12 +309,20 @@ 削除候補 削除 統計 + 投稿記録 + 付近 + 一覧 + 次へ + 前へ 送信 %1$d 件のアップロード ブックマーク ブックマーク + 画像 + 位置 + ブックマーク ブックマーク 全世界 アメリカ @@ -311,7 +331,19 @@ アフリカ アジア 太平洋地域 + 以後、表示しない 完了 - 次の画像 + 感謝を示す + 感謝を示す + 次の画像 + アーカイブ済みを表示 + 未読を見る お待ちください… + 作者 + 著作権 + 位置 + 撮影機器のモデル名 + シリアル番号 + ソフトウェア + 画像情報 diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 664d1ff72..fdc300b1f 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -464,4 +464,6 @@ 소프트웨어 앱 공유... 이미지 정보 + 분류가 없습니다 + 업로드 취소됨 diff --git a/app/src/main/res/values-lb/strings.xml b/app/src/main/res/values-lb/strings.xml index dc1a1c2b2..4a72ff805 100644 --- a/app/src/main/res/values-lb/strings.xml +++ b/app/src/main/res/values-lb/strings.xml @@ -343,4 +343,6 @@ Plaz Seriennummeren Software + Keng Kategorie fonnt. + Eroplueden ofgebrach diff --git a/app/src/main/res/values-mk/strings.xml b/app/src/main/res/values-mk/strings.xml index 516b42219..99f2e4db7 100644 --- a/app/src/main/res/values-mk/strings.xml +++ b/app/src/main/res/values-mk/strings.xml @@ -521,5 +521,8 @@ Подигајте слики на Ризницата од телефон. Преземете го прилогот на Ризницата: %1$s Сподели преку... Инфо за сликата + Не пронајдов ниедна категорија + Откажено подигање + Нема податоци за наслов и описи од претх. слика Зошто сметате дека %1$s треба да се избрише? diff --git a/app/src/main/res/values-my/strings.xml b/app/src/main/res/values-my/strings.xml index 5cc34d2cf..9a875e9c7 100644 --- a/app/src/main/res/values-my/strings.xml +++ b/app/src/main/res/values-my/strings.xml @@ -62,6 +62,7 @@ သိမ်းရန် ပြန်လည်ဆန်းသစ်ရန် စာရင်း + သင်၏စက်ပစ္စည်းတွင် ဂျီအက်စ်ကိုပိတ်ထားပါသည်။ ယင်းအား ဖွင့်လိုပါသလား။ ဂျီပီအက်စ် ဖွင့်ရန် ဖိုင်မတင်ရသေးပါ @@ -82,7 +83,10 @@ သင် မည်သည့်ဓာတ်ပုံကိုမှ မတင်ရသေးပါ။ ပြန်လုပ် မလုပ်တော့ - ဤရုပ်ပုံသည် %1$ အောက်တွင် လိုင်စင်သတ်မှတ်ထးပါမည် + + ဤရုပ်ပုံသည် %1$ အောက်တွင် လိုင်စင်သတ်မှတ်ထးပါမည် + ဤရုပ်ပုံများသည် %1$ အောက်တွင် လိုင်စင်သတ်မှတ်ထးပါမည် + ဒေါင်းလုပ်ယူရန် နဂို လိုင်စင် ယခင် ခေါင်းစဉ်/ဖော်ပြချက် သုံးမည် @@ -130,6 +134,7 @@ ဆွေးနွေးချက် မရှိပါ အမည်မသိရသော လိုင်စင် ပြန်လည်ဆန်းသစ်ရန် + သိုလှောင်ခန်း ခွင့်ပြုချက် တောင်းဆိုနေသည် တည်နေရာ ခွင့်ပြုချက် တောင်းဆိုနေသည် အိုကေ အနီးအနား နေရာများ @@ -158,8 +163,10 @@ ကွန်မွန်းစ် ဝဘ်ဆိုဒ် ကွန်မွန်းစ် ဖေ့ဘုတ်စာမျက်နှာ နောက်ခံ ဓါတ်ပုံ + မီဒီယာရုပ်ပုံ မအောင်မြင်ပါ ပုံ မတွေ့ပါ ကဏ္ဍခွဲများ မတွေ့ရှိပါ + ပင်မကဏ္ဍများ မတွေ့ရှိပါ ရုပ်ပုံ အက်ပလုတ်တင်ရန် ခတ္တာပန်း ဝီကီပီးဒီးယားမှ ကြိုဆိုပါသည်။ @@ -184,9 +191,17 @@ ဝီကီးဒေတာ item ဝီကီပီးဒီးယား ဆောင်းပါး ရုပ်ပုံမှာ မှောင်လွန်းသည်။ + ရုပ်ပုံ ဝါးတားတား ဖြစ်နေသည် + ကွန်မွန်းစ်တွင် ရုပ်ပုံရှိနှင့်ပြီးသားဖြစ်သည် + ဤရုပ်ပုံအား မတူညီသောနေရာ၌ ရိုက်ကူးခဲ့သည်။ + သင်ကိုယ်တိုင်ရိုက်ကူးထားသော ရုပ်ပုံများကိုသာ အက်ပလုပ်တင်ပါ။ အခြားသူ၏ ဖေ့ဘုတ်အကောင့်များတွင်တွေ့သည့်ရုပ်ပုံများကို မတင်ပါနှင့်။ + ဤရုပ်ပုံအား အက်ပလုပ်တင်ချင်နေတုန်းပဲလား + သင်ကိုယ်တိုင်ရိုက်ကူးထားသော ရုပ်ပုံများကိုသာ အက်ပလုပ်တင်ပါ။ အင်တာနက်မှဒေါင်းလုတ်ဆွဲထားသည့်ရုပ်ပုံများကို မတင်ပါနှင့်။ ခွင့်ပြုချက် ပေးမည် ပြင်ပြသိုလှောင်ခန်းကို သုံးမည် သင်၏အကောင့်သို့ ဝင်ရန် + URL ဖွင့်ရန် ဝဘ်ဘရောက်ဆာ မတွေ့ရှိပါ + အမှား! URL မတွေ့ရှိပါ ဖျက်ပစ်ရန် အဆိုပြုပါ ဤရုပ်ပုံအား ဖျက်ပစ်ရန် အဆိုပြုခံထားရသည်။ <u>အသေးစိတ်အတွက် ဝဘ်စာမျက်ကိုကြည့်ပါ</u> @@ -194,16 +209,18 @@ ကျော်ရန် အကောင့်ဝင်ရန် အကောင့်ထဲဝင်ခြင်းကို အမှန်တကယ် ကျော်သွားလိုပါသလား - သင် ရုပ်ပုံများ တင်နိုင်လိမ့်မည်မဟုတ်ပါ။ + အနာဂတ်ကာလတွင် ရုပ်ပုံများတင်ရန် အကောင့်ထဲဝင်ရပါမည်။ ဤအင်္ဂါရပ်ကို အသုံးပြုရန် အကောင့်ထဲသို့ဝင်ပါ တည်နေရာ မပြောင်းလဲပါ တည်နေရာ မရရှိနိုင်ပါ အနီးအနားနေရာများစာရင်းကို ပြသပေးရန် ခွင့်ပြုချက် လိုအပ်ပါသည် + လမ်းညွှန်များ ရယူမည် ဆောင်းပါး ဖတ်ရန် ဝီကီမီဒီယာ ကွန်မွန်းစ်မှ ကြိုဆိုပါသည်၊ %1$s သင် ဤနေရာသို့ရောက်လာသည်ကို ကျွန်ုပ်တို့ ဝမ်းသာပါသည်။ %1$sက သင်၏ဆွေးနွေးချက် စာမျက်နှာတွင် မက်ဆေ့တစ်ခု ချန်ခဲ့သည်။ တည်းဖြတ်မှုတစ်ခု လုပ်ဆောင်သည့်အတွက် ကျေးဇူးတင်ပါသည် %1$s က %2$s ပေါ်တွင် သင့်ကို ရည်ညွှန်းပြောဆိုခဲ့သည်။ + လမ်းညွှန်များ ဝီကီးဒေတာ ဝီကီပီးဒီးယား ကွန်မွန်းစ် @@ -214,6 +231,7 @@ အသိပေးချက်များ မတွေ့ပါ <u>ဘာသာပြန်ပါ</u> ဘာသာစကားများ + ဆက်လက်လုပ်ဆောင်ရန် မလုပ်တော့ပါ ပြန်လုပ် သဘောပေါက်ပြီ @@ -241,11 +259,15 @@ သတိပေးချက်: သင် တင်လိုက်သော %1$s ထက်ပိုသည့်ရုပ်ပုံများသည် အဖျက်ခံလိုက်ရပါသည်။ ဖျက်ပစ်ရန် လိုအပ်သော ရုပ်ပုံများကို ဆက်လက်တင်ပါက သင်၏အကောင့်သည် ပိတ်ပင်တားဆီးခြင်း ခံရကိန်းရှိပါသည်။ အဖြေများ၏ %$s ကို မှန်ကန်စွာဖြေခဲ့သည်။ ဂုဏ်ယူပါ၏။ မေးခွန်းကိုဖြေဆိုရန် ရွေးစရာနှစ်ခုထဲမှ တစ်ခုကို ရွေးချယ်ပါ + သင်၏ဉာဏ်စမ်းများကို မိတ်ဆွေများနှင့် မျှဝေပါ။ ဆက်လက် အဖြေမှန် အဖြေမှား + ရုပ်ပုံရွေးချယ်စဉ်အတွင်း ကိုဩဒိနိတ်များကို မသတ်မှတ်ထားပါ + ဖော်ပြချက် ထည့်ရန် + လတ်တလော ရှာဖွေမှုများ မရှိပါ သင့်ရှာဖွေမှု ရာဇဝင်ကို ရှင်းလင်းမည်မှာ သေချာပါသလား? + ဤရှာဖွေမှုကို ဖျက်လိုပါသလား ရှာဖွေမှု ရာဇဝင်အား ဖျက်လိုက်ပါပြီ ဖျက်ပစ်ရန် အဆိုပြုပါ ဖျက်ပါ @@ -253,6 +275,7 @@ စာရင်းအင်း ကျေးဇူးစကား လက်ခံရရှိ အထူးဓာတ်ပုံများ + \"အနီးအနားနေရာများ\" မှတဆင့် ရုပ်ပုံများ အဆင့် သင်၏အောင်မြင်မှုများကို မိတ်ဆွေများနှင့် မျှဝေလိုက်ပါ အနည်းဆုံး လိုအပ်ချက်: @@ -266,11 +289,26 @@ အနီးအနားအသိပေးချက်ကို ပြသရန် စာရင်း သိုလှောင်ခန်း ခွင်ပြုချက် + ရုပ်ပုံများ အက်ပလုဒ်တင်ရန်အတွက် သင်၏စက်ပစ္စည်းပြင်ပသိုလှောင်ခန်းကို ဝင်ရောက်ခွင့်ရရှိရန် ခွင့်ပြုချက်လိုအပ်နေပါသည်။ + %2$d ၏ အဆင့် %1$d ရှေ့ နောက် ထည့်သွင်းရန် + + %1$d အက်ပလုပ် + %1$d အက်ပလုပ်များ + + ဖတ်ရန်မှတ်ထားမှုများ + ဖတ်ရန်မှတ်ထားမှုများ ရုပ်ပုံများ တည်နေရာများ + ဖတ်ရန်မှတ်ထားမှုများ + ဖတ်ရန်မှတ်ထားမှုများ + ယင်းအား မှားယွင်းပြီး အက်ပလုဒ်တင်ခဲ့မိသည် + ယင်းသည် အများကြည့်ရှုနိုင်သည်ဟု မသိရှိခဲ့ပါ + ယင်းသည် မိမိ၏ကိုယ်ရေးကိုယ်တာလုံရေးအတွက် မကောင်းမှန်းသိလိုက်ပါပြီ + စိတ်ပြောင်းသွားပါပြီ၊ ယင်းအား အများသူငှာကြည့်ရှုနိုင်စေရန် မလိုလားတော့ပါ။ + စိတ်မကောင်းပါ ဤရုပ်ပုံသည် စွယ်စုံကျမ်းအတွက် စိတ်ဝင်စားဖွယ်မကောင်းပါ တစ်ကမ္ဘာလုံး အမေရိက ဥရောပ @@ -278,24 +316,49 @@ အာဖရိက အာရှ ပစိဖိတ် + ကဏ္ဍများ မရွေးချယ်ထားပါ ဟုတ်ကဲ့ ထည့်သွင်းမည် ဟင်းအင်း၊ ပြန်သွားမည် ဤဧရိယာကို ရှာဖွေပါ ခွင့်ပြုချက် တောင်းခံရန် နောက်တခါ ထပ်မမေးပါနှင့် + တည်နေရာခွင့်ပြုချက်ကို ပြသရန် + ပြီးဆုံးမည်- + ဤလုပ်ဆောင်ချက်သည် ကွန်ရက်ချိတ်ဆက်မှုကိုလိုအပ်သည်၊ သင်၏ချိတ်ဆက်မှု အပြင်အဆင်များကို စစ်ဆေးပါ။ + ရုပ်ပုံကို ပရိုဆက်ဆင်းလုပ်နေစဉ် အမှားဖြစ်ပွားခဲ့သည်။ ထပ်မံကြိုးစားကြည့်ပါ။ + ကဏ္ဍစစ်ဆေးမှု တောင်းဆိုနေသည် + ကဏ္ဍစစ်ဆေးမှု တောင်းဆိုခဲ့သည် ပြီးပြီ + ဆွေးနွေးချက်စာမျက်နှာပေါ်တွင် အသုံးပြုသူအား အသိပေးခြင်း မသေချာပါ + ကျေးဇူးတင်စကားပို့ခြင်း- အောင်မြင်သည် + ကျေးဇူးတင်စကားပို့ခြင်း- မအောင်မြင်ပါ ကျေးဇူးတင်မှု ပို့နေသည် ကျေးဇူးတင်မှု ပို့နေသည် %1$ အတွက် ကျေးဇူးတင်မှု ပို့နေသည် + မှန်ကန်စွာ ကဏ္ဍခွဲထားပါသလား + ဘောင်ကျော်နေပါသည် အကြောင်းမှာ + မူပိုင်ခွင့်ချိုးဖောက်မှုဖြစ်သည် အကြောင်းမှာ + အဆင်ပြေပုံပေါက်ပါသည် + ဟင့်အင်း၊ ဘောင်ကျော်နေသည် + အဆင်ပြေပုံပေါက်ပါသည် + ဟင့်အင်း၊ မူပိုင်ခွင့် ချိုးဖောက်မှု + အဆင်ပြေပုံပေါက်ပါသည် နောက်ရုပ်ပုံ မဖတ်ရသေးသော အသိပေးချက်များ မရှိပါ + မော်ကွန်းတင်ပြီးသော အသိပေးချက်များ မရှိပါ ကျေးဇူးပြု၍ ခဏစောင့်ပါ... + နမူနာရုပ်ပုံများ အက်ပလုပ်တင်ရန် မဟုတ်ပါ + ဤရုပ်ပုံအား ကျော်သွားမည် + ဒေါင်းလုဒ် မအောင်မြင်ပါ။ ပြင်ပသိုလှောင်မှုခွင့်ပြုချက်မရှိဘဲ ဖိုင်ဒေါင်းလုဒ်မဆွဲနိုင်ပါ။ ဖန်တီးသူ မူပိုင်ခွင့် တည်နေရာ ကင်မရာ မော်ဒယ် + မှန်ဘီလူး မော်ဒယ် + အစဉ်လိုက် နံပါတ်များ ဆော့ဝဲလ် ရုပ်ပုံ အချက်အလက် + ကဏ္ဍများ မတွေ့ရှိပါ %1$ ဟာ ဘာကြောင့် ဖျက်သင့်သလဲ? diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 79763b19d..c6f7eee55 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -293,4 +293,7 @@ Tak, czemu nie Następny obraz Informacje o obrazie + Nie znaleziono kategorii + Anulowano przesyłanie + Brakuje danych co do poprzedniego tytułu lub opisu obrazu diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 2d1831e72..edf0aa697 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -533,5 +533,8 @@ Faça o carregamento de fotos para o Wikimedia Commons no seu telefone ou baixe o aplicativo Commons: %1$s Compartilhar aplicativo via... Informação da imagem + Nenhuma categoria encontrada + Carregamento cancelado + Não há dados para o título ou descrição da imagem anterior Por que %1$s deve ser excluído? diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 96958bcec..f74256ff0 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -534,4 +534,8 @@ Carregar fotografias na wiki Wikimedia Commons, do seu telemóvel Descarregar a aplicação Commons: %1$s Partilhar aplicação por... Informação da imagem + Não foi encontrada nenhuma categoria + Carregamento cancelado + Não há dados para o título ou descrição da imagem anterior + Porque deve %1$s ser eliminado? diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index e05305690..bef2d37f7 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -540,5 +540,8 @@ Чтобы загружать фото на Викисклад (Wikimedia Commons), скачайте одноимённое приложение «Викисклад» (Commons): %1$s Поделиться приложением с помощью... Информация об изображении + Категории не найдены. + Загрузка отменена + Отсутствует заголовок или описание предыдущего изображения Почему %1$s должно быть удалено? diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 64003204b..11816015f 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -526,5 +526,8 @@ Ladda upp foton till Wikimedia Commons på din telefon Ladda ned Commons-appen: %1$s Dela appen via... Bildinfo + Inga kategorier hittades + Uppladdning avbröts + Det finns ingen data för den föregående bildens titel eller beskrivning Varför bör %1$s raderas? diff --git a/app/src/main/res/values-th/strings.xml b/app/src/main/res/values-th/strings.xml index 4ffe77362..6e81cbd10 100644 --- a/app/src/main/res/values-th/strings.xml +++ b/app/src/main/res/values-th/strings.xml @@ -101,7 +101,7 @@ สัญญาอนุญาตปริยาย ใช้ชื่อเรื่อง/คำอธิบายก่อนหน้านี้ รับข้อมูลตำแหน่งที่ตั้งปัจจุบันโดยอัตโนมัติ - ดึงข้อมูลตำแหน่งที่ตั้งปัจจุบันเพื่อรับข้อเสนอแนะเกี่ยวกับหมวดหมู่ถ้ารูปภาพไม่ได้ติดแท็กตำแหน่งที่ตั้งเอาไว้ + ดึงข้อมูลตำแหน่งที่ตั้งปัจจุบันเพื่อรับข้อเสนอแนะเกี่ยวกับหมวดหมู่ถ้ารูปภาพไม่ได้ติดแท็กตำแหน่งที่ตั้งเอาไว้ โหมดกลางคืน ใช้ธีมสีเข้ม Attribution-ShareAlike 4.0 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index b59fabad6..a8c492803 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -530,5 +530,8 @@ 在您的手機上更新照片到維基共享資源,下載共享資源應用程式:%1$s 分享應用程式透過… 圖片資訊 + 找不到分類 + 已取消上傳 + 前一張圖片的標題或描述沒有資料 為何應刪除%1$s? diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index 626caf242..741f818bf 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -17,6 +17,7 @@ * ZhaoGang * 佛壁灯 * 夢蝶葬花 +* 神樂坂秀吉 * 阿pp --> @@ -25,6 +26,7 @@ 外观 一般 反馈 + 隐私政策 位置 共享资源 @@ -183,6 +185,7 @@ 请求存储权限 需要权限:读取外部存储。应用不能在没有它的情况下访问您的图册。 需要权限:写入外部存储。应用不能在没有它的情况下访问您的相机/图册。 + 请求位置权限 可选权限:获取当前位置以提供分类建议 确定 附近地点 @@ -244,6 +247,7 @@ 教程 通知 特色 + 复核 附近地点不能在没有位置权限的情况下显示 找不到描述 共享资源文件页面 @@ -261,6 +265,7 @@ 这张图片是在不同的地点拍摄的。 请仅上传由您自己拍摄的图像。请勿上传您在他人的Facebook账户上所发现的图像。 仍然上传这张图片? + 请仅上传由您自己拍摄的图像。请勿上传您从互联网下载的图像。 提供权限 使用外部存储 在您的设备上,使用应用中的照相机保存照片 @@ -272,6 +277,7 @@ 提交删除 此图片已被提交删除。 <u>查看网页获取详情</u> + 提名删除:%1$s 在浏览器中预览 忽略 登录 @@ -327,6 +333,7 @@ 加载子分类时发生错误。 媒体 分类 + 通过移动端上传 图片已成功添加到维基数据上的%1$s! 更新对应维基数据实体失败! 设为壁纸 @@ -359,6 +366,7 @@ 您确认要清除您的搜索历史? 搜索历史已删除 提名删除 + 删除 成就 统计 已收到感谢 @@ -440,12 +448,32 @@ 有错误发生,无法获取你的成就 结束于: 显示活动 - 点击此处显示正在进行的活动 + 显示正在进行的活动 你不会再看到这个活动。如果需要可以在设置里重新启用此通知。 这个功能需要网络连接,请检查你的网络设置。 因为编辑令牌失效上传失败。请尝试登出后重新登录。 处理图像时出错。请再试一次! + 完成 + 在讨论页上通知用户 + 不确定 + 发送感谢成功 + 发送感谢失败 + 发送感谢 + 发送感谢 + 向%1$s发送感谢 + 它是否符合版权方针? + 它是否被正确分类? + 它是否在维基共享资源的收录范围内? + 您是否要感谢贡献者? + 标志、屏幕截图和电影海报通常侵犯版权。\n提名删除候选请点击“否”。 + 该文件未被分类! + 该文件不在收录范围内,原因是 + 该文件侵犯版权,原因是 + 否,分类错误 + 否,不在收录范围内 + 否,侵犯版权 是,为什么不呢 + 下一张图片 正在处理数据。处理时间取决于图片的尺寸和您的设备 @@ -462,6 +490,16 @@ 请稍候…… 复制先前的标题及描述 点击复用您在先前图片中填写的标题及描述并稍加修改来匹配当前图像。 + 跳过该图片 + 作者 + 著作权 + 位置 + 相机型号 + 序列号 + 软件 分享到... 图像信息 + 找不到分类 + 取消上传 + %1$s为何应被删除? diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0c6ba28f0..ac9d2e736 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -558,4 +558,5 @@ Upload your first media by tapping on the add button. Cancelled Upload There is no data for previous image\'s title or description Why should %1$s be deleted? + Default description language diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 9ab4d5f5f..cdeaa8366 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -29,6 +29,11 @@ android:inputType="number" android:maxLength="3" /> + +