diff --git a/README.md b/README.md index 2f08724a..ed0da06d 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,8 @@ Please **do not** create a pull request to update translation. tooot's translati [@luizpicolo](https://github.com/luizpicolo) for Brazilian Portuguese +[@janlindblom](https://github.com/janlindblom) for Swedish + [@duy@mas.to](https://mas.to/@duy) for Vietnamese translation [@jimmyorz](https://github.com/jimmyorz) for Traditional Chinese translation diff --git a/ios/sv.lproj/InfoPlist.strings b/ios/sv.lproj/InfoPlist.strings new file mode 100644 index 00000000..ee44b7bd --- /dev/null +++ b/ios/sv.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +"NSPhotoLibraryAddUsageDescription" = "Låt toooot spara bilder på din kamerarulle"; +"NSPhotoLibraryUsageDescription" = "Låt toooot spara bilder på din kamerarulle"; diff --git a/ios/tooot.xcodeproj/project.pbxproj b/ios/tooot.xcodeproj/project.pbxproj index e2d6ab42..6af87ad9 100644 --- a/ios/tooot.xcodeproj/project.pbxproj +++ b/ios/tooot.xcodeproj/project.pbxproj @@ -76,6 +76,7 @@ E633A427281EAEAB000E540F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; E633A42F281EAF38000E540F /* ShareViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ShareViewController.swift; path = "../../node_modules/react-native-share-menu/ios/ShareViewController.swift"; sourceTree = ""; }; E633A431281EB55C000E540F /* ShareExtension-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ShareExtension-Bridging-Header.h"; sourceTree = ""; }; + E63E7FF0292A828100C76FD4 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/InfoPlist.strings; sourceTree = ""; }; E66C0842291F095800DFFF60 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/InfoPlist.strings; sourceTree = ""; }; E671BDF8290EAFB800287BD0 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/InfoPlist.strings"; sourceTree = ""; }; E690AF692926B737002C38A8 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = ""; }; @@ -295,6 +296,7 @@ "zh-Hant", fr, es, + sv, ); mainGroup = 83CBB9F61A601CBA00E9B192; productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; @@ -525,6 +527,7 @@ E671BDF8290EAFB800287BD0 /* zh-Hant */, E66C0842291F095800DFFF60 /* fr */, E690AF692926B737002C38A8 /* es */, + E63E7FF0292A828100C76FD4 /* sv */, ); name = InfoPlist.strings; sourceTree = ""; diff --git a/src/i18n/i18n.ts b/src/i18n/i18n.ts index 45b4edeb..a1b0073c 100644 --- a/src/i18n/i18n.ts +++ b/src/i18n/i18n.ts @@ -9,6 +9,7 @@ import it from '@root/i18n/it' import ja from '@root/i18n/ja' import ko from '@root/i18n/ko' import pt_BR from '@root/i18n/pt_BR' +import sv from '@root/i18n/sv' import vi from '@root/i18n/vi' import zh_Hans from '@root/i18n/zh-Hans' import zh_Hant from '@root/i18n/zh-Hant' @@ -25,6 +26,7 @@ import '@formatjs/intl-pluralrules/locale-data/it' import '@formatjs/intl-pluralrules/locale-data/ja' import '@formatjs/intl-pluralrules/locale-data/ko' import '@formatjs/intl-pluralrules/locale-data/pt' +import '@formatjs/intl-pluralrules/locale-data/sv' import '@formatjs/intl-pluralrules/locale-data/vi' import '@formatjs/intl-pluralrules/locale-data/zh' @@ -37,6 +39,7 @@ import '@formatjs/intl-numberformat/locale-data/it' import '@formatjs/intl-numberformat/locale-data/ja' import '@formatjs/intl-numberformat/locale-data/ko' import '@formatjs/intl-numberformat/locale-data/pt' +import '@formatjs/intl-numberformat/locale-data/sv' import '@formatjs/intl-numberformat/locale-data/vi' import '@formatjs/intl-numberformat/locale-data/zh-Hans' import '@formatjs/intl-numberformat/locale-data/zh-Hant' @@ -50,6 +53,7 @@ import '@formatjs/intl-datetimeformat/locale-data/it' import '@formatjs/intl-datetimeformat/locale-data/ja' import '@formatjs/intl-datetimeformat/locale-data/ko' import '@formatjs/intl-datetimeformat/locale-data/pt' +import '@formatjs/intl-datetimeformat/locale-data/sv' import '@formatjs/intl-datetimeformat/locale-data/vi' import '@formatjs/intl-datetimeformat/locale-data/zh-Hans' import '@formatjs/intl-datetimeformat/locale-data/zh-Hant' @@ -64,6 +68,7 @@ import '@formatjs/intl-relativetimeformat/locale-data/it' import '@formatjs/intl-relativetimeformat/locale-data/ja' import '@formatjs/intl-relativetimeformat/locale-data/ko' import '@formatjs/intl-relativetimeformat/locale-data/pt' +import '@formatjs/intl-relativetimeformat/locale-data/sv' import '@formatjs/intl-relativetimeformat/locale-data/vi' import '@formatjs/intl-relativetimeformat/locale-data/zh-Hans' import '@formatjs/intl-relativetimeformat/locale-data/zh-Hant' @@ -84,6 +89,7 @@ i18n.use(initReactI18next).init({ ja, ko, 'pt-BR': pt_BR, + sv, vi, 'zh-Hans': zh_Hans, 'zh-Hant': zh_Hant diff --git a/src/i18n/locales.ts b/src/i18n/locales.ts index ab6e507a..80cba743 100644 --- a/src/i18n/locales.ts +++ b/src/i18n/locales.ts @@ -7,6 +7,7 @@ const LOCALES = { ja: '日本語', ko: '한국어', 'pt-br': 'Português (Brasil)', + sv: 'Svenska', vi: 'Tiếng Việt', 'zh-hans': '简体中文', 'zh-hant': '繁體中文' diff --git a/src/i18n/sv/index.ts b/src/i18n/sv/index.ts new file mode 100644 index 00000000..5f2a7a82 --- /dev/null +++ b/src/i18n/sv/index.ts @@ -0,0 +1,18 @@ +export default { + common: require('./common'), + + screens: require('./screens'), + screenActions: require('./screens/actions'), + 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') +}