diff --git a/README.md b/README.md
index 7c14d20..e61934c 100644
--- a/README.md
+++ b/README.md
@@ -68,6 +68,7 @@ By using the app, you can
* German Deutsch (de)
* French Français (fr)
* Italian Italiano (it)
+* Russian Русский (ru)
You are welcomed to help translate the app into more languages (refer to this section)
@@ -115,6 +116,7 @@ Thank you the following contributors who have made the app better!
|:-:|:-:|:-:|
| mondstern | [mondlicht-und-sterne](https://github.com/mondlicht-und-sterne) | German language translation |
| Valentino Bocchetti | [luftmensch-luftmensch](https://github.com/luftmensch-luftmensch) | Italian language translation |
+| Smooth-E | [Smooth-E](https://github.com/Smooth-E) | Russian language translation |
## Framework
diff --git a/ios/App/App.xcodeproj/project.pbxproj b/ios/App/App.xcodeproj/project.pbxproj
index da63b9f..4855368 100644
--- a/ios/App/App.xcodeproj/project.pbxproj
+++ b/ios/App/App.xcodeproj/project.pbxproj
@@ -19,6 +19,7 @@
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
+ 1B75189429375EAB00800D38 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/InfoPlist.strings; sourceTree = ""; };
2FAD9762203C412B000D30F8 /* config.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = config.xml; sourceTree = ""; };
50379B222058CBB4000EE86E /* capacitor.config.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = capacitor.config.json; sourceTree = ""; };
504EC3041FED79650016851F /* App.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = App.app; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -160,6 +161,7 @@
de,
fr,
it,
+ ru,
);
mainGroup = 504EC2FB1FED79650016851F;
productRefGroup = 504EC3051FED79650016851F /* Products */;
@@ -268,6 +270,7 @@
D26FE7F9283D1E6C002A61AE /* fr */,
D26FE7FA283D1E76002A61AE /* de */,
D29D2E2A2847C31D00566DFF /* it */,
+ 1B75189429375EAB00800D38 /* ru */,
);
name = InfoPlist.strings;
sourceTree = "";
diff --git a/ios/App/App/ru.lproj/InfoPlist.strings b/ios/App/App/ru.lproj/InfoPlist.strings
index 329502e..e18b40f 100644
--- a/ios/App/App/ru.lproj/InfoPlist.strings
+++ b/ios/App/App/ru.lproj/InfoPlist.strings
@@ -1,6 +1,6 @@
"CFBundleDisplayName" = "Simple QR";
"CFBundleName" = "Simple QR";
-"NSCameraUsageDescription" = "Simple QR uses Camera to scan QR code and barcodes";
-"NSContactsUsageDescription" = "Simple QR uses Contacts to add contact";
-"NSPhotoLibraryAddUsageDescription" = "Simple QR uses Photo Library to save QR code image";
-"NSPhotoLibraryUsageDescription" = "Simple QR uses Photo Library to import image and scan QR code";
\ No newline at end of file
+"NSCameraUsageDescription" = "Simple QR использует камеру для сканирования QR-кода и штрих-кодов";
+"NSContactsUsageDescription" = "Simple QR использует Контакты для добавления контакта";
+"NSPhotoLibraryAddUsageDescription" = "Simple QR использует библиотеку фотографий для сохранения изображения QR-кода";
+"NSPhotoLibraryUsageDescription" = "Simple QR использует библиотеку фотографий для импорта изображений и сканирования QR-кода.";
diff --git a/src/app/pages/history/history.page.ts b/src/app/pages/history/history.page.ts
index 5ed56ca..4e580c8 100644
--- a/src/app/pages/history/history.page.ts
+++ b/src/app/pages/history/history.page.ts
@@ -3,7 +3,7 @@ import { ActivatedRoute, Router } from '@angular/router';
import { AlertController, IonItemSliding, LoadingController, ModalController, PopoverController, ToastController } from '@ionic/angular';
import { EnvService } from 'src/app/services/env.service';
import { format, Locale } from 'date-fns';
-import { de, enUS, fr, it, zhCN, zhHK } from 'date-fns/locale';
+import { de, enUS, fr, it, ru, zhCN, zhHK } from 'date-fns/locale';
import { ScanRecord } from 'src/app/models/scan-record';
import { TranslateService } from '@ngx-translate/core';
import { Bookmark } from 'src/app/models/bookmark';
@@ -138,6 +138,9 @@ export class HistoryPage {
case "it":
locale = it;
break;
+ case "ru":
+ locale = ru;
+ break;
case "zh-CN":
locale = zhCN;
break;
diff --git a/src/app/pages/setting-language/setting-language.page.html b/src/app/pages/setting-language/setting-language.page.html
index 2ca182a..848d3bd 100644
--- a/src/app/pages/setting-language/setting-language.page.html
+++ b/src/app/pages/setting-language/setting-language.page.html
@@ -19,8 +19,7 @@
-
+
@@ -31,8 +30,7 @@
-
+
@@ -43,8 +41,7 @@
-
+
@@ -55,8 +52,7 @@
-
+
@@ -67,32 +63,7 @@
-
-
-
-
-
-
-
- 中文 (香港) (zh-HK)
-
-
-
-
-
-
-
-
-
-
- 简体中文 (zh-CN)
-
-
-
-
+
@@ -103,8 +74,29 @@
-
+
+
+
+
+
+
+
+ 中文 (香港) (zh-HK)
+
+
+
+
+
+
+
+
+
+
+ 简体中文 (zh-CN)
+
+
+
+
diff --git a/src/app/pages/setting-record/setting-record.page.ts b/src/app/pages/setting-record/setting-record.page.ts
index 5b7afee..b9ca1d8 100644
--- a/src/app/pages/setting-record/setting-record.page.ts
+++ b/src/app/pages/setting-record/setting-record.page.ts
@@ -13,7 +13,7 @@ import { Bookmark } from 'src/app/models/bookmark';
import { SocialSharing } from '@awesome-cordova-plugins/social-sharing/ngx';
import { Haptics, ImpactStyle } from '@capacitor/haptics';
import { Preferences } from '@capacitor/preferences';
-import { de, enUS, fr, it, zhCN, zhHK } from 'date-fns/locale';
+import { de, enUS, fr, it, ru, zhCN, zhHK } from 'date-fns/locale';
@Component({
selector: 'app-setting-record',
@@ -316,6 +316,9 @@ export class SettingRecordPage {
case "it":
rawCsvData = "ID,Contenuto,Creato a,Fonte,Tipo di codice a barre,Aggiunto ai preferiti?,Etichetta\r\n";
break;
+ case "ru":
+ rawCsvData = "ID,Содержание,Создано в,Источник,Тип штрих-кода,В закладках?,Ярлык\r\n";
+ break;
case "zh-CN":
rawCsvData = "ID,内容,建立于,来源,条码类型,已书签?,标签\r\n";
break;
@@ -471,6 +474,9 @@ export class SettingRecordPage {
case "it":
locale = it;
break;
+ case "ru":
+ locale = ru;
+ break;
case "zh-CN":
locale = zhCN;
break;
@@ -501,6 +507,9 @@ export class SettingRecordPage {
case "it":
locale = it;
break;
+ case "ru":
+ locale = ru;
+ break;
case "zh-CN":
locale = zhCN;
break;
diff --git a/src/app/services/env.service.ts b/src/app/services/env.service.ts
index b077dea..f68c24a 100644
--- a/src/app/services/env.service.ts
+++ b/src/app/services/env.service.ts
@@ -15,7 +15,7 @@ import { v4 as uuidv4 } from 'uuid';
import { Preferences } from '@capacitor/preferences';
import { Observable } from 'rxjs';
-export declare type LanguageType = 'de' | 'en' | 'fr' | 'it' | 'zh-CN' | 'zh-HK';
+export declare type LanguageType = 'de' | 'en' | 'fr' | 'it' | 'ru' | 'zh-CN' | 'zh-HK';
export declare type TabPageType = "/tabs/scan" | "/tabs/generate" | "/tabs/import-image" | "/tabs/history" | "/tabs/setting";
export declare type HistoryPageSegmentType = 'history' | 'bookmarks';
export declare type OnOffType = "on" | "off";
@@ -1615,6 +1615,9 @@ export class EnvService {
case "it":
language = "it"
break;
+ case "ru":
+ language = "ru"
+ break;
case "zh":
if (browserCultureLang == 'zh-CN' || browserCultureLang == 'zh-SG') {
language = 'zh-CN';
diff --git a/src/assets/i18n/ru.json b/src/assets/i18n/ru.json
index a759448..4fb9821 100644
--- a/src/assets/i18n/ru.json
+++ b/src/assets/i18n/ru.json
@@ -311,4 +311,4 @@
"UPDATE_NOTES_ANDROID": "В этом релизе вас ждет несколько обновлений и новых функций. Посетите GitHub проекта, чтобы узнать детали.
",
"UPDATE_NOTES_IOS": "В этом релизе вас ждет несколько обновлений и новых функций. Посетите GitHub проекта, чтобы узнать детали.
"
}
-}
+}
\ No newline at end of file