1import { 2 AndroidConfig, 3 ConfigPlugin, 4 createRunOncePlugin, 5 withStringsXml, 6} from 'expo/config-plugins'; 7 8const pkg = require('expo-localization/package.json'); 9 10const withExpoLocalization: ConfigPlugin = (config) => { 11 if (config.extra?.supportsRTL == null) return config; 12 if (!config.ios) config.ios = {}; 13 if (!config.ios.infoPlist) config.ios.infoPlist = {}; 14 config.ios.infoPlist.ExpoLocalization_supportsRTL = config.extra?.supportsRTL || false; 15 16 return withStringsXml(config, (config) => { 17 config.modResults = AndroidConfig.Strings.setStringItem( 18 [ 19 // XML represented as JSON 20 // <string name="expo_custom_value" translatable="false">value</string> 21 { 22 $: { name: 'ExpoLocalization_supportsRTL', translatable: 'false' }, 23 _: String(config.extra?.supportsRTL), 24 }, 25 ], 26 config.modResults 27 ); 28 return config; 29 }); 30}; 31 32export default createRunOncePlugin(withExpoLocalization, pkg.name, pkg.version); 33