From b3d5be23f259bbfef8dad813a9302e77f6fdc19f Mon Sep 17 00:00:00 2001
From: Soren Stoutner
Date: Mon, 30 Jul 2018 13:32:06 -0700
Subject: [PATCH] Fix Russian plurals. https://redmine.stoutner.com/issues/291
---
.../main/assets/es/guide_requests_dark.html | 7 ++--
.../main/assets/es/guide_requests_light.html | 7 ++--
.../main/assets/ru/guide_requests_dark.html | 5 ++-
.../main/assets/ru/guide_requests_light.html | 5 ++-
.../activities/BookmarksActivity.java | 40 +++++++++++++++++--
app/src/main/res/values-de/strings.xml | 6 +++
app/src/main/res/values-es/strings.xml | 6 +++
app/src/main/res/values-it/strings.xml | 6 +++
app/src/main/res/values-ru/strings.xml | 6 +++
app/src/main/res/values/strings.xml | 6 +++
10 files changed, 80 insertions(+), 14 deletions(-)
diff --git a/app/src/main/assets/es/guide_requests_dark.html b/app/src/main/assets/es/guide_requests_dark.html
index cdab0599..4f940c61 100644
--- a/app/src/main/assets/es/guide_requests_dark.html
+++ b/app/src/main/assets/es/guide_requests_dark.html
@@ -34,7 +34,7 @@
- Navegador Privado incluye cuatro listas de bloqueo basadas en la sintaxis de Adblock:
+
Navegador Privado incluye cuatro listas de bloqueo comunes basadas en la sintaxis de Adblock:
EasyList, EasyPrivacy, Lista molesta de Fanboy y Lista de bloqueo social de Fanboy.
Estas listas de bloqueo son procesadas por Navegador Privado en las siguientes 22 sublistas, que verifican las solicitudes de recursos en el orden listado.
@@ -73,8 +73,9 @@
Esto puede conducir a veces a falsos positivos, en los que los recursos se permiten o bloquean de formas que no estaban previstas en la entrada original.
Una descripción más detallada de cómo se procesan las entradas de la lista de bloqueo está disponible en stoutner.com.
- Navegador Privado tiene una quinta lista de bloqueo que bloquea todas las solicitudes de terceras partes.
- Una solicitud sólo se considera de terceras partes si el dominio base de la solicitud es diferente del dominio base de la URL.
+
Navegador Privado tiene 2 listas de bloqueo adicionales,
+ una llamada Ultra Privacidad que bloquea rastreadores que permite EasyPrivacy,
+ y otra que bloquea todas las solicitudes de terceras partes. Una solicitud sólo se considera de terceras partes si el dominio base de la solicitud es diferente del dominio base de la URL.
Por ejemplo, si www.website.com
carga una imagen de images.website.com
,
esto no se bloquea como petición de una tercera parte porque ambos comparten el mismo dominio base de website.com
.
El bloqueo de todas las solicitudes de terceras partes aumenta la privacidad, pero esta lista de bloqueo está desactivada por defecto porque rompe un gran número de páginas web.
diff --git a/app/src/main/assets/es/guide_requests_light.html b/app/src/main/assets/es/guide_requests_light.html
index b162ed18..cbca21f0 100644
--- a/app/src/main/assets/es/guide_requests_light.html
+++ b/app/src/main/assets/es/guide_requests_light.html
@@ -34,7 +34,7 @@
- Navegador Privado incluye cuatro listas de bloqueo basadas en la sintaxis de Adblock:
+
Navegador Privado incluye cuatro listas de bloqueo comunes basadas en la sintaxis de Adblock:
EasyList, EasyPrivacy, Lista molesta de Fanboy y Lista de bloqueo social de Fanboy.
Estas listas de bloqueo son procesadas por Navegador Privado en las siguientes 22 sublistas, que verifican las solicitudes de recursos en el orden listado.
@@ -73,8 +73,9 @@
Esto puede conducir a veces a falsos positivos, en los que los recursos se permiten o bloquean de formas que no estaban previstas en la entrada original.
Una descripción más detallada de cómo se procesan las entradas de la lista de bloqueo está disponible en stoutner.com.
- Navegador Privado tiene una quinta lista de bloqueo que bloquea todas las solicitudes de terceras partes.
- Una solicitud sólo se considera de terceras partes si el dominio base de la solicitud es diferente del dominio base de la URL.
+
Navegador Privado tiene 2 listas de bloqueo adicionales,
+ una llamada Ultra Privacidad que bloquea rastreadores que permite EasyPrivacy,
+ y otra que bloquea todas las solicitudes de terceras partes. Una solicitud sólo se considera de terceras partes si el dominio base de la solicitud es diferente del dominio base de la URL.
Por ejemplo, si www.website.com
carga una imagen de images.website.com
,
esto no se bloquea como petición de una tercera parte porque ambos comparten el mismo dominio base de website.com
.
El bloqueo de todas las solicitudes de terceras partes aumenta la privacidad, pero esta lista de bloqueo está desactivada por defecto porque rompe un gran número de páginas web.
diff --git a/app/src/main/assets/ru/guide_requests_dark.html b/app/src/main/assets/ru/guide_requests_dark.html
index 09ac13cc..6cb8bc20 100644
--- a/app/src/main/assets/ru/guide_requests_dark.html
+++ b/app/src/main/assets/ru/guide_requests_dark.html
@@ -32,7 +32,7 @@
- Privacy Browser вклÑÑÐ°ÐµÑ Ð² ÑÐµÐ±Ñ ÑеÑÑÑе ÑпиÑка блокиÑовки, оÑнованнÑÑ
на ÑинÑакÑиÑе Adblock:
+
Privacy Browser вклÑÑÐ°ÐµÑ Ð² ÑÐµÐ±Ñ ÑеÑÑÑе ÑаÑпÑоÑÑÑаненнÑÑ
ÑпиÑка блокиÑовки, оÑнованнÑÑ
на ÑинÑакÑиÑе Adblock:
EasyList, EasyPrivacy, Fanboyâs Annoyance List, и Fanboyâs Social Blocking List.
ÐÑи ÑпиÑки блокиÑовки обÑабаÑÑваÑÑÑÑ Privacy Browser в ÑледÑÑÑиÑ
22 подÑпиÑкаÑ
, коÑоÑÑе пÑовеÑÑÑÑ Ð·Ð°Ð¿ÑоÑÑ ÑеÑÑÑÑов в Ñказанном поÑÑдке.
@@ -71,7 +71,8 @@
Ðногда ÑÑо Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑивеÑÑи к ложнÑм ÑÑабаÑÑваниÑм, когда ÑеÑÑÑÑÑ ÑазÑеÑаÑÑÑÑ Ð¸Ð»Ð¸ блокиÑÑÑÑÑÑ ÑпоÑобами, коÑоÑÑе не бÑли пÑедназнаÑÐµÐ½Ñ Ð´Ð»Ñ Ð¸ÑÑ
одной запиÑи.
Ðолее подÑобное опиÑание ÑпоÑоба обÑабоÑки запиÑей ÑпиÑка блокиÑовки доÑÑÑпно на stoutner.com.
- Privacy Browser Ð¸Ð¼ÐµÐµÑ Ð¿ÑÑÑй ÑпиÑок блокиÑовки, блокиÑÑÑÑий вÑе ÑÑоÑонние запÑоÑÑ. ÐапÑÐ¾Ñ ÑÑиÑаеÑÑÑ ÑÑоÑонним, ÑолÑко еÑли базовÑй домен запÑоÑа оÑлиÑаеÑÑÑ Ð¾Ñ Ð±Ð°Ð·Ð¾Ð²Ð¾Ð³Ð¾ домена URL-адÑеÑа.
+
Privacy Browser Ð¸Ð¼ÐµÐµÑ Ð´Ð²Ð° дополниÑелÑнÑÑ
ÑпиÑка блокиÑовки, один из коÑоÑÑÑ
UltraPrivacy,
+ пÑедназнаÑенÑй Ð´Ð»Ñ Ð±Ð»Ð¾ÐºÐ¸Ñовки ÑÑекеÑов, коÑоÑÑе EasyPrivacy ÑазÑеÑаеÑ, а дÑÑгой блокиÑÑÐµÑ Ð²Ñе ÑÑоÑонние запÑоÑÑ.
ÐапÑимеÑ, еÑли www.website.com
загÑÑÐ¶Ð°ÐµÑ Ð¸Ð·Ð¾Ð±Ñажение Ñ ÑайÑа images.website.com
,
запÑÐ¾Ñ Ð½Ðµ бÑÐ´ÐµÑ ÑÑиÑаÑÑÑÑ ÑÑоÑонним и не бÑÐ´ÐµÑ Ð·Ð°Ð±Ð»Ð¾ÐºÐ¸Ñован, Ñак как они оба иÑполÑзÑÑÑ Ð¾Ð´Ð¸Ð½ и ÑÐ¾Ñ Ð¶Ðµ базовÑй домен website.com
.
ÐлокиÑовка вÑеÑ
ÑÑоÑонниÑ
запÑоÑов ÑвелиÑÐ¸Ð²Ð°ÐµÑ ÐºÐ¾Ð½ÑиденÑиалÑноÑÑÑ, но ÑÑÐ¾Ñ ÑпиÑок блокиÑовки по ÑмолÑÐ°Ð½Ð¸Ñ Ð¾ÑклÑÑен, поÑколÑÐºÑ Ð¾Ð½ Ð»Ð¾Ð¼Ð°ÐµÑ Ð±Ð¾Ð»ÑÑое колиÑеÑÑво веб-ÑайÑов.
diff --git a/app/src/main/assets/ru/guide_requests_light.html b/app/src/main/assets/ru/guide_requests_light.html
index 542377b3..56af5356 100644
--- a/app/src/main/assets/ru/guide_requests_light.html
+++ b/app/src/main/assets/ru/guide_requests_light.html
@@ -32,7 +32,7 @@
- Privacy Browser вклÑÑÐ°ÐµÑ Ð² ÑÐµÐ±Ñ ÑеÑÑÑе ÑпиÑка блокиÑовки, оÑнованнÑÑ
на ÑинÑакÑиÑе Adblock:
+
Privacy Browser вклÑÑÐ°ÐµÑ Ð² ÑÐµÐ±Ñ ÑеÑÑÑе ÑаÑпÑоÑÑÑаненнÑÑ
ÑпиÑка блокиÑовки, оÑнованнÑÑ
на ÑинÑакÑиÑе Adblock:
EasyList, EasyPrivacy, Fanboyâs Annoyance List, и Fanboyâs Social Blocking List.
ÐÑи ÑпиÑки блокиÑовки обÑабаÑÑваÑÑÑÑ Privacy Browser в ÑледÑÑÑиÑ
22 подÑпиÑкаÑ
, коÑоÑÑе пÑовеÑÑÑÑ Ð·Ð°Ð¿ÑоÑÑ ÑеÑÑÑÑов в Ñказанном поÑÑдке.
@@ -71,7 +71,8 @@
Ðногда ÑÑо Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑивеÑÑи к ложнÑм ÑÑабаÑÑваниÑм, когда ÑеÑÑÑÑÑ ÑазÑеÑаÑÑÑÑ Ð¸Ð»Ð¸ блокиÑÑÑÑÑÑ ÑпоÑобами, коÑоÑÑе не бÑли пÑедназнаÑÐµÐ½Ñ Ð´Ð»Ñ Ð¸ÑÑ
одной запиÑи.
Ðолее подÑобное опиÑание ÑпоÑоба обÑабоÑки запиÑей ÑпиÑка блокиÑовки доÑÑÑпно на stoutner.com.
- Privacy Browser Ð¸Ð¼ÐµÐµÑ Ð¿ÑÑÑй ÑпиÑок блокиÑовки, блокиÑÑÑÑий вÑе ÑÑоÑонние запÑоÑÑ. ÐапÑÐ¾Ñ ÑÑиÑаеÑÑÑ ÑÑоÑонним, ÑолÑко еÑли базовÑй домен запÑоÑа оÑлиÑаеÑÑÑ Ð¾Ñ Ð±Ð°Ð·Ð¾Ð²Ð¾Ð³Ð¾ домена URL-адÑеÑа.
+
Privacy Browser Ð¸Ð¼ÐµÐµÑ Ð´Ð²Ð° дополниÑелÑнÑÑ
ÑпиÑка блокиÑовки, один из коÑоÑÑÑ
UltraPrivacy,
+ пÑедназнаÑенÑй Ð´Ð»Ñ Ð±Ð»Ð¾ÐºÐ¸Ñовки ÑÑекеÑов, коÑоÑÑе EasyPrivacy ÑазÑеÑаеÑ, а дÑÑгой блокиÑÑÐµÑ Ð²Ñе ÑÑоÑонние запÑоÑÑ.
ÐапÑимеÑ, еÑли www.website.com
загÑÑÐ¶Ð°ÐµÑ Ð¸Ð·Ð¾Ð±Ñажение Ñ ÑайÑа images.website.com
,
запÑÐ¾Ñ Ð½Ðµ бÑÐ´ÐµÑ ÑÑиÑаÑÑÑÑ ÑÑоÑонним и не бÑÐ´ÐµÑ Ð·Ð°Ð±Ð»Ð¾ÐºÐ¸Ñован, Ñак как они оба иÑполÑзÑÑÑ Ð¾Ð´Ð¸Ð½ и ÑÐ¾Ñ Ð¶Ðµ базовÑй домен website.com
.
ÐлокиÑовка вÑеÑ
ÑÑоÑонниÑ
запÑоÑов ÑвелиÑÐ¸Ð²Ð°ÐµÑ ÐºÐ¾Ð½ÑиденÑиалÑноÑÑÑ, но ÑÑÐ¾Ñ ÑпиÑок блокиÑовки по ÑмолÑÐ°Ð½Ð¸Ñ Ð¾ÑклÑÑен, поÑколÑÐºÑ Ð¾Ð½ Ð»Ð¾Ð¼Ð°ÐµÑ Ð±Ð¾Ð»ÑÑое колиÑеÑÑво веб-ÑайÑов.
diff --git a/app/src/main/java/com/stoutner/privacybrowser/activities/BookmarksActivity.java b/app/src/main/java/com/stoutner/privacybrowser/activities/BookmarksActivity.java
index 9f4231ab..c822e0e7 100644
--- a/app/src/main/java/com/stoutner/privacybrowser/activities/BookmarksActivity.java
+++ b/app/src/main/java/com/stoutner/privacybrowser/activities/BookmarksActivity.java
@@ -270,8 +270,24 @@ public class BookmarksActivity extends AppCompatActivity implements CreateBookma
// Update the enabled status of the move icons.
updateMoveIcons();
} else { // More than one bookmark is selected.
- // List the number of selected bookmarks in the subtitle.
- mode.setSubtitle(numberOfSelectedBookmarks + " " + getString(R.string.selected));
+ // List the number of selected bookmarks according to the language.
+ if (getString(R.string.android_asset_path).equals("ru")) { // The Russian translation is used.
+ // Convert the number of selected bookmarks to a string.
+ String numberOfSelectedBookmarksString = String.valueOf(numberOfSelectedBookmarks);
+
+ // Russian follows rule #7 at .
+ if (numberOfSelectedBookmarksString.endsWith("1") && !numberOfSelectedBookmarksString.equals("11")) { // Ends in 1.
+ mode.setSubtitle(numberOfSelectedBookmarks + " " + getString(R.string.selected_russian_ends_in_1));
+ } else if ((numberOfSelectedBookmarksString.endsWith("2") || numberOfSelectedBookmarksString.endsWith("3") || numberOfSelectedBookmarksString.endsWith("4")) &&
+ !numberOfSelectedBookmarksString.equals("12") && !numberOfSelectedBookmarksString.equals("13") && !numberOfSelectedBookmarksString.equals("14")) { // Ends in 2-4.
+ mode.setSubtitle(numberOfSelectedBookmarks + " " + getString(R.string.selected_russian_ends_in_2));
+ } else { // Everything else.
+ mode.setSubtitle(numberOfSelectedBookmarks + " " + getString(R.string.selected_russian_everything_else));
+ }
+ } else { // Another language is used.
+ // List the number of selected bookmarks in the subtitle.
+ mode.setSubtitle(numberOfSelectedBookmarks + " " + getString(R.string.selected));
+ }
// Hide non-applicable `MenuItems`.
moveBookmarkUpMenuItem.setVisible(false);
@@ -447,11 +463,27 @@ public class BookmarksActivity extends AppCompatActivity implements CreateBookma
// Instantiate `snackbarMessage`.
String snackbarMessage;
- // Determine how many items are in the array and prepare an appropriate `Snackbar` message.
+ // Determine how many items are in the array and prepare an appropriate snackbar message.
if (selectedBookmarksIdsLongArray.length == 1) {
snackbarMessage = getString(R.string.one_bookmark_deleted);
} else {
- snackbarMessage = selectedBookmarksIdsLongArray.length + " " + getString(R.string.bookmarks_deleted);
+ // Prepare a snackbar according to the language.
+ if (getString(R.string.android_asset_path).equals("ru")) { // The Russian translation is used.
+ // Convert the number of selected bookmarks to a string.
+ String numberOfBookmarksString = String.valueOf(selectedBookmarksIdsLongArray.length);
+
+ // Russian follows rule #7 at .
+ if (numberOfBookmarksString.endsWith("1") && !numberOfBookmarksString.equals("11")) { // Ends in 1.
+ snackbarMessage = numberOfBookmarksString + " " + getString(R.string.bookmarks_deleted_russian_ends_in_1);
+ } else if ((numberOfBookmarksString.endsWith("2") || numberOfBookmarksString.endsWith("3") || numberOfBookmarksString.endsWith("4")) &&
+ !numberOfBookmarksString.equals("12") && !numberOfBookmarksString.equals("13") && !numberOfBookmarksString.equals("14")) { // Ends in 2-4.
+ snackbarMessage = numberOfBookmarksString + " " + getString(R.string.bookmarks_deleted_russian_ends_in_2);
+ } else { // Everything else.
+ snackbarMessage = numberOfBookmarksString + " " + getString(R.string.bookmarks_deleted_russian_everything_else);
+ }
+ } else { // Another language is used.
+ snackbarMessage = selectedBookmarksIdsLongArray.length + " " + getString(R.string.bookmarks_deleted);
+ }
}
// Show a SnackBar.
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index 655387a4..03ccd1fe 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -202,6 +202,9 @@
1 Ausgewählt
Ausgewählt
+ вÑбÑана
+ вÑбÑанÑ
+ вÑбÑано
Nach oben verschieben
Nach unten verschieben
Bearbeiten
@@ -209,6 +212,9 @@
Alle auswählen
1 Lesezeichen gelöscht
Lesezeichen gelöscht
+ закладка Ñдалена
+ закладки ÑдаленÑ
+ акладок Ñдалено
Rückgängig
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index 6acb8b38..7620f054 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -206,6 +206,9 @@
1 seleccionado
seleccionados
+ вÑбÑана
+ вÑбÑанÑ
+ вÑбÑано
Subir
Bajar
Editar
@@ -213,6 +216,9 @@
Selectionar todo
1 favorito borrado
favoritos borrados
+ закладка Ñдалена
+ закладки ÑдаленÑ
+ акладок Ñдалено
Deshacer
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index 1b7f3b75..6c061ede 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -205,6 +205,9 @@
1 Selezionato
Selezionato
+ вÑбÑана
+ вÑбÑанÑ
+ вÑбÑано
Sposta sopra
Sposta sotto
Modifica
@@ -212,6 +215,9 @@
Seleziona tutto
1 Segnalibro eliminato
Segnalibri eliminati
+ закладка Ñдалена
+ закладки ÑдаленÑ
+ акладок Ñдалено
Annulla
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index f92f45a3..1b48b260 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -206,6 +206,9 @@
1 вÑбÑана
вÑбÑанÑ
+ вÑбÑана
+ вÑбÑанÑ
+ вÑбÑано
ÐвеÑÑ
Ðниз
ÐзмениÑÑ
@@ -213,6 +216,9 @@
ÐÑбÑаÑÑ Ð²Ñе
1 закладка Ñдалена
закладок ÑдаленÑ
+ закладка Ñдалена
+ закладки ÑдаленÑ
+ акладок Ñдалено
ÐеÑнÑÑÑ
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index a317123a..d2501854 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -207,6 +207,9 @@
1 Selected
Selected
+ вÑбÑана
+ вÑбÑанÑ
+ вÑбÑано
Move Up
Move Down
Edit
@@ -214,6 +217,9 @@
Select All
1 Bookmark Deleted
Bookmarks Deleted
+ закладка Ñдалена
+ закладки ÑдаленÑ
+ акладок Ñдалено
Undo
--
2.45.2