diff --git a/README.md b/README.md index df4b242e..990a9395 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,7 @@ Please **do not** create a pull request to update translation. tooot's translati ## Special thanks +- [@dzmitry.zubialevich](https://crowdin.com/profile/dzmitry.zubialevich) for Belarusian translation - [@amrtf](https://crowdin.com/profile/amrtf) for Catalan and Spanish translation - [@forenta](https://github.com/forenta) for German translation - [@pat](https://piaille.fr/@pat) for French translation diff --git a/fastlane/metadata/en-US/release_notes.txt b/fastlane/metadata/en-US/release_notes.txt index 4745108d..da253fd4 100644 --- a/fastlane/metadata/en-US/release_notes.txt +++ b/fastlane/metadata/en-US/release_notes.txt @@ -1,4 +1,2 @@ Enjoy toooting! This version includes following improvements and fixes: -- Added following remote instance -- Added set note of followed users -- Best effort load remote user's toots \ No newline at end of file +- Added Belarusian language \ No newline at end of file diff --git a/fastlane/metadata/zh-Hans/release_notes.txt b/fastlane/metadata/zh-Hans/release_notes.txt index 97fbf0b1..81692af7 100644 --- a/fastlane/metadata/zh-Hans/release_notes.txt +++ b/fastlane/metadata/zh-Hans/release_notes.txt @@ -1,4 +1,2 @@ toooting愉快!此版本包括以下改进和修复: -- 新增关注远程实例功能 -- 新增关注用户备注功能 -- 加载远程用户的嘟文 \ No newline at end of file +- 新增白俄罗斯语 \ No newline at end of file diff --git a/ios/be.lproj/InfoPlist.strings b/ios/be.lproj/InfoPlist.strings new file mode 100644 index 00000000..497aa364 --- /dev/null +++ b/ios/be.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +"NSPhotoLibraryAddUsageDescription" = "Дазвольце tooot захоўваць выявы ў папку камеры"; +"NSPhotoLibraryUsageDescription" = "Дазвольце tooot захоўваць выявы ў папку камеры"; diff --git a/ios/tooot.xcodeproj/project.pbxproj b/ios/tooot.xcodeproj/project.pbxproj index c50b04c7..c7998199 100644 --- a/ios/tooot.xcodeproj/project.pbxproj +++ b/ios/tooot.xcodeproj/project.pbxproj @@ -70,6 +70,7 @@ AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = SplashScreen.storyboard; path = tooot/SplashScreen.storyboard; sourceTree = ""; }; DF8133F098604A10B0D94952 /* boop.mp3 */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = boop.mp3; path = tooot/boop.mp3; sourceTree = ""; }; E613A80A28282A01003C97D6 /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = tooot/AppDelegate.mm; sourceTree = ""; }; + E6179D6E29B94551001930D5 /* be */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = be; path = be.lproj/InfoPlist.strings; sourceTree = ""; }; E6217B7E293C1EBF00B1755E /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/InfoPlist.strings; sourceTree = ""; }; E633A420281EAEAB000E540F /* ShareExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = ShareExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; E633A427281EAEAB000E540F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -302,6 +303,7 @@ ca, uk, nb, + be, ); mainGroup = 83CBB9F61A601CBA00E9B192; productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; @@ -536,6 +538,7 @@ E6A4895D293C1F740047951A /* ca */, E6D64C7A294A90840098F3AC /* uk */, E6FD3AA7299EE8A900774C18 /* nb */, + E6179D6E29B94551001930D5 /* be */, ); name = InfoPlist.strings; sourceTree = ""; diff --git a/src/i18n/be/index.ts b/src/i18n/be/index.ts new file mode 100644 index 00000000..61e0f840 --- /dev/null +++ b/src/i18n/be/index.ts @@ -0,0 +1,17 @@ +export default { + common: require('./common'), + + screens: require('./screens'), + screenAnnouncements: require('./screens/announcements'), + screenCompose: require('./screens/compose'), + screenImageViewer: require('./screens/imageViewer'), + screenTabs: require('./screens/tabs'), + + componentContextMenu: require('./components/contextMenu'), + componentEmojis: require('./components/emojis'), + componentInstance: require('./components/instance'), + componentMediaSelector: require('./components/mediaSelector'), + componentParse: require('./components/parse'), + componentRelationship: require('./components/relationship'), + componentTimeline: require('./components/timeline') +} diff --git a/src/i18n/index.ts b/src/i18n/index.ts index afddb696..4cb4b8a8 100644 --- a/src/i18n/index.ts +++ b/src/i18n/index.ts @@ -2,6 +2,7 @@ import * as Localization from 'expo-localization' import i18n from 'i18next' import { initReactI18next } from 'react-i18next' +import be from './be' import ca from './ca' import de from './de' import en from './en' @@ -23,6 +24,7 @@ import '@formatjs/intl-getcanonicallocales/polyfill' import '@formatjs/intl-locale/polyfill' import '@formatjs/intl-pluralrules/polyfill' +import '@formatjs/intl-pluralrules/locale-data/be' import '@formatjs/intl-pluralrules/locale-data/ca' import '@formatjs/intl-pluralrules/locale-data/de' import '@formatjs/intl-pluralrules/locale-data/en' @@ -40,6 +42,7 @@ import '@formatjs/intl-pluralrules/locale-data/vi' import '@formatjs/intl-pluralrules/locale-data/zh' import '@formatjs/intl-numberformat/polyfill' +import '@formatjs/intl-numberformat/locale-data/be' import '@formatjs/intl-numberformat/locale-data/ca' import '@formatjs/intl-numberformat/locale-data/de' import '@formatjs/intl-numberformat/locale-data/en' @@ -59,6 +62,7 @@ import '@formatjs/intl-numberformat/locale-data/zh-Hant' import '@formatjs/intl-datetimeformat/polyfill' import '@formatjs/intl-datetimeformat/add-all-tz' +import '@formatjs/intl-datetimeformat/locale-data/be' import '@formatjs/intl-datetimeformat/locale-data/ca' import '@formatjs/intl-datetimeformat/locale-data/de' import '@formatjs/intl-datetimeformat/locale-data/en' @@ -77,6 +81,7 @@ import '@formatjs/intl-datetimeformat/locale-data/zh-Hans' import '@formatjs/intl-datetimeformat/locale-data/zh-Hant' import '@formatjs/intl-relativetimeformat/polyfill' +import '@formatjs/intl-relativetimeformat/locale-data/be' import '@formatjs/intl-relativetimeformat/locale-data/ca' import '@formatjs/intl-relativetimeformat/locale-data/de' import '@formatjs/intl-relativetimeformat/locale-data/en' @@ -102,6 +107,7 @@ i18n.use(initReactI18next).init({ defaultNS: 'common', resources: { + be, ca, de, en, diff --git a/src/i18n/locales.ts b/src/i18n/locales.ts index 153f9dc5..be97db67 100644 --- a/src/i18n/locales.ts +++ b/src/i18n/locales.ts @@ -1,4 +1,5 @@ const LOCALES = { + be: 'Беларуская', ca: 'Català', de: 'Deutsch', en: 'English',