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