diff --git a/fastlane/Fastfile b/fastlane/Fastfile index c27497fe..66d35884 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -35,7 +35,6 @@ private_lane :build_ios do build_ios_app( export_method: "app-store", include_symbols: true, - include_bitcode: true, output_directory: BUILD_DIRECTORY, silent: false ) diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 11046c90..15433266 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -536,7 +536,7 @@ PODS: - React-Core - SDWebImage (~> 5.13.4) - SDWebImageWebPCoder (~> 0.9.0) - - RNGestureHandler (2.7.0): + - RNGestureHandler (2.7.1): - React-Core - RNReanimated (2.10.0): - DoubleConversion @@ -565,7 +565,7 @@ PODS: - React-RCTText - ReactCommon/turbomodule/core - Yoga - - RNScreens (3.18.0): + - RNScreens (3.18.1): - React-Core - React-RCTImage - RNSentry (4.6.1): @@ -929,9 +929,9 @@ SPEC CHECKSUMS: RNCAsyncStorage: 0c357f3156fcb16c8589ede67cc036330b6698ca RNCClipboard: 2834e1c4af68697089cdd455ee4a4cdd198fa7dd RNFastImage: e6267e27581b81918ebef6432c94c20718ec3b91 - RNGestureHandler: 7673697e7c0e9391adefae4faa087442bc04af33 + RNGestureHandler: b7a872907ee289ada902127f2554fa1d2c076122 RNReanimated: 7faa787e8d4493fbc95fab2ad331fa7625828cfa - RNScreens: f3230dd008a7d0ce5c0a8bc78ff12cf2315bda24 + RNScreens: 1b7bb502dac62cc4cf01b94bea591c8da275132f RNSentry: f8591057d48d4f6d64196a76cbca67895667b033 RNShareMenu: cb9dac548c8bf147d06f0bf07296ad51ea9f5fc3 RNSVG: 42a0c731b11179ebbd27a3eeeafa7201ebb476ff diff --git a/ios/ja.lproj/InfoPlist.strings b/ios/ja.lproj/InfoPlist.strings new file mode 100644 index 00000000..025e9777 --- /dev/null +++ b/ios/ja.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 4191bd59..413887e6 100644 --- a/ios/tooot.xcodeproj/project.pbxproj +++ b/ios/tooot.xcodeproj/project.pbxproj @@ -81,6 +81,7 @@ E69EBACC28DF28420057EDEC /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/InfoPlist.strings; sourceTree = ""; }; E69EBACD28DF284D0057EDEC /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/InfoPlist.strings"; sourceTree = ""; }; E69EBACE28DF28560057EDEC /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/InfoPlist.strings; sourceTree = ""; }; + E6C8B26628F5F9FC0062CF2E /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/InfoPlist.strings; sourceTree = ""; }; ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; ED2971642150620600B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.0.sdk/System/Library/Frameworks/JavaScriptCore.framework; sourceTree = DEVELOPER_DIR; }; /* End PBXFileReference section */ @@ -287,6 +288,7 @@ ko, "pt-BR", vi, + ja, ); mainGroup = 83CBB9F61A601CBA00E9B192; productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; @@ -338,7 +340,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "set -e\nexport SENTRY_PROPERTIES=sentry.properties\nexport EXTRA_PACKAGER_ARGS=\"--sourcemap-output $DERIVED_FILE_DIR/main.jsbundle.map\"\nset -e\n\nWITH_ENVIRONMENT=\"../node_modules/react-native/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"../node_modules/react-native/scripts/react-native-xcode.sh\"\nSENTRY_CLI_PATH=\"../node_modules/@sentry/cli/bin/sentry-cli\"\n/bin/sh -c \"$WITH_ENVIRONMENT \\\"$SENTRY_CLI_PATH react-native xcode $REACT_NATIVE_XCODE\\\"\""; + shellScript = "set -e\nexport SENTRY_PROPERTIES=sentry.properties\nexport EXTRA_PACKAGER_ARGS=\"--sourcemap-output $DERIVED_FILE_DIR/main.jsbundle.map\"\nset -e\n\nWITH_ENVIRONMENT=\"../node_modules/react-native/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"../node_modules/react-native/scripts/react-native-xcode.sh\"\nSENTRY_CLI_PATH=\"../node_modules/@sentry/cli/bin/sentry-cli\"\n/bin/sh -c \"$WITH_ENVIRONMENT \\\"$SENTRY_CLI_PATH react-native xcode $REACT_NATIVE_XCODE\\\"\"\n"; }; 08A4A3CD28434E44B6B9DE2E /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; @@ -511,6 +513,7 @@ E69EBACC28DF28420057EDEC /* ko */, E69EBACD28DF284D0057EDEC /* pt-BR */, E69EBACE28DF28560057EDEC /* vi */, + E6C8B26628F5F9FC0062CF2E /* ja */, ); name = InfoPlist.strings; sourceTree = ""; diff --git a/package.json b/package.json index 21f1e490..e10100d9 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "@react-native-community/segmented-control": "^2.2.2", "@react-navigation/bottom-tabs": "^6.4.0", "@react-navigation/native": "^6.0.13", - "@react-navigation/native-stack": "^6.9.0", + "@react-navigation/native-stack": "^6.9.1", "@react-navigation/stack": "^6.3.2", "@reduxjs/toolkit": "^1.8.6", "@sentry/react-native": "^4.6.1", @@ -75,7 +75,7 @@ "react-native-fast-image": "^8.6.1", "react-native-feather": "^1.1.2", "react-native-flash-message": "^0.3.1", - "react-native-gesture-handler": "^2.7.0", + "react-native-gesture-handler": "^2.7.1", "react-native-htmlview": "^0.16.0", "react-native-image-picker": "^4.10.0", "react-native-language-detection": "^0.1.0", @@ -83,11 +83,11 @@ "react-native-reanimated": "^2.10.0", "react-native-reanimated-zoom": "^0.3.1", "react-native-safe-area-context": "^4.4.1", - "react-native-screens": "^3.18.0", + "react-native-screens": "^3.18.1", "react-native-share-menu": "^6.0.0", "react-native-svg": "13.0.0", "react-native-swipe-list-view": "^3.2.9", - "react-native-tab-view": "^3.2.1", + "react-native-tab-view": "^3.3.0", "react-query": "^3.39.2", "react-redux": "^8.0.4", "redux-persist": "^6.0.0", diff --git a/src/App.tsx b/src/App.tsx index 17c57664..d88682bf 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -14,6 +14,7 @@ import * as Sentry from '@sentry/react-native' import AccessibilityManager from '@utils/accessibility/AccessibilityManager' import { changeLanguage, getSettingsLanguage } from '@utils/slices/settingsSlice' import ThemeManager from '@utils/styles/ThemeManager' +import * as Localization from 'expo-localization' import * as SplashScreen from 'expo-splash-screen' import React, { useCallback, useEffect, useState } from 'react' import { LogBox, Platform } from 'react-native' @@ -81,9 +82,15 @@ const App: React.FC = () => { log('log', 'App', 'bootstrapped') if (bootstrapped) { log('log', 'App', 'loading actual app :)') - const language = getSettingsLanguage(store.getState()) + log('log', 'App', `Locale: ${Localization.locale}`) + const language = + Platform.OS === 'ios' + ? Localization.locale + : getSettingsLanguage(store.getState()) if (!language) { - store.dispatch(changeLanguage('en')) + if (Platform.OS !== 'ios') { + store.dispatch(changeLanguage('en')) + } i18n.changeLanguage('en') } else { i18n.changeLanguage(language) diff --git a/src/i18n/vi/components/mediaSelector.json b/src/i18n/vi/components/mediaSelector.json index 12e8a2b1..bd5a7e44 100644 --- a/src/i18n/vi/components/mediaSelector.json +++ b/src/i18n/vi/components/mediaSelector.json @@ -1,6 +1,6 @@ { "title": "Chọn nguồn", - "message": "", + "message": "Chưa tải lên EXIF hình ảnh", "options": { "image": "Tải ảnh lên", "image_max": "Tải ảnh lên (tối đa {{max}})", diff --git a/src/screens/Tabs/Me/Settings/App.tsx b/src/screens/Tabs/Me/Settings/App.tsx index 8c9c4582..5b32e359 100644 --- a/src/screens/Tabs/Me/Settings/App.tsx +++ b/src/screens/Tabs/Me/Settings/App.tsx @@ -16,8 +16,10 @@ import { getSettingsStaticEmoji, changeStaticEmoji } from '@utils/slices/settingsSlice' +import * as Localization from 'expo-localization' import React from 'react' import { useTranslation } from 'react-i18next' +import { Linking, Platform } from 'react-native' import { useSelector } from 'react-redux' import { mapFontsizeToName } from '../SettingsFontsize' @@ -37,18 +39,20 @@ const SettingsApp: React.FC = () => { navigation.navigate('Tab-Me-Settings-Fontsize')} /> navigation.navigate('Tab-Me-Settings-Language')} + onPress={() => + Platform.OS === 'ios' + ? Linking.openSettings() + : navigation.navigate('Tab-Me-Settings-Language') + } />