From 026ee9ce6d43b9844824fd5b4dc292560d10d93e Mon Sep 17 00:00:00 2001 From: xmflsct Date: Fri, 11 Nov 2022 23:59:16 +0100 Subject: [PATCH] =?UTF-8?q?Added=20French=20translation=20=F0=9F=87=AB?= =?UTF-8?q?=F0=9F=87=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 ++ ios/fr.lproj/InfoPlist.strings | 2 ++ ios/tooot.xcodeproj/project.pbxproj | 5 ++++ src/i18n/de/{_all.ts => index.ts} | 0 src/i18n/en/{_all.ts => index.ts} | 0 src/i18n/{it/_all.ts => fr/index.ts} | 0 src/i18n/i18n.ts | 25 +++++++++++-------- src/i18n/{ja/_all.ts => it/index.ts} | 0 src/i18n/{ko/_all.ts => ja/index.ts} | 0 src/i18n/{pt_BR/_all.ts => ko/index.ts} | 0 src/i18n/locales.ts | 1 + src/i18n/{vi/_all.ts => pt_BR/index.ts} | 0 src/i18n/{zh-Hans/_all.ts => vi/index.ts} | 0 .../{zh-Hant/_all.ts => zh-Hans/index.ts} | 0 src/i18n/zh-Hant/index.ts | 18 +++++++++++++ 15 files changed, 43 insertions(+), 10 deletions(-) create mode 100644 ios/fr.lproj/InfoPlist.strings rename src/i18n/de/{_all.ts => index.ts} (100%) rename src/i18n/en/{_all.ts => index.ts} (100%) rename src/i18n/{it/_all.ts => fr/index.ts} (100%) rename src/i18n/{ja/_all.ts => it/index.ts} (100%) rename src/i18n/{ko/_all.ts => ja/index.ts} (100%) rename src/i18n/{pt_BR/_all.ts => ko/index.ts} (100%) rename src/i18n/{vi/_all.ts => pt_BR/index.ts} (100%) rename src/i18n/{zh-Hans/_all.ts => vi/index.ts} (100%) rename src/i18n/{zh-Hant/_all.ts => zh-Hans/index.ts} (100%) create mode 100644 src/i18n/zh-Hant/index.ts diff --git a/README.md b/README.md index 83aad20c..2585c3b6 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,8 @@ Please **do not** create a pull request to update translation. tooot's translati ## Special thanks +[@pat](https://piaille.fr/@pat) for French translation + [@forenta](https://github.com/forenta) for German translation [@andrigamerita](https://github.com/andrigamerita) for Italian translation diff --git a/ios/fr.lproj/InfoPlist.strings b/ios/fr.lproj/InfoPlist.strings new file mode 100644 index 00000000..801a9360 --- /dev/null +++ b/ios/fr.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +"NSPhotoLibraryAddUsageDescription" = "Autoriser tooot à enregistrer des images sur votre pellicule"; +"NSPhotoLibraryUsageDescription" = "Autoriser tooot à enregistrer des images sur votre pellicule"; diff --git a/ios/tooot.xcodeproj/project.pbxproj b/ios/tooot.xcodeproj/project.pbxproj index 29e9a4d7..1211ebab 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 = ""; }; + 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 = ""; }; E69EBACA28DF282D0057EDEC /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/InfoPlist.strings; sourceTree = ""; }; E69EBACB28DF283A0057EDEC /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/InfoPlist.strings; sourceTree = ""; }; @@ -291,6 +292,7 @@ vi, ja, "zh-Hant", + fr, ); mainGroup = 83CBB9F61A601CBA00E9B192; productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; @@ -519,6 +521,7 @@ E69EBACE28DF28560057EDEC /* vi */, E6C8B26628F5F9FC0062CF2E /* ja */, E671BDF8290EAFB800287BD0 /* zh-Hant */, + E66C0842291F095800DFFF60 /* fr */, ); name = InfoPlist.strings; sourceTree = ""; @@ -544,6 +547,7 @@ "FB_SONARKIT_ENABLED=1", ); INFOPLIST_FILE = tooot/Info.plist; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.social-networking"; IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -581,6 +585,7 @@ DEVELOPMENT_TEAM = 8EGBLQ2MA6; "ENABLE_HARDENED_RUNTIME[sdk=macosx*]" = YES; INFOPLIST_FILE = tooot/Info.plist; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.social-networking"; IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", diff --git a/src/i18n/de/_all.ts b/src/i18n/de/index.ts similarity index 100% rename from src/i18n/de/_all.ts rename to src/i18n/de/index.ts diff --git a/src/i18n/en/_all.ts b/src/i18n/en/index.ts similarity index 100% rename from src/i18n/en/_all.ts rename to src/i18n/en/index.ts diff --git a/src/i18n/it/_all.ts b/src/i18n/fr/index.ts similarity index 100% rename from src/i18n/it/_all.ts rename to src/i18n/fr/index.ts diff --git a/src/i18n/i18n.ts b/src/i18n/i18n.ts index c3fde20c..b06bc5e2 100644 --- a/src/i18n/i18n.ts +++ b/src/i18n/i18n.ts @@ -1,15 +1,16 @@ import i18n from 'i18next' import { initReactI18next } from 'react-i18next' -import de from '@root/i18n/de/_all' -import en from '@root/i18n/en/_all' -import it from '@root/i18n/it/_all' -import ja from '@root/i18n/ja/_all' -import ko from '@root/i18n/ko/_all' -import pt_BR from '@root/i18n/pt_BR/_all' -import vi from '@root/i18n/vi/_all' -import zh_Hans from '@root/i18n/zh-Hans/_all' -import zh_Hant from '@root/i18n/zh-Hant/_all' +import de from '@root/i18n/de' +import en from '@root/i18n/en' +import fr from '@root/i18n/fr' +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 vi from '@root/i18n/vi' +import zh_Hans from '@root/i18n/zh-Hans' +import zh_Hant from '@root/i18n/zh-Hant' import '@formatjs/intl-getcanonicallocales/polyfill' import '@formatjs/intl-locale/polyfill' @@ -17,6 +18,7 @@ import '@formatjs/intl-locale/polyfill' import '@formatjs/intl-pluralrules/polyfill' import '@formatjs/intl-pluralrules/locale-data/de' import '@formatjs/intl-pluralrules/locale-data/en' +import '@formatjs/intl-pluralrules/locale-data/fr' import '@formatjs/intl-pluralrules/locale-data/it' import '@formatjs/intl-pluralrules/locale-data/ja' import '@formatjs/intl-pluralrules/locale-data/ko' @@ -27,6 +29,7 @@ import '@formatjs/intl-pluralrules/locale-data/zh' import '@formatjs/intl-numberformat/polyfill' import '@formatjs/intl-numberformat/locale-data/de' import '@formatjs/intl-numberformat/locale-data/en' +import '@formatjs/intl-numberformat/locale-data/fr' import '@formatjs/intl-numberformat/locale-data/it' import '@formatjs/intl-numberformat/locale-data/ja' import '@formatjs/intl-numberformat/locale-data/ko' @@ -38,6 +41,7 @@ import '@formatjs/intl-numberformat/locale-data/zh-Hant' import '@formatjs/intl-datetimeformat/polyfill' import '@formatjs/intl-datetimeformat/locale-data/de' import '@formatjs/intl-datetimeformat/locale-data/en' +import '@formatjs/intl-datetimeformat/locale-data/fr' import '@formatjs/intl-datetimeformat/locale-data/it' import '@formatjs/intl-datetimeformat/locale-data/ja' import '@formatjs/intl-datetimeformat/locale-data/ko' @@ -50,6 +54,7 @@ import '@formatjs/intl-datetimeformat/add-all-tz' import '@formatjs/intl-relativetimeformat/polyfill' import '@formatjs/intl-relativetimeformat/locale-data/de' import '@formatjs/intl-relativetimeformat/locale-data/en' +import '@formatjs/intl-relativetimeformat/locale-data/fr' import '@formatjs/intl-relativetimeformat/locale-data/it' import '@formatjs/intl-relativetimeformat/locale-data/ja' import '@formatjs/intl-relativetimeformat/locale-data/ko' @@ -65,7 +70,7 @@ i18n.use(initReactI18next).init({ ns: ['common'], defaultNS: 'common', - resources: { de, en, it, ja, ko, 'pt-BR': pt_BR, vi, 'zh-Hans': zh_Hans, 'zh-Hant': zh_Hant }, + resources: { de, en, fr, it, ja, ko, 'pt-BR': pt_BR, vi, 'zh-Hans': zh_Hans, 'zh-Hant': zh_Hant }, returnEmptyString: false, saveMissing: true, diff --git a/src/i18n/ja/_all.ts b/src/i18n/it/index.ts similarity index 100% rename from src/i18n/ja/_all.ts rename to src/i18n/it/index.ts diff --git a/src/i18n/ko/_all.ts b/src/i18n/ja/index.ts similarity index 100% rename from src/i18n/ko/_all.ts rename to src/i18n/ja/index.ts diff --git a/src/i18n/pt_BR/_all.ts b/src/i18n/ko/index.ts similarity index 100% rename from src/i18n/pt_BR/_all.ts rename to src/i18n/ko/index.ts diff --git a/src/i18n/locales.ts b/src/i18n/locales.ts index fb48f337..e9bf4b4d 100644 --- a/src/i18n/locales.ts +++ b/src/i18n/locales.ts @@ -1,6 +1,7 @@ const LOCALES = { de: 'Deutsch', en: 'English', + fr: 'Français', it: 'Italiano', ja: '日本語', ko: '한국어', diff --git a/src/i18n/vi/_all.ts b/src/i18n/pt_BR/index.ts similarity index 100% rename from src/i18n/vi/_all.ts rename to src/i18n/pt_BR/index.ts diff --git a/src/i18n/zh-Hans/_all.ts b/src/i18n/vi/index.ts similarity index 100% rename from src/i18n/zh-Hans/_all.ts rename to src/i18n/vi/index.ts diff --git a/src/i18n/zh-Hant/_all.ts b/src/i18n/zh-Hans/index.ts similarity index 100% rename from src/i18n/zh-Hant/_all.ts rename to src/i18n/zh-Hans/index.ts diff --git a/src/i18n/zh-Hant/index.ts b/src/i18n/zh-Hant/index.ts new file mode 100644 index 00000000..5f2a7a82 --- /dev/null +++ b/src/i18n/zh-Hant/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') +}